本文共 4002 字,大约阅读时间需要 13 分钟。
RAID:独立磁盘冗余阵列
将多个物理磁盘整合成一个逻辑磁盘,提高读取速度并实现冗余备份的功能。对用户透明,比如/dev/sda 就是一个磁盘阵列,只是我们认为只是一块硬盘而已。
多个不同容量的磁盘也可以做raid,只要我们每块磁盘能够取相同容量空间即可;
常用的raid技术:
raid0 //至少2块磁盘,无备份,磁盘全部用于存储数据
raid1 //至少2块磁盘,有备份,磁盘一半容量用于备份
raid4 //至少3块硬盘,单独分出一块磁盘存放校验码,用于容错并恢复数据,但是此校验磁盘故障整个raid失败
raid5 //至少3块硬盘,1个校验位,有容错性,比raid4安全,并留有备用磁盘(spare disk)
raid6 //至少4块磁盘,2个校验位,容错性更强
raid1+0 //2块磁盘组成raid1,然后再以2块磁盘为单位做raid0
raid0+1 //2块磁盘组成raid0,然后再以2块磁盘为单位做raid1
RAID实现方式:
硬raid //硬件磁盘、raid卡组成
软raid //软件控制
本实验使用软raid完成
linux下软raid介绍:
软raid工具:mdadm
raid设备可以命名为/dev/md0、/dev/md1/、/dev/md2等
mdadm 模式 raid设备 选项 块设备 //mdadm命令格式
模式:
-C //创建raid
-D //显示raid信息
raid设备:/dev/md#
配置示例:
本实验以vmware虚拟机环境操作,centos6操作系统
以制作raid5为例
第1步:在虚拟机上添加sdb、sdc、sdd三块磁盘
1 2 3 4 5 6 7 | [root@CentOs6 ~] #echo '- - - ' > /sys/class/scsi_host/host2/scan //扫描磁盘 [root@CentOs6 ~] #lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 3.7G 0 rom /media/CentOS_6 .9_Final sdb 8:16 0 10G 0 disk sdc 8:32 0 10G 0 disk sdd 8:48 0 10G 0 disk |
第2步:使用madam创建并定义raid设备
1 2 3 4 5 6 7 8 9 | [root@CentOs6 ~] #mdadm -C /dev/md0 -a yes -l 5 -n 2 -x 1 /dev/sdb /dev/sdc /dev/sdd mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. // 创建raid /dev/md0 成功 -C // 创建raid设备 /dev/md0 -a yes // 自动创建raid设备的设备文件, ls -l /dev/md0 -l 5 // 创建raid等级5,即raid5 -n 2 // 使用2块磁盘创建此raid -x 1 // 使用1块磁盘作为预留磁盘 最后是3个磁盘设备,前两个对应-n 2,最后一个磁盘设备对应-x 1 |
第3步:对raid设备进行格式化
1 2 3 | [root@CentOs6 ~] #mkfs.ext4 /dev/md0 //用ext4文件系统对raid设备格式化 [root@CentOs6 ~] #blkid /dev/md0 //查看结果,type类型是ext4 /dev/md0 : UUID= "8c6bf484-a8c8-4c46-9ba4-48c362597017" TYPE= "ext4" |
第4步:测试raid
1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@CentOs6 ~] #mkdir /mnt/md0 [root@CentOs6 ~] #mount /dev/md0 /mnt/md0 //挂载raid设备 [root@CentOs6 ~] #dd if=/dev/zero of=/mnt/md0/test bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 2.64593 s, 406 MB /s // 上例测试raid5设备传输1G大小文件的时间和速率 [root@CentOs6 ~] #dd if=/dev/zero of=test bs=1M count=1024 1024+0 records in 1024+0 records out // 直接在root家目录测试,即普通磁盘 1073741824 bytes (1.1 GB) copied, 5.85619 s, 183 MB /s // 上例测试未做raid的本机普通磁盘传输1G大小文件的时间和速率 // 通过比较,raid5比普通磁盘传输效率高 |
第5步:检查raid设备状况(信息较多,只列出基本信息)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [root@CentOs6 ~] #mdadm -D /dev/md0 /dev/md0 : // 设备名 Creation Time : Fri Aug 11 20:37:12 2017 // 创建时间 Raid Level : raid5 //raid 级别 Array Size : 10477568 (9.99 GiB 10.73 GB) // 阵列大小 Used Dev Size : 10477568 (9.99 GiB 10.73 GB) // 使用的磁盘大小 Raid Devices : 2 // 用作raid的磁盘数 Total Devices : 3 // 总的磁盘数,还有1个是当作备用 Persistence : Superblock is persistent // 此raid设备的超级块是存在的 State : clean //raid 状态已经创建完成 Spare Devices : 1 // 备用磁盘 Chunk Size : 512K //chunk 类似于磁盘中的block,是raid的基本容量单位 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 3 8 32 1 active sync /dev/sdc 2 8 48 - spare /dev/sdd 另外 [root@CentOs6 ~] #cat /proc/mdstat //此命令也可以查看raid摘要信息 |
第6步:raid5具有容错性,接下来模拟/dev/sdb磁盘故障,/dev/sdd磁盘能否磁道备份作用
1 2 3 4 5 6 7 8 9 | [root@CentOs6 ~] #mdadm /dev/md0 -f /dev/sdb mdadm: set /dev/sdb faulty in /dev/md0 [root@CentOs6 ~] #mdadm -D /dev/md0 |tail -5 Number Major Minor RaidDevice State 2 8 48 0 spare rebuilding /dev/sdd 3 8 32 1 active sync /dev/sdc 0 8 16 - faulty /dev/sdb ##-f模拟/dev/sdb磁盘故障,结果显示确实生效 ##/dev/sdd作为备份,替代/dev/sdb磁盘,rebuilding表示正在同步信息,完成后会显示sync |
第7步:故障磁盘已经被替换,然后我们将其移除
1 2 3 4 5 6 7 | [root@CentOs6 ~] #mdadm /dev/md0 -r /dev/sdb mdadm: hot removed /dev/sdb from /dev/md0 [root@CentOs6 ~] #mdadm -D /dev/md0 |tail -5 Number Major Minor RaidDevice State 2 8 48 0 active sync /dev/sdd 3 8 32 1 active sync /dev/sdc // 移除故障磁盘,提示hot removed,热移除,如果服务器不支持热插拔磁盘还需要提前断电。最后移除故障磁盘 |
第8步:实验结束,恢复磁盘
1 2 3 4 5 6 7 8 | [root@CentOs6 ~] #umount /mnt/md0/ //首先取消挂载 [root@CentOs6 ~] #mdadm -S /dev/md0 mdadm: stopped /dev/md0 //-S 停止raid设备 [root@CentOs6 ~] #mdadm --zero-superblock /dev/sdb [root@CentOs6 ~] #mdadm --zero-superblock /dev/sdc [root@CentOs6 ~] #mdadm --zero-superblock /dev/sdd // 删除3块磁盘的硬件信息 [root@CentOs6 ~] #blkid //最后查看块设备信息,确认raid已经被清除完毕 |
到此raid实验结束
本文转自 a_pan 51CTO博客,原文链接:http://blog.51cto.com/panpangao/1955616
转载地址:http://niwql.baihongyu.com/