RAID与LVM的结合应用

对于互联网运营的公司来说,数据是至关重要的.每天有着用户的访问,都会产生大量的数据,这些数据的存放地正是我们的硬盘.基于此,磁盘的管理就显得尢为的重要了.

数据的不段产生,就会不停的写入到磁盘中,而磁盘的空间终究是有限的,而造出一个无限大的硬盘又不是不可能的.这就对我们的技术提出了新的要求,在当前的硬盘容量不足以支持的情况下,要加入新的硬盘进来,共同完成数据的存储.

而磁盘在读写的时候,在高并发的访问量的情况下,会给磁盘的读写造成相当大的压力,这就要求我们要用新的解决方案来克服这一问题.而且磁盘的工作寿命也终究是有限的,这又要求我们在生产环境中,需要能将坏掉的硬盘换下来,补允新的硬盘上去.完成以上的种种技术要求,需要怎样的技术来得以实现呢? 在这样的大背景下, 独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks)和LVM是逻辑盘卷管理(Logical Volume Manager)就应孕而生了.

首先我们来了解一下  RAID 技术.RAID有 RAID0 -RAID6这几种管理方式,[还有非公开的RAID7标准,这里不作讨论]

RAID 0 它将两个以上的磁盘并列起来,成为一个大容量的磁盘。在存放数据时,分段后分散存储在这些磁盘中,因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0既没有冗余功能,也不具备容错能力,如果一个磁盘(物理)损坏,所有数据都会丢失,非常危险。数据存放容量是 组合中,最小磁盘的容量 X 磁盘数量

RAID 1

两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,另外写入速度有微小的降低。所有个硬盘互为镜像.不管哪块硬盘损坏,镜像硬盘则会工作。不管多少硬盘组成阵列都只能用一块硬盘的空间,空间利用 率极低,有容错能力.可用空间为组合中最小容量的硬盘

RAID2 - RAID4在生产环境中,使用并不多,这里不作讨论.

RAID 5

RAID 5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是硬盘分区技术。RAID 5至少需要三块硬盘,RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。也就是每一块盘都是其它盘的校验盘,当RAID5的一个磁盘数据发生损坏后,可以用剩下的数据校验信息修复被损坏的数据。RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5有容错能力,又极大的提高了磁盘的利用空间, 而且RAID5的读写速度近似于RAID0,所以这是一个很好的选择.该方案的容量使用率为硬盘数量减1,X组合中最小容量磁盘.

RAID 6

与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实作方式使得RAID 6很少得到实际应用。同一数组中最多容许两个磁盘损坏。更换新磁盘后,数据将会重新算出并写入新的磁盘中。RAID6必须要有4块盘才能正常工作,所以这里我们选择RAID5作为重点讨论

首先在虚拟机中,准备8块5G的硬盘

[[email protected] html]# fdisk -l|awk ‘/^Disk \/dev\/sd[a-z]/{print $2}‘     ==>sdb - sdg 共8块
/dev/sda: 
/dev/sdb: 
/dev/sdc: 
/dev/sde: 
/dev/sdd: 
/dev/sdf: 
/dev/sdh: 
/dev/sdi: 
/dev/sdg:

准备8块硬盘,4块硬盘做成一组RAID5,其中有一块是热备盘,这里我们要用到mdadm命令,简单的简介一下mdadm命令的用法

mdadm: 模块式化命令

-A: 装配模式,重新识别此前实现的RAID

-C:创建模式,创建RAID

-F:监控模式

管理模式:-f, -r, -a

-C: 创建模式中专用选项

-n #: 用于创建RAID设备的磁盘个数;

-l #: 级别

-a yes: 自动为创建的RAID生成设备文件;

-c Chunk_Size:

这里我们是创建RAID,用到的是-C选项,过程如下

[[email protected] ~]# mdadm -C /dev/md0 -a yes -n 3 -l 5 /dev/sdb /dev/sdc /dev/sdd     ==> -a yes是自动创建块设备, -n 3 用三块硬盘创建, -l 5 五级别
mdadm: /dev/sdb appears to be part of a raid array: 
level=raid1 devices=2 ctime=Sun Jul 20 20:19:23 2014 
mdadm: /dev/sdc appears to be part of a raid array: 
level=raid1 devices=2 ctime=Sun Jul 20 20:19:23 2014 
Continue creating array? y 
mdadm: Defaulting to version 1.2 metadata 
mdadm: array /dev/md0 started.    ==>看到这个就表示以/dev/md0为命名的RAID5设备创建好了.

