使用RAID与LVM磁盘阵列技术

RAID磁盘冗余阵列
RAID技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。

1. RAID 0
RAID 0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。这样一来,在最理想的状态下,硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障将导致整个系统的数据都受到破坏。通俗来说,RAID 0技术能够有效地提升硬盘数据的吞吐速度,但是不具备数据备份和错误修复能力。

在这里插入图片描述
2. RAID 1
RAID 1技术是把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用。

在这里插入图片描述
3. RAID 5
RAID5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID 5磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命缺陷;图中parity部分存放的就是数据的奇偶校验信息,换句话说,就是RAID 5技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试重建损坏的数据。RAID这样的技术特性“妥协”地兼顾了硬盘设备的读写速度、数据安全性与存储成本问题。
在这里插入图片描述
4. 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,因此当前成为广泛使用的一种存储技术。
在这里插入图片描述
部署磁盘阵列
mdadm命令用于管理Linux系统中的软件RAID硬盘阵列,格式为
“mdadm [模式] <RAID设备名称> [选项] [成员设备名称]”.

mdadm命令的常用参数和作用
1.-a 检测设备名称
2.-n 指定设备数量
3.-l 指定RAID级别
4.-C 创建
5.-v 显示过程
6.-f 模拟设备损坏
7.-r 移除设备
8.-Q 查看摘要信息
9.-D 查看详细信息
10.-S 停止RAID磁盘阵列

损坏磁盘阵列及修复
首先确认有一块物理硬盘设备出现损坏不能再继续正常使用后,应该使用mdadm命令来予以移除之后查看下RAID磁盘阵列组的状态已经被改变:

移除阵列中一块硬盘来模拟一块硬盘损坏。

1.mdadm /dev/md0 -f /dev/sdb
#把/dev/sdb从磁盘阵列/dev/md0中移除
2.mdadm -D /dev/md0
#查看磁盘这列/dev/md0详细信息,发现/dev/sdb状态从active变为faulty
3.umount /RAID
#先重启系统,卸载/RAID目录
4.mdadm /dev/md0 -a /dev/sdb
#把新硬盘添加到RAID磁盘阵列中
5.mdadm -D /dev/md0
#查看磁盘阵列/dev/md0详细信息,/dev/sdb正在 spare rebuilding,然后变回active
6.mount -a
#重新挂载

磁盘阵列+备份盘
部署RAID 5 磁盘阵列时,至少需要用3块硬盘,还需要再加一块备份硬盘。
还原虚拟机,部署RAID 5 + 1备份盘 。

1.mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sd[b-e]
#用3块硬盘创建RAID 5磁盘阵列,再用1块作为备份盘
2.mdadm -D /dev/md0
#查看磁盘阵列详细信息,显示3个盘为actvie,1个盘为spare,RAID类型为RAID 5
3.mkfs.ext4 /dev/md0
echo “/dev/md0 /RAID ext4 defaults 0 0” >> /etc/fstab #往/etc/fstab文件追加挂载信息,以实现永久挂载mkdir /RAID
4.mount -a
5.mdadm /dev/md0 -f /dev/sdb
#故意移除RAID 5阵列中的其中一个盘(active的盘)
6.mdadm -D /dev/md0
#再查看磁盘阵列/dev/md0详细信息,显示备份盘自动定提上去并开始数据同步(spare rebuilding)。

LVM逻辑卷管理器
LVM(逻辑卷管理器)可以允许用户对硬盘资源进行动态调整。(让用户灵活的变更分区的大小)
逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。LVM的技术架构如图。
在这里插入图片描述
部署逻辑卷
部署LVM时,需要逐个配置物理卷、卷组和逻辑卷。常用的部署命令如表所示。
在这里插入图片描述部署逻辑卷步骤:(PV -> VG -> LV)
1.pvcreate /dev/sdb /dev/sdc
#创建物理卷,让硬盘设备支持LVM
2.vgcreate storage /dev/sdb /dev/sdc
#把创建好的物理卷组成卷组,命名为storge
3.vgdisplay
#查看卷组状态
4.lvcreate -n vo -l 40 storage
#从卷组storge切割出40个基本单元(默认大小4M)创建一个160M的逻辑卷,命名为vo。-l 40效果等同于-L 160M
5.lvdisplay
#查看逻辑卷状态
6.mkfs.ext4 /dev/storage/vo
#格式化逻辑卷vo
7.echo “/dev/storage/vo /linuxprobe ext4 defaults 0 0” >> /etc/fstab #往/etc/fatab文件追加挂载信息,实现永久挂载
8.mkdir /linuxprobe
#创建挂载点
9.mount -a
#挂载
10.df -h
#查看挂载状态

扩容逻辑卷
扩容前,先卸载设备和挂载点的关联。
扩容逻辑卷(lvextend);
检查硬盘完整性(e2fsck),并重置硬盘容量(resize2fs);
重新挂载硬盘设备并查看挂载状态。mount -a df -h

缩小逻辑卷
缩容前,先卸载设备和挂载点的关联。
检查硬盘完整性(e2fsck);
先向系统报备一下即将要执行逻辑卷缩容的操作(resize2fs),再缩容逻辑卷(lvreduce);
重新挂载硬盘设备并查看挂载状态。mount -a df -h

逻辑卷快照
LVM还具备有“快照卷”功能,该功能类似于虚拟机软件的还原时间点功能。例如,可以对某一个逻辑卷设备做一次快照,如果日后发现数据被改错了,就可以利用之前做好的快照卷进行覆盖还原。LVM的快照卷功能有两个特点:
1.快照卷的容量必须等同于逻辑卷的容量;
2.快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。

往逻辑卷设备新建一个文件。然后为逻辑卷创建快照卷。再在逻辑卷目录生成一个垃圾文件。后先卸载逻辑卷与挂载点关联,再尝试快照还原操作(lvconvert --merge),再重新挂载,查看逻辑卷目录是否回到创建快照前的状态。

1.echo “Welcome to Linuxprobe.com” > /linuxprobe/readme.txt
#往逻辑卷设备写入一个文件
2.ls -l /linuxprobe
#查看逻辑卷目录的内容
3.lvcreate -L 120M -s -n SSS /dev/storage/vo
#为逻辑卷vo生成一个快照卷,命名为SSS,指定切割大小120M,
4.lvdisplay
#查看逻辑卷详细信息,可以看到SSS是vo的快照卷(snapshot)
5.dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M
#在逻辑卷vo的目录下创建一个100M的文件
6.lvdisplay
#查看逻辑卷详细信息,可以发现vo的空间占用量上升
7.umount /linuxprobe
#卸载逻辑卷与挂载点关联
8.lvconvert --merge /dev/storage/SSS
#对逻辑卷vo进行快照还原操作
9.mount -a
#重新挂载
10.ls /linuxprobe/
#查看逻辑卷目录,可以发现创建快照后再创建的100M文件不见了,逻辑卷恢复成设置快照前的状态

删除逻辑卷
当生产环境中想要重新部署LVM或者不再需要使用LVM时,则需要执行LVM的删除操作。为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。

删除逻辑卷 1.umount /linuxprobe #卸载 2.vim /etc/fstab 3./dev/storage/vo /linuxprobe ext4 defaults 0 0 #删除挂载信息 4.lvremove /dev/storage/vo #删除逻辑卷,要按y确认 5.vgremove storage #删除卷组 6.pvremove /dev/sdb /dev/sdc #删除物理卷