一、RAID技术简介
1.什么是RAID
把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区域段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升硬盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上。
2.RAID 0
把多块物理硬盘设备(至少两块)通过硬件或者软件的方式串联在一起,组成的一个大的卷组,并将数据依次写入到各个物理硬盘中。
优点:有效提升硬盘的吞吐速度
缺点:不具备数据备份和错误修复能力,其中一块硬盘发生故障就会影响到整个系统
3.RAID 1
把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备中去,(可以将其视为数据的镜像或者备份),当其中某一块硬盘发生故障后,一般会立即以热交换的方式来恢复数据的正常使用。
优点:提升了硬盘的吞吐速度,也具备了数据备份和错误修复能力
缺点:增加了成本
4.RAID 5
RAID 5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID 5磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命缺陷;图中parity部分存放的就是数据的奇偶校验信息,换句话说,就是RAID 5技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试重建损坏的数据。
5.RAID 10
RAID 10技术是RAID 1+RAID 0技术的一个“组合体”。如图7-4所示,RAID 10技术需要至少4块硬盘来组建,其中先分别两两制作成RAID 1磁盘阵列,以保证数据的安全性;然后再对两个RAID 1磁盘阵列实施RAID 0技术,进一步提高硬盘设备的读写速度。这样从理论上来讲,只要坏的不是同一组中的所有硬盘,那么最多可以损坏50%的硬盘设备而不丢失数据。由于RAID 10技术继承了RAID 0的高读写速度和RAID 1的数据安全性,在不考虑成本的情况下RAID 10的性能都超过了RAID 5,因此当前成为广泛使用的一种存储技术。
二、部署磁盘阵列(部署RAID 10)
1.在虚拟机中添加四个硬盘设备。
2.mdadm 命令
用于管理Linux系统中的软件RAID硬盘阵列
格式:mdadm [模式] <RAID设备名称> [选项] [成员设备名称]
3.部署
madam -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
-C参数代表创建一个RAID阵列卡,-v参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0就是创建后的RAID磁盘阵列的名称
-a yes参数代表自动创建设备文件
-n 4参数代表使用4块硬盘来部署这个RAID磁盘阵列
-l 10参数则代表RAID 10方案
最后再加上4块硬盘设备的名称
4.损坏磁盘阵列及修复
如果RAID 10阵列中的某一块硬盘坏了,假设是/dev/sdb,首先第一步解除RAID阵列挂载
umonut /dev/md0
第二步则进行关机更换硬盘,并开机重新检测/dev/sdb这块设备
mdadm /dev/md0 -a /dev/sdb
5.磁盘阵列+备份盘
RAID 10阵列只能损坏50%的硬盘,而且不能损坏同一个RAID 1阵列的所有硬盘,此时如果要确保数据的安全性,需要用到RAID 5阵列+备份盘技术
部署RAID 5阵列至少需要3块硬盘,还需要加一块硬盘作为备份,所以需要RAID 5阵列需要4块硬盘部署
mdadm -Cv /dev/md1 -n 3 -l 5 -x 1 /dev/sd{f,g,h,i}
特别说明 -x 是指定备份盘的数量 -x 1 是指有一个备份盘
模拟 /dev/sdf 损坏
再次查看阵列状态,sdf的损坏并没有导致整个阵列崩溃,而是闲置的sdi顶上去继续工作
三、LVM(逻辑卷管理器)
1.什么是LVM
LVM是一种对于硬盘分区管理的一种机制,它可以允许用户对硬盘资源进行动态分配,解决硬盘设备在创建分区后不易修改分区大小的缺陷。
LVM技术的实质是在硬盘分区和文件系统之间添加了一个逻辑层,它可以将多块硬盘集合成一个卷组,可以理解成为将多块硬盘进行融合,组成一个更大的硬盘,这样用户就不必担心硬盘底层的架构和布局,直接在逻辑层上操作就可以。
2.部署LVM
(1)在虚拟机中添加所需要实验的硬盘
(2)进入系统,将两块硬盘添加LVM技术资源池中
pvcreate /dev/sd{j,k}
(3)创建新的卷组,将两块硬盘添加到卷组中,然后查看卷组状态
vgcreate storage /dev/sd{j,k}
vgdisplay storage
(4)切割逻辑卷
切割逻辑卷时一共有两个计量参数
-L 是直接制定容量,基础单位是MB,如果要切割出1G空间,则 -L 1G,MB以此类推
-l 是以基本单元的个数为单位,每个基本单元的大小是4MB,-l 20,则是切割出4*20=80M空间
-n是指定生成逻辑卷的名称
在卷组中切割出一个:名称为partition1,大小为1G的空间
lvcreate -n partition1 -L 1G storage
在卷组中切割出一个:名称为partition2,大小为100M的空间
lvcreate -n parttition2 -l 25 storage
(5)将切割好的逻辑卷格式化,并挂载才能使用。LVM中的逻辑卷设备存放在/dev目录中,同时以卷组的名字建立文件夹,这个文件夹中保存了逻辑卷的设备映射文件(/dev/卷组名称/逻辑卷名称)
格式化:
mkfs.ext4 /dev/storage/partition1
mkfs.ext4 /dev/storage/partition2
挂载:
mount /dev/storage/partition1 /media/LVM_partition1
mount /dev/storage/partition2 /media/LVM_partition2
将信息写入/etc/fstab,实现开机自动挂载:
echo "/dev/storage/partition1 /media/LVM_partition1 ext4 defaults 0 0" >> /etc/fstab
echo "/dev/storage/partition2 /media/LVM_partition2 ext4 defaults 0 0" >> /etc/fstab
3.LVM部署管理
(1)扩展逻辑卷
把上面分好的partition2扩展至500M
①umount /media/LVM_partition2 //解除挂载
②lvextend -L 500M /dev/storage/partition2 //扩展分区容量
③e2fsck -f /dev/storage/partition2 //检查硬盘的完整性
④resize2fs /dev/storage/partition2 //重置硬盘容量
(2)缩小逻辑卷
注意事项:对逻辑卷进行缩容操作时,要先检查文件系统的完整性,以保证数据安全
把上面分好partition1缩小至500M
①umount /media/LVM_partition1 //解除挂载
②e2fsck -f /dev/storage/partition1 //检查硬盘的完整性
③resize2fs /dev/storage/partition1 500M //重置硬盘容量
④lvreduce -L 500M /dev/storage/partition1 //缩减容量
(3)逻辑卷快照
类似于虚拟机软件的还原时间点功能,有以下两个特点:
①快照卷的容量必须等同于逻辑卷的容量
②快照卷仅一次有效,一旦执行还原操作之后则会被立即自动删除
生成快照卷及恢复操作
①lvcreate -L 500M -s -n SNAP /dev/storage/partition1 //为partition1创建快照卷SNAP
-s参数是指生成的快照卷
②umount /media/LVM_partition1 //解除挂载
③lvconvert --merge /dev/storage/SNAP //恢复快照
(4)删除逻辑卷
当生产环境中想要重新部署LVM或者不再需要使用LVM的时候,需要进行删除操作,操作顺序如下:
①删除逻辑卷
②删除卷组
③删除物理设备
具体操作流程如下:
①umount /media/LVM_partition1 umount /media/LVM_partition2 //解除挂载
②删除/etc/fstab中的自动挂载信息
③lvremove /dev/storage/partition1 lvremove /dev/storage/partition2 //删除逻辑卷
④vgremove storage //这里只需要填写卷组名称,不需要绝对路径
⑤pvremove /dev/sd{j,k} //删除物理卷