软件磁盘阵列(software raid)

一、基本概念
1.磁盘阵列RAID,即容错廉价磁盘阵列,RAID可以通过一些技术将多个较小的磁盘整合成一个较大的磁盘设备,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上
2.RAID0
stripe,不含校验与冗余的条带存储,无备份
多块磁盘组合为RAID 0后,每块磁盘都将会被分割为小区快(chunk),而数据会被分割成块的大小,然后依序交错的存放到不同的磁盘中,当数据要写入RAID,数据会被等量放置在各个磁盘上面。
举例来说,有两块磁盘组成,当有100M的数据要写入时,每个磁盘会被分配到50M
读写性能有提升,冗余能力无,空间利用率100%,至少需要2块磁盘
3.RAID1
mirror,不含校验的镜像存储 ,完整备份
多块磁盘组合为RAID 1后,数据将被同时复制到每块磁盘
读性能有提升,写性能下降,冗余能力有,空间利用率50%,至少需要2块磁盘
举例说明,有一个100M的文件,仅有两块磁盘组成,这两块磁盘将会被同步写入100M的文件,整体RAID的容量几乎少了50%
4.RAID5
数据块级别的分布式校验条带存储 ,性能与数据备份的均衡考虑
多块磁盘组合为RAID 5后,数据将以块为单位同步式分别存储在不同的磁盘上,在数据写入过程中,在每块磁盘还循环加入一个同位检验数据(parity),这个数据会记录其他磁盘的备份数据,用于有磁盘损坏时的救援,不过默认仅能支持一块磁盘的损毁情况
读写性能有提升,冗余能力有,空间利用率(n-1)/n,至少需要3块磁盘

RAID01
条带+镜像存储
让两块硬盘组成RAID 0,然后这两组再整合成为一组RAID 1
读写性能有提升,冗余能力有,空间利用率50%,至少需要4块盘
RAID10
镜像+条带存储
让两块硬盘组成RAID 1,然后这两组再整合成为一组RAID 0
如果有100M的数据要写入,由于raid1,两组raid0都会写入100M,但由于raid0,每块磁盘仅会写入50M,不论哪一组raid0的磁盘损毁,只要另外一组还在,可通过raid1机制回复数据
3.重要的 RAID 概念
校验方式用在 RAID 重建中从校验所保存的信息中重新生成丢失的内容。 RAID 5,RAID 6 基于校验。
条带化是将切片数据随机存储到多个磁盘。它不会在单个磁盘中保存完整的数据。如果我们使用2个磁盘,则每个磁盘存储我们的一半数据。
镜像被用于 RAID 1 和 RAID 10。镜像会自动备份数据。在 RAID 1 中,它会保存相同的内容到其他盘上。
热备份只是我们的服务器上的一个备用驱动器,它可以自动更换发生故障的驱动器。在我们的阵列中,如果任何一个驱动器损坏,热备份驱动器会自动用于重建 RAID。
是 RAID 控制器每次读写数据时的最小单位,最小 4KB。通过定义块大小,我们可以增加 I/O 性能。
二、常用参数
在这里插入图片描述
以RAID5为底层,在此基础上创建逻辑卷,模拟搞坏硬盘后数据有无影响
1)关机,添加3块硬盘大小为5G
在这里插入图片描述
2)开启虚拟机,mdadm创建
mdadm -Cv /dev/md0 -a yes -n 3 -l 5 /dev/sdb /dev/sdc /dev/sdd
在这里插入图片描述
mkfs.ext4 /dev/md0 以ext4格式化/dev/md0
在这里插入图片描述
mkdir /raid 创建raid目录
在这里插入图片描述
mount /dev/md0 /raid 挂载/dev/md0 到raid
在这里插入图片描述
mdadm-D /dev/md0 查看/dev/md0 详细信息
在这里插入图片描述
echo “/dev/md0 /raid ext4 defaults 0 0” >> /etc/fstab写进自动挂载
在这里插入图片描述
mount -a
在这里插入图片描述
pvcreate /dev/md0 如果出现这个问题,先卸载挂载点umount /raid可成功
在这里插入图片描述
pvcreate /dev/md0 创建物理卷成功
在这里插入图片描述
vgcreate storage /dev/md0 创建卷组名为storage
在这里插入图片描述
lvcreate -n vo -L 150M storage 创建150M 的逻辑卷
在这里插入图片描述
mkfs.ext4 /dev/storage/vo 格式化
在这里插入图片描述
mkdir /lvm创建挂载目录
在这里插入图片描述
mount/dev/storage /vo lvm挂载
在这里插入图片描述
此时,进入到lvm下创建文件并写入数据
cd /lvm
touch ss
dd if=/dev/zero of=/lvm/ss bs=100M count=1
在这里插入图片描述
mdadm -D /dev/md0 查看详细信息,三块盘已经正常工作
在这里插入图片描述
损坏 /dev/sdc 盘
在这里插入图片描述
查看时发现/dev/sdc 损坏不能正常使用
在这里插入图片描述
查询里面的数据发现还在,未被损坏
在这里插入图片描述
移除/dev/sdc盘,
在这里插入图片描述
查看已经移除成功
在这里插入图片描述
查询里面的数据发现还在,未被损坏
在这里插入图片描述
然后添加上/dev/sdc 在图中红色圈出来的部分可以看到添加完成情况
在这里插入图片描述
添加成功
在这里插入图片描述
总结:以RAID5为基础,创建逻辑卷测试如果损坏一块硬盘时 数据不会变化,而不能损坏超过一块,RAID5 仅支持损坏一块,否则系统可能崩溃。