写在前面的话,因为实现 RAID是对系统进行的一项重要的变动(包括创建新分区和其它一些潜在的冒险操作),所以在开始这一过程之前备份整个系统 不失为 一个好主意。如果您不想进行备份,我希望您能使用一台没有什么重要数据的测试机器做必要的测试,包括后期的数据完整性做%/%的校验,平时多细心哪怕辛苦一点总比到时候数据不完整或者丢失,到处抱着磁盘阵列到处回恢复数据要好吧!呵呵!


创建一个大小为10GRAID0

一、新建所需RAID0的两个分区

使用/dev/sde1/dev/sdf1进行创建,分区容量大小为各5G,并转换分区为fd

#fdisk /dev/sde
#fdisk /dev/sdf
# fdisk -l /dev/sd{e,f}

linux磁盘管理のRAID简单实现_磁盘分区

linux磁盘管理のRAID简单实现_磁盘分区_02

12

注:保存退出后不要对其格式化,因为我们不能去格式化一个software raid 底层的块设备,而是要格式化software raid本身。

二、让内核重新读取分区表

# partx -a /dev/sde1 /dev/sde
# partx -a /dev/sdf1 /dev/sdf
# cat /proc/partitions

linux磁盘管理のRAID简单实现_磁盘分区_03

3

三、/dev/sde1/dev/sdf1两个分区创建为RAID0

创建之前先确认/proc/mdstat下面是否有相关文件

# cat /proc/mdstat

linux磁盘管理のRAID简单实现_RAID0_04

4

# ls -l /dev/md*

linux磁盘管理のRAID简单实现_RAID0_05

5

既然md0还没有使用,那就让我们从0开始吧!

#mdadm -C -a yes -n 2 -l 0 /dev/sd{e,f}1

四、创建md设备

# mdadm -C /dev/md00 -a yes -l 0 -n 2 /dev/sd{e,f}1

linux磁盘管理のRAID简单实现_RAID0_06

6

md相关文件的解释说明------〉版本号、设备文件、ID----------->ASCII码文件,保存了当前主机上所有md设备的映射关系,通过将哪些磁盘分区做成了md设备


linux磁盘管理のRAID简单实现_RAID0_07

#ls -l /dev/md*

7

#cd /dev/md
#file md-device-map

#cat md-device-ma

linux磁盘管理のRAID简单实现_RAID5_08

8

五、格式化md设备

注:md设备创建完成之后就可以格式化md设备,md是一个独立的设备

#mke2fs -t ext4 /dev/md0

#mke2fs -t ext4 /dev/md0


linux磁盘管理のRAID简单实现_磁盘分区_09

9

六、挂载

#mkdir /raid0
#mount /dev/md0 /raid0
#cd /raid0/
#ls
#mount

linux磁盘管理のRAID简单实现_RAID_10

七、监控md0设备、了解md相关信息

#mdadm -D /dev/md0——————》显示md0的详细信息

linux磁盘管理のRAID简单实现_RAID0_1111

创建一个大小为20GRAID1

一、分别在系统中创建两个为20的分区

linux磁盘管理のRAID简单实现_RAID_12

1

二、

/#fdisk -l /dev/sd{b,c} 让内核重新读取识别分区/


linux磁盘管理のRAID简单实现_RAID0_13

2

三、创建md设备

# mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sd{b,c}1

linux磁盘管理のRAID简单实现_磁盘分区_14

3

查看是否创建成功

# cat /proc/mdstat

linux磁盘管理のRAID简单实现_RAID5_15

4

四、格式化md设备

# mke2fs -t ext4 /dev/md1 -L RAID_1

linux磁盘管理のRAID简单实现_RAID0_16

5

六、

linux磁盘管理のRAID简单实现_磁盘分区_17

6

linux磁盘管理のRAID简单实现_RAID_18

7

测试RAID1的冗余能力

#cd /mnt
#ls;pwd
#cp /etc/issue ./
#mount

linux磁盘管理のRAID简单实现_RAID_19

8

二、假如,RAID1种的某块硬盘坏掉了,那么/mnt挂载点还可以使用吗?

对于RAID1来说,坏掉一块硬盘的话真的不影响数据访问吗?

三、开始破坏

# mdadm /dev/md1 -f /dev/sdb1
# mdadm -D /dev/md1