[[email protected] ~]# mdadm -a /dev/md0 /dev/sde     ==>给RAID5 设备/dev/md0 加入一块热备盘
mdadm: added /dev/sde

[[email protected] ~]# mdadm -D /dev/md0 
/dev/md0: 
Version : 1.2 
Creation Time : Sun Jul 20 21:10:35 2014 
Raid Level : raid5 
Array Size : 10476544 (9.99 GiB 10.73 GB) 
Used Dev Size : 5238272 (5.00 GiB 5.36 GB) 
Raid Devices : 3 
Total Devices : 4 
Persistence : Superblock is persistent

Update Time : Sun Jul 20 21:13:39 2014 
State : clean 
Active Devices : 3 
Working Devices : 4 
Failed Devices : 0 
Spare Devices : 1

Layout : left-symmetric 
Chunk Size : 512K

Name : localhost.localdomain:0 (local to host localhost.localdomain) 
UUID : 53eb296b:191ae53c:c075947a:72f789e5 
Events : 19

Number Major Minor RaidDevice State 
0 8 16 0 active sync /dev/sdb 
1 8 32 1 active sync /dev/sdc 
3 8 48 2 active sync /dev/sdd

4 8 64 - spare /dev/sde            这里显示, /dev/sdb,sdc,sdd是工作盘, /dev/sde是热备盘

同样的过程创建RAID5 /dev/md1.

准备好 两个 RAID5 的 /dev/md0 , /dev/md1后,我们就可以 创建 LVM 逻辑盘卷管理了

首先创建PV

[[email protected] ~]# pvcreate /dev/md0 /dev/md1 
Physical volume "/dev/md0" successfully created 
Physical volume "/dev/md1" successfully created

用创建的两个pv /dev/md0 /dev/md1 创建一个vg组,

[[email protected] ~]# vgcreate myvg /dev/md0 /dev/md1 
Volume group "myvg" successfully created

[[email protected] ~]# lvcreate -n mylv1 -L 6G myvg 
Logical volume "mylv1" created 
[[email protected] ~]# lvcreate -n mylv2 -L 6G myvg 
Logical volume "mylv2" created 
[[email protected] ~]# vgs 
VG #PV #LV #SN Attr VSize VFree 
myvg 2 2 0 wz--n- 19.98g 7.98g         ==>此时myvg组还有7.98G的容量,把它都分给mylv3
vg0 1 4 0 wz--n- 59.99g 7.99g

[[email protected] ~]# lvcreate -n mylv3 -L 7.97G myvg

这样我们的一个逻辑盘卷管理系统就做好了.下面可以进行格式化分区了,格式化分区后,就可以挂载到系统目录中使用了.

虚拟分区格式化
[[email protected] ~]# mke2fs -t ext4 /dev/myvg/mylv1     格式化lv1

mke2fs 1.41.12 (17-May-2010) 
Filesystem label= 
OS type: Linux 
Block size=4096 (log=2) 
Fragment size=4096 (log=2) 
Stride=128 blocks, Stripe width=256 blocks 
393216 inodes, 1572864 blocks 
78643 blocks (5.00%) reserved for the super user 
First data block=0 
Maximum filesystem blocks=1610612736 
48 block groups 
32768 blocks per group, 32768 fragments per group 
8192 inodes per group 
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done 
Creating journal (32768 blocks): done 
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or 
180 days, whichever comes first. Use tune2fs -c or -i to override.

在/mnt下创建三个目录,分别挂载 mylv1,2,3

[[email protected] mnt]# mkdir mylv{1,2,3}

[[email protected] mnt]# tree ./ 
./ 
├── mylv1 
├── mylv2 
└── mylv3

分别将三个分区挂载好.

[[email protected] mnt]# mount /dev/myvg/mylv1 /mnt/mylv1 
[[email protected] mnt]# mount /dev/myvg/mylv2 /mnt/mylv2 
[[email protected] mnt]# mount /dev/myvg/mylv3 /mnt/mylv3

[[email protected] mylv1]# touch /mnt/mylv1/testmylv1.txt 
[[email protected] mylv1]# echo ‘hello lvm‘>>/mnt/mylv1/testmylv1.txt

此时,在逻辑卷中,我们写入了数据,那么我们模拟一下RAID中的一块块盘坏了,看对数据是否有影响

