互联网服务Linuxraid

linux磁盘管理のRAID简单实现

写在前面的话,因为实现 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的详细信息



图11

创建一个大小为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相关,与本人无关哦!

参与0

0同行回答

“答”则兼济天下,请您为题主分忧!

提问者

kkmmll
软件开发工程师kkmmll
擅长领域: 服务器大数据分布式系统

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2013-07-25
  • 关注会员:0 人
  • 问题浏览:1454
  • X社区推广