写在前面的话,因为实现 RAID
是对系统进行的一项重要的变动(包括创建新分区和其它一些潜在的冒险操作),所以在开始这一过程之前备份整个系统 不失为 一个好主意。如果您不想进行备份,我希望您能使用一台没有什么重要数据的测试机器做必要的测试,包括后期的数据完整性做%/%的校验,平时多细心哪怕辛苦一点总比到时候数据不完整或者丢失,到处抱着磁盘阵列到处回恢复数据要好吧!呵呵!
创建一个大小为10G的RAID0
一、新建所需RAID0的两个分区
使用/dev/sde1/和dev/sdf1进行创建,分区容量大小为各5G,并转换分区为fd
1 2 3 | #fdisk /dev/sde #fdisk /dev/sdf # fdisk -l /dev/sd{e,f} |
图1、2
注:保存退出后不要对其格式化,因为我们不能去格式化一个software raid 底层的块设备,而是要格式化software raid本身。
二、让内核重新读取分区表
1 2 3 | # partx -a /dev/sde1 /dev/sde # partx -a /dev/sdf1 /dev/sdf # cat /proc/partitions |
图3
三、把/dev/sde1和/dev/sdf1两个分区创建为RAID0
创建之前先确认/proc/mdstat下面是否有相关文件
1 | # cat /proc/mdstat |
图4
1 | # ls -l /dev/md* |
图5
既然md0还没有使用,那就让我们从0开始吧!
1 | #mdadm -C -a yes -n 2 -l 0 /dev/sd{e,f}1 |
四、创建md设备
1 | # mdadm -C /dev/md00 -a yes -l 0 -n 2 /dev/sd{e,f}1 |
图6
md相关文件的解释说明------〉版本号、设备文件、ID号----------->ASCII码文件,保存了当前主机上所有md设备的映射关系,通过将哪些磁盘分区做成了md设备
1 | #ls -l /dev/md* |
图7
1 2 | #cd /dev/md #file md-device-map |
1 | #cat md-device-ma |
图8
五、格式化md设备
注:md设备创建完成之后就可以格式化md设备,md是一个独立的设备
#mke2fs -t ext4 /dev/md0
1 | #mke2fs -t ext4 /dev/md0 |
图9
六、挂载
1 2 3 4 5 | #mkdir /raid0 #mount /dev/md0 /raid0 #cd /raid0/ #ls #mount |
七、监控md0设备、了解md相关信息
1 | #mdadm -D /dev/md0——————》显示md0的详细信息 |
创建一个大小为20G的RAID1
一、分别在系统中创建两个为20的分区
图1
二、
1 | /#fdisk -l /dev/sd{b,c} 让内核重新读取识别分区/ |
图2
三、创建md设备
1 | # mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sd{b,c}1 |
图3
查看是否创建成功
1 | # cat /proc/mdstat |
图4
四、格式化md设备
1 | # mke2fs -t ext4 /dev/md1 -L RAID_1 |
图5
六、
图6
图7
测试RAID1的冗余能力
1 2 3 4 | #cd /mnt #ls;pwd #cp /etc/issue ./ #mount |
图8
二、假如,RAID1种的某块硬盘坏掉了,那么/mnt挂载点还可以使用吗?
对于RAID1来说,坏掉一块硬盘的话真的不影响数据访问吗?
三、开始破坏
1 2 | # mdadm /dev/md1 -f /dev/sdb1 # mdadm -D /dev/md1 |
图9
1 | # cat issue |
图10
复制文件进来试试看,测试写操作
图11
测试读操作
图12
OK,没问题!
三、移除坏掉的磁盘
1 | # mdadm /dev/md1 -r /dev/sdb1 |
图13
四、假如/dev/sd这块磁盘修好了,我们怎样添加到它的RAID组中呢?
1 2 | # mdadm /dev/md1 -a /dev/sdb1 # mdadm -D /dev/md1 |
图14
1 | # mdadm -D /dev/md1 |
数据重建成功
模拟RAID1中的第二块磁盘损坏
一、
1 2 | # mdadm /dev/md1 -f /dev/sdc1 # mdadm -D /dev/md1 |
图16
二、对/mnt目录进行读写操作
1 2 3 4 | # ls /mnt/ # cat /mnt/issue -n # echo "i love linux so much " >> /mnt/love.txt # cat /mnt/love.txt -n |
图17
图18
图19
RAID1 中三块磁盘 一块做备用盘
1 | # mdadm -C /dev/md2 -a yes -l 1 -n 2 -x 1 /dev/sd{b,c,d}2 |
图20
# fdisk -l /dev/sd{b,c,d}
图21
格式化md设备
1 | # mke2fs -t ext4 /dev/md2 |
图22
1 | 挂载#mount /dev/md2 /mnt/ |
1 2 | # cp /etc/fstab /mnt/ # cat /mnt/fstab |
图23
模拟一块磁盘损坏
图24
1 2 | # mdadm /dev/md2 -r /dev/sdb2 # mdadm -D /dev/md2 |
图25
查看文件完好无损哦
图26
创建一个大小为10G的RAID5
1 | # ls /dev/md* |
1 | # mdadm -C /dev/md3 -a yes -l 5 -n 3 /dev/sd{b,c,d}3 |
图27
图
28
1 | # cat /proc/mdstat |
图29
创建md设备
1 | # mdadm -D /dev/md3 |
图30
格式化md设备
1 | # mke2fs -t ext4 /dev/md3 |
图31
1 2 3 | # mount /dev/md3 /mnt/ # cp /etc/issue /mnt/issue # cat /mnt/issue |
图32
模拟/dev/sd磁盘损坏
1 2 | # mdadm /dev/md3 -f /dev/sdb3 # mdadm -D /dev/md3 |
图33
数据可以正常访问哦
图34
1 | # mdadm -D /dev/md3 |
图35
再坏掉一块的话会怎么样呢?试试不就知道了啊,呵呵,要敢于尝试吗!!!!
1 2 | # mdadm /dev/md3 -f /dev/sdc3 # cat -n /mnt/issue |
图36
图37
1 | # mdadm -D /dev/md3 |
到此,关于RAID的相关实操就到此结束,此实验仅供学习交流使用,请勿在实际生产环境中模仿哦!
文中所有的操作与RAID相关,与本人无关哦!