[[email protected] mylv1]# mdadm -f /dev/md0 /dev/sdb     此时我们设置/dev/md0中的 /dev/sdb硬盘已损坏
mdadm: set /dev/sdb faulty in /dev/md0 
[[email protected] mylv1]# mdadm -D /dev/md0     查看/dev/md0的状态
/dev/md0: 
Version : 1.2 
Creation Time : Sun Jul 20 21:10:35 2014 
Raid Level : raid5 
Array Size : 10476544 (9.99 GiB 10.73 GB) 
Used Dev Size : 5238272 (5.00 GiB 5.36 GB) 
Raid Devices : 3 
Total Devices : 4 
Persistence : Superblock is persistent

Update Time : Sun Jul 20 21:58:14 2014 
State : clean, degraded, recovering 
Active Devices : 2 
Working Devices : 3 
Failed Devices : 1 
Spare Devices : 1

Layout : left-symmetric 
Chunk Size : 512K

Rebuild Status : 45% complete

Name : localhost.localdomain:0 (local to host localhost.localdomain) 
UUID : 53eb296b:191ae53c:c075947a:72f789e5 
Events : 28

Number Major Minor RaidDevice State 
4 8 64 0 spare rebuilding /dev/sde         ==>此处显示原来的热备盘正在同步之前的数据
1 8 32 1 active sync /dev/sdc 
3 8 48 2 active sync /dev/sdd

0 8 16 - faulty /dev/sdb ==>很明显,这里显示/dev/sdb盘处于损坏状态,此前作为热备盘的/dev/sde自动顶上了

[[email protected] mylv1]# cat testmylv1.txt     再来查看,逻辑卷中的数据是否受影响
hello lvm    ==>ok数据完好.

此时该RAID组还有三块硬盘在工作,还允许再坏一块硬盘,而数据的完整性同样能得到保证.

[[email protected] mylv1]# mdadm -f /dev/md0 /dev/sdc  设置 /dev/sdc盘坏了
mdadm: set /dev/sdc faulty in /dev/md0 
[[email protected] mylv1]# mdadm -D /dev/md0      查看RAID组状态
/dev/md0: 
Version : 1.2 
Creation Time : Sun Jul 20 21:10:35 2014 
Raid Level : raid5 
Array Size : 10476544 (9.99 GiB 10.73 GB) 
Used Dev Size : 5238272 (5.00 GiB 5.36 GB) 
Raid Devices : 3 
Total Devices : 4 
Persistence : Superblock is persistent

Update Time : Sun Jul 20 22:13:30 2014 
State : clean, degraded 
Active Devices : 2 
Working Devices : 2 
Failed Devices : 2 
Spare Devices : 0

Layout : left-symmetric 
Chunk Size : 512K

Name : localhost.localdomain:0 (local to host localhost.localdomain) 
UUID : 53eb296b:191ae53c:c075947a:72f789e5 
Events : 42

Number Major Minor RaidDevice State 
4 8 64 0 active sync /dev/sde 
1 0 0 1 removed 
3 8 48 2 active sync /dev/sdd

0 8 16 - faulty /dev/sdb 
1 8 32 - faulty /dev/sdc                两块磁盘处于损坏状态

我们再来检查一下,看数据是否依然完整

[[email protected] mylv1]# cat /mnt/mylv1/testmylv1.txt 
hello lvm        ==> ok数据完整

时间: 2024-11-09 00:29:37

RAID与LVM的结合应用的相关文章

软Raid和lvm逻辑卷管理

RAID: Redundent Array of Inexpensive Disks 以前为了解决使用普通IDE硬盘,提高性能和冗余. RAID:Redundent Array of Independent Disks 现在的名称解释t RAID 属于md设备 multics device Level: 仅用于标识磁盘组合方式的不同 raid0, raid1, raid5, raid10, raid50,raid60 raid0: 至少需要两块磁盘,没有容错能力,读写性能都提升,100% rai

磁盘管理之基于软RAID的LVM

LVM即为逻辑卷管理是一种管理磁盘的工具使用此技术可以动态的扩展和缩小文件系统空间而不损坏其中数据同时它还具备快照功能实现文件的备份本文将介绍lvm创建逻辑卷,缩减逻辑卷以及利用快照功能实现频繁读写的文件系统的备份. 下图为其逻辑结构: PV:物理卷   PE:物理区域 VG:卷组 LV:逻辑卷 逻辑卷的创建可以是分区或是RAID 下面将以软RAID5方式详细介绍逻辑卷的创建过程 创建软raid5 首先创建分区 我们使用分区工具fdisk 设备为/dev/sdb 创建3个主分区分别为 /dev/

Linux系统下磁盘配额、软RAID及LVM的配置与管理