linux磁盘管理のRAID简单实现_RAID5_20

9

# cat issue

linux磁盘管理のRAID简单实现_RAID5_21

10

复制文件进来试试看,测试写操作

linux磁盘管理のRAID简单实现_RAID0_22

11

测试读操作

linux磁盘管理のRAID简单实现_磁盘分区_23

12

OK,没问题!

三、移除坏掉的磁盘

# mdadm /dev/md1 -r /dev/sdb1

linux磁盘管理のRAID简单实现_RAID_24

13

四、假如/dev/sd这块磁盘修好了,我们怎样添加到它的RAID组中呢?

# mdadm /dev/md1 -a /dev/sdb1
# mdadm -D /dev/md1

linux磁盘管理のRAID简单实现_磁盘分区_25

14

# mdadm -D /dev/md1

linux磁盘管理のRAID简单实现_RAID_26

数据重建成功

               模拟RAID1中的第二块磁盘损坏

一、

# mdadm /dev/md1   -f /dev/sdc1
# mdadm -D /dev/md1

linux磁盘管理のRAID简单实现_磁盘分区_27

16

二、/mnt目录进行读写操作

# ls /mnt/
# cat /mnt/issue -n
# echo "i love linux so much " >> /mnt/love.txt
# cat /mnt/love.txt -n

linux磁盘管理のRAID简单实现_RAID5_28

17

linux磁盘管理のRAID简单实现_磁盘分区_29

18

linux磁盘管理のRAID简单实现_RAID5_30

19

RAID1 中三块磁盘 一块做备用盘

# mdadm -C /dev/md2 -a yes -l 1 -n 2 -x 1 /dev/sd{b,c,d}2

linux磁盘管理のRAID简单实现_RAID_31

20

# fdisk -l /dev/sd{b,c,d}

linux磁盘管理のRAID简单实现_磁盘分区_32

21

格式化md设备

# mke2fs -t ext4 /dev/md2

linux磁盘管理のRAID简单实现_RAID5_33

22

挂载#mount /dev/md2  /mnt/
# cp /etc/fstab /mnt/
# cat /mnt/fstab

linux磁盘管理のRAID简单实现_磁盘分区_34

23

       模拟一块磁盘损坏

linux磁盘管理のRAID简单实现_RAID5_35

24

# mdadm /dev/md2 -r /dev/sdb2
# mdadm -D /dev/md2

linux磁盘管理のRAID简单实现_RAID0_36

25

查看文件完好无损哦

linux磁盘管理のRAID简单实现_RAID5_37

26

   创建一个大小为10GRAID5

# ls /dev/md*

linux磁盘管理のRAID简单实现_RAID0_38

# mdadm -C /dev/md3 -a yes -l 5 -n 3 /dev/sd{b,c,d}3

27

linux磁盘管理のRAID简单实现_RAID_39

28

# cat /proc/mdstat

linux磁盘管理のRAID简单实现_RAID5_40

29

创建md设备

# mdadm -D /dev/md3

linux磁盘管理のRAID简单实现_RAID_41

30

格式化md设备

# mke2fs -t ext4 /dev/md3

linux磁盘管理のRAID简单实现_RAID_42

31

# mount /dev/md3  /mnt/
# cp /etc/issue /mnt/issue
# cat /mnt/issue

linux磁盘管理のRAID简单实现_RAID0_43

32

       模拟/dev/sd磁盘损坏

# mdadm /dev/md3 -f /dev/sdb3
# mdadm -D /dev/md3

linux磁盘管理のRAID简单实现_RAID5_44

33

数据可以正常访问哦

linux磁盘管理のRAID简单实现_RAID0_45

34

# mdadm -D /dev/md3

linux磁盘管理のRAID简单实现_RAID0_46

35

再坏掉一块的话会怎么样呢?试试不就知道了啊,呵呵,要敢于尝试吗!!!!

# mdadm /dev/md3 -f /dev/sdc3
# cat -n /mnt/issue

linux磁盘管理のRAID简单实现_磁盘分区_47

36

linux磁盘管理のRAID简单实现_磁盘分区_48

37

# mdadm -D /dev/md3


到此,关于RAID的相关实操就到此结束,此实验仅供学习交流使用,请勿在实际生产环境中模仿哦!

文中所有的操作与RAID相关,与本人无关哦!