Linux系统下磁盘配额.软RAID及LVM的 配置与管理 一.设定文件系统配额 1.概述:配额是操作系统的一个可选的功能, 它允许管理员以文件系统为单元, 限制分派给用户或组成员所使用的磁盘空间大小或是使用的总文件数量.这经常被用于那些分时操作的系统上, 对于这些系统而言, 通常希望限制分派到每一个用户或组的资源总量, 从而可以防止某个用户占用所有可用的磁盘空间. 2.配置文件系统配额(基于用户): (1)配置配额前准备工作: 1)备份/home目录,创建分区,进行挂载,将/home目录下的数

10.RAID和LVM分区

企业中一般通过硬件完成RAID,不用软raid,功能性能差,冗余也受限操作系统,软RAID降低好多性能想要优化不要用LVMLVM可以对设置好的分区大小进行动态的调整,前提是分区格式做成8e的标号不用LVM的原因:1.企业环境的分区都是按要求事先规划好的,极少有后续调整的需求2.没有用软RAID和LVM的需求 原文地址:https://blog.51cto.com/13932861/2389879

《Linux就该这么学》 第7章 使用RAID与LVM磁盘阵列技术

第7章 使用RAID与LVM磁盘阵列技术 7.1 RAID IO 吞吐量 读写速度,数据安全.1.RAID0RAID0:两块盘,加快硬盘的写入速度.但不具有数据备份和错误恢复.速度有提升成本不变安全性会有下降 2.RAID1RAID1:两块盘,速度没有提升,保持一致成本提升一倍,变成两倍安全性提升 3.RAID5RAID5:至少3块盘,兼顾读写速度.数据安全性.存储成本. 4.RAID10RAID10是RAID1+RAID0的组合. 7.1.1 部署磁盘阵列1.关机虚拟机,为虚拟机添加4块硬盘.

Linux Raid和LVM管理

1.磁盘管理 #提示没有partprobe yum -y install parted #新硬盘新建分区,并将类型改为Linux Raid autodetect #非交互方式,注意1与t之间有一个回车键 fdisk /dev/sde <fdisk.txt fdisk.txt: n p 1 1 t fd w #新建分区,注意1与w之间有一个回车键 fdisk /dev/sdf <fdisk1.txt fdisk.txt: n p 1 1 w q #将磁盘格式化为ext4文件系统 mkfs.ext

linux基础学习-第十五天 磁盘管理(SWAP、dd、quota、RAID、LVM)

2016-08-26: 授课内容: 1.SWAP交换分区的创建 2.dd命令的使用 3.设定文件系统配额 4.设定和管理软RAID设备 5.配置逻辑卷 1.swap (1)SWAP分区:模拟内存,当物理内存不足时,进程需要内存资源是,内存会把一部分没有在用的进程分页挪到硬盘的模拟内存中,腾出空间被现在需要使用内存资源的进程 即其作用是可以允许内存过载使用,windows系统也有类似的机制,由于虚拟内存空间是建立在硬盘之上,所以其速度和性能会大打折扣,所以适合临时使用 (2)创建SWAP分区: 相

6、raid、lvm、while、until 学习笔记

Raid: Level仅用于标识磁盘组合方式的不同 raid0, raid1, raid5, raid10, raid50, jbod raid0:至少需要两块磁盘,不允许任何盘出错,没有容错能力,读写性能都提升,硬盘利用率100% raid1: 至少需要两块磁盘,允许一块盘出错,镜像,硬件容错能力,读性能提升,写性能下降,硬盘利用率50% raid5: 至少需要三块磁盘,允许一块盘出错,校验盘分布在各盘上,读写性能都提升,硬盘利用率(n-1)/n% raid10: 至少需要四块磁盘,允许不同组

四、RAID与LVM管理

4.1.RAID简介 RAID(Redundant Arrays of Independent Disks),名为独立冗余磁盘阵列,可以把RAID理解为一种使用磁盘驱动器的方法,它将一组磁盘驱动器用某种逻辑组合起来,作为一个逻辑磁盘驱动器来使用.主要优点有:提高IO能力,磁盘并行读写,提高耐用性:主要利用磁盘冗余来实现.其常用等级主要有:0.1.5.10.01.jbod等.等级划分只是多块磁盘组织在一起的工作方式有所不同,没有上下之分.RAID的实现方式主要有三种: 外接式磁盘阵列:通过扩展卡提

Raid创建 LVM创建 扩展

RAID(磁盘阵列冗余 提高硬盘访问速度)raid0         raid1         raid5            raid10条带化写      冗余    带奇偶校验的条带化  raid1+raid02块磁盘      2块磁盘       3块磁盘         4块磁盘500G          500G        500G            500G    1T          500G        1T               1T mdadm -C