linux raid测试,linux 软件RAID实验

15.2.3软件磁盘阵列的设置

mdadm命令语法

mdadm --detail /dev/md0

mdadm --create --auto=yes /dev/md[0-9] --raid-devices=N --level=[015] --spare-devices=N /dev/sdx /dev/hdx

参数

--create:新建RAID的参数

--auto=yes:决定新建后面接的软件磁盘阵列设备,即/dev/md0,dev/md1等。

--raid-devices=N:使用几个磁盘作为磁盘阵列的设备

--spare-devices=N:使用几个磁盘作为备用spare设备

--level=[015]:设置这组磁盘阵列的等级。

--detail:后面接的那个磁盘阵列设备的详细信息。

面的语法中,最后会接许多的设备文件名(/dev/sdx

/dev/hdx),这些设备文件名可以是整块磁盘,例如/dev/sdb也可以是分区,例如/dev/sdb1之类,不过,这些设备名的总数必须要等于

--raid-devices与--spare--devices的个数总和才行

基本语法 : mdadm [mode] [options]

mode  有7种:

Assemble:将以前定义的某个阵列加入当前在用阵列。(如果umount /dev/mdx 则可能需要使用此命令恢复阵列)

Build:Build a legacy array ,每个device 没有 superblocks

Create:创建一个新的阵列,每个device 具有 superblocks

Manage: 管理阵列,比如 add 或 remove

Misc:允许单独对阵列中的某个 device 做操作,比如抹去superblocks 或 终止在用的阵列。

Follow or Monitor:监控 raid 1,4,5,6 和 multipath 的状态

Grow:改变raid 容量或 阵列中的 device 数目

可用的 [options]:

-A, --assemble:加入一个以前定义的阵列

-B, --build:Build a legacy array without superblocks.

-C, --create:创建一个新的阵列

-Q, --query:查看一个device,判断它为一个 md device 或是 一个 md 阵列的一部分

-D, --detail:打印一个或多个 md device 的详细信息

-E, --examine:打印 device 上的 md superblock 的内容

-F, --follow, --monitor:选择 Monitor 模式

-G, --grow:改变在用阵列的大小或形态

-h, --help:帮助信息,用在以上选项后,则显示该选项信息

--help-options

-V, --version

-v, --verbose:显示细节

-b, --brief:较少的细节。用于 --detail 和 --examine 选项

-f, --force

-c, --config= :指定配置文件,缺省为 /etc/mdadm.conf

-s, --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息。配置文件/etc/mdadm.conf

mdadm.conf 格式:

DEVICE  所用到的设备分区列表(在mdadm扫描时,将扫描这些分区)

ARRAY   定义实际的磁盘阵列

简单实例:

DEVICE /dev/sda10 /dev/sda11 /dev/sdb10 /dev/sdb11

ARRAY /dev/md0 devices=/dev/sda11, /dev/sda10

[root@RHEL6 /]# mdadm  --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd{c,d,e,f}

mdadm:

You haven't given enough devices (real or missing) to create this

array

#这报了一个错误,没有足够的设备,也就是,raid-devices+spare-devices>/devsd{c,d,e,f}

[root@RHEL6 /]# mdadm  --create --auto=yes /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd{c,d,e,f}

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md0 started.

还有一种写法是

[root@RHEL6 /]# mdadm -C /dev/md0 -l 5 -n 3 /dev/sda{6,7,8} -x 1  /dev/sda9  #-l 5 做raid5,-n 3 需要3块磁盘, -x 1 需要一块热备

[root@RHEL6 /]# mdadm --detail /dev/md0

/dev/md0:                                                                                          #RAID设备文件名

Version : 1.2

Creation Time : Mon Jul  6 15:07:37 2015                        #RAID被创建的时间

Raid Level : raid5                               #RAID等级为RAID 5

Array Size : 2095104 (2046.34 MiB 2145.39 MB)        #此RAID的可用磁盘容量

Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)        #每个设备的可用容量

Raid Devices : 3                                                                        #作用RAID的设备数量

Total Devices : 4                                                                        #全部的设备数量

Persistence : Superblock is persistent

Update Time : Mon Jul  6 15:07:47 2015

State : clean

Active Devices : 3                                                                        #启动活动的(active)设备数量

Working Devices : 4                                                                        #工作的设备数量

Failed Devices : 0                                                                        #出现错误的设备数量

Spare Devices : 1                                                                        #预备磁盘的数量

Layout : left-symmetric

Chunk Size : 512K

Name : RHEL6.4x64:0  (local to host RHEL6.4x64)

UUID : 04fb4194:c2f800ce:ca084fe9:6aa014aa #此设备(RAID)标识符

Events : 18

Number   Major   Minor   RaidDevice State   #最后4行就是这五个设备目前的情况,包括四个active sync一个spare,RaidDevice指的是此RAID内的磁盘顺序

0       8       32        0      active sync   /dev/sdc

1       8       48        1      active sync   /dev/sdd

4       8       64        2      active sync   /dev/sde

3       8       80        -      spare   /dev/sdf

[root@RHEL6 /]#

[root@RHEL6 /]# cat /proc/mdstat   #除了mdadm --detail命令之外,也可以查阅如下文件看系统软件磁盘阵列的情况;

Personalities : [raid6] [raid5] [raid4]

md0

: active raid5 sde[4] sdf[3](S) sdd[1] sdc[0]

#md0为raid5,且使用了sdc、sdd、sde、sdf四块磁盘设备,每个设备后面的[]内的数字为此磁盘在RAID中的number,(S)表

示sdf[3]为spare之意。

2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

#每个block单位为1KB,所以容量约为2GB,使用RAID5等级,写入磁盘的小区块(chunk)大小为512KB,使用aigorithm2磁

盘阵列算法。[m/n]也就是[3/3],代表此数组需要m个设备,且n个设备正常运行。[UUU]代表3个所需的启动设备正常运行,若为_则代表不正

常。

unused devices:

[root@RHEL6 /]#

格式化与挂载使用RAID

[root@RHEL6 /]# mkfs -t ext4 /dev/md0  #格式化md0设备

[root@RHEL6 /]# mkdir /media/raid

[root@RHEL6 /]# mount /dev/md0 /media/raid/  #挂载

[root@RHEL6 /]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda3              16G  1.7G   14G  11% /

tmpfs                 937M     0  937M   0% /dev/shm

/dev/sda1             194M   26M  159M  14% /boot

/dev/sdb5             2.3G  362M  1.8G  17% /home

/dev/sr0              3.5G  3.5G     0 100% /mnt

/dev/md0              2.0G   35M  1.9G   2% /media/raid

[root@RHEL6 /]#

15.2.4仿真RAID错误的救援模式

仿真RAID错误命令语法

mdadm --manage /dev/md[0-9] [--add 设备] [--remove 设备] [--fail 设备]

参数

--add:会将后面的设备加入到这个md中;

--remove:会将后面的设备从这个md中删除。

--fail:会将后面的设备设置成为出错的状态。

设置磁盘为错误(fault)

让一个磁盘变成错误,然后让spare disk自动开始重建系统

[root@RHEL6 /]# cp -a /etc /var/log/ /media/raid/   #复制一点东西给RAID,假设RAID已经使用

[root@RHEL6 /]# df /media/raid/; du -sm /media/raid/*

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/md0               2062160     70212   1887196   4% /media/raid

25      /media/raid/etc   #确实有数据在里面

5       /media/raid/log

1       /media/raid/lost+found

[root@RHEL6 /]#

[root@RHEL6 /]# mdadm --manage /dev/md0 --fail /dev/sde #假设/dev/sde这个设备出错

mdadm: set /dev/sde faulty in /dev/md0

[root@RHEL6 /]# mdadm --detail /dev/md0 #查看RAID情况

/dev/md0:

Version : 1.2

Creation Time : Mon Jul  6 15:07:37 2015

Raid Level : raid5

Array Size : 2095104 (2046.34 MiB 2145.39 MB)

Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)

Raid Devices : 3

Total Devices : 4

Persistence : Superblock is persistent

Update Time : Mon Jul  6 17:01:45 2015

State : clean

Active Devices : 3

Working Devices : 3

Failed Devices : 1     #有一个磁盘错误

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 512K

Name : RHEL6.4x64:0  (local to host RHEL6.4x64)

UUID : 04fb4194:c2f800ce:ca084fe9:6aa014aa

Events : 37

Number   Major   Minor   RaidDevice State

0       8       32        0      active sync   /dev/sdc

1       8       48        1      active sync   /dev/sdd

3       8       80        2      active sync   /dev/sdf   #原有的spare磁盘,现在进入工作状态

4       8       64        -      faulty spare   /dev/sde  #出错的磁盘,进入错误spare状态

[root@RHEL6 /]#

[root@RHEL6 /]# cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sde[4](F)(这个磁盘错误了) sdf[3] sdd[1] sdc[0]

2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

unused devices:

[root@RHEL6 /]#

将出错的磁盘删除并加入新磁盘

[root@RHEL6 raid]# mdadm --detail /dev/md127  #系统重启后(我要新加硬盘)md0变为md127了,而且原fail的磁盘没有了

/dev/md127:

Version : 1.2

Creation Time : Mon Jul  6 15:07:37 2015

Raid Level : raid5

Array Size : 2095104 (2046.34 MiB 2145.39 MB)

Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)

Raid Devices : 3

Total Devices : 3

Persistence : Superblock is persistent

Update Time : Mon Jul  6 17:19:31 2015

State : clean

Active Devices : 3

Working Devices : 3

Failed Devices : 0

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 512K

Name : RHEL6.4x64:0  (local to host RHEL6.4x64)

UUID : 04fb4194:c2f800ce:ca084fe9:6aa014aa

Events : 37

Number   Major   Minor   RaidDevice State

0       8       32        0      active sync   /dev/sdc

1       8       48        1      active sync   /dev/sdd

3       8       80        2      active sync   /dev/sdf

[root@RHEL6 raid]#

[root@RHEL6 raid]# mdadm --manage /dev/md127 --remove /dev/sdf   #不能直接remove,也就是一个在用的磁盘,是不能直接remove的,必须有一个踢出的动作

mdadm: hot remove failed for /dev/sdf: Device or resource busy

系统只剩3块盘的情况下我,想在仿真RAID的一块磁盘问题

[root@RHEL6 raid]# mdadm --manage /dev/md127 --fail /dev/sdf

mdadm: set /dev/sdf faulty in /dev/md127

[root@RHEL6 raid]#

[root@RHEL6 raid]# mdadm --detail /dev/md127

/dev/md127:

Version : 1.2

Creation Time : Mon Jul  6 15:07:37 2015

Raid Level : raid5

Array Size : 2095104 (2046.34 MiB 2145.39 MB)

Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)

Raid Devices : 3

Total Devices : 3

Persistence : Superblock is persistent

Update Time : Mon Jul  6 17:25:31 2015

State : clean, degraded (这里多了一个degraded降级,还要看一下man mdadm关于state的部分)

Active Devices : 2

Working Devices : 2

Failed Devices : 1

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 512K

Name : RHEL6.4x64:0  (local to host RHEL6.4x64)

UUID : 04fb4194:c2f800ce:ca084fe9:6aa014aa

Events : 38

Number   Major   Minor   RaidDevice State

0       8       32        0      active sync   /dev/sdc

1       8       48        1      active sync   /dev/sdd

2       0        0        2      removed                #状态为removed

3       8       80        -      faulty spare   /dev/sdf #出错的硬盘状态改为faulty spare

[root@RHEL6 raid]#

[root@RHEL6 raid]# ll -d /media/raid/*    #这个磁盘还是能够使用的,,RAID 5两块磁盘也能正常工作吗?

drwxr-xr-x. 76 root root  4096 Jul  6 16:42 /media/raid/etc

drwxr-xr-x.  6 root root  4096 Jul  6 14:43 /media/raid/log

drwx------.  2 root root 16384 Jul  6 16:41 /media/raid/lost+found

[root@RHEL6 raid]#

[root@RHEL6 ~]# cp -a /home /media/raid/

[root@RHEL6 ~]# ll -d /media/raid/*

drwxr-xr-x. 76 root root  4096 Jul  6 16:42 /media/raid/etc

drwxr-xr-x. 25 root root  4096 Jul  5 21:28 /media/raid/home

drwxr-xr-x.  6 root root  4096 Jul  6 14:43 /media/raid/log

drwx------.  2 root root 16384 Jul  6 16:41 /media/raid/lost+found

[root@RHEL6 ~]#

[root@RHEL6 ~]# mdadm --manage /dev/md127 --add /dev/sdg  #添加一块好盘

mdadm: added /dev/sdg

[root@RHEL6 ~]# mdadm --manage /dev/md127 --remove /dev/sdf  #移除一个坏盘

mdadm: hot removed /dev/sdf from /dev/md127

[root@RHEL6 ~]# mdadm --manage /dev/md127 --remove /dev/sdf  #在添加一块好盘

mdadm: hot removed /dev/sdf from /dev/md127

[root@RHEL6 ~]# mdadm --manage /dev/md127 --add /dev/sdh   #提示都正常了

mdadm: added /dev/sdh

[root@RHEL6 ~]# mdadm --detail /dev/md127

/dev/md127:

Version : 1.2

Creation Time : Mon Jul  6 15:07:37 2015

Raid Level : raid5

Array Size : 2095104 (2046.34 MiB 2145.39 MB)

Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)

Raid Devices : 3

Total Devices : 4

Persistence : Superblock is persistent

Update Time : Mon Jul  6 17:32:21 2015

State : clean

Active Devices : 3

Working Devices : 4

Failed Devices : 0

Spare Devices : 1

Layout : left-symmetric

Chunk Size : 512K

Name : RHEL6.4x64:0  (local to host RHEL6.4x64)

UUID : 04fb4194:c2f800ce:ca084fe9:6aa014aa

Events : 83

Number   Major   Minor   RaidDevice State

0       8       32        0      active sync   /dev/sdc

1       8       48        1      active sync   /dev/sdd

4       8       96        2      active sync   /dev/sdg

3       8      112        -      spare   /dev/sdh

[root@RHEL6 ~]#

15.2.5开机自动启动RAID并自动挂载

mdadm --detail /dev/md0 | group -i uuid

列出的UUID : XXXXX,是这个设备箱系统注册的UUID表示符

开始设置mdadm.conf

vi /etc/mdadm.conf

ARRAY /dev/md0 UUID=XXXX

设置开机自动挂载并测试

vi /etc/fstab

/dev/md0        /media/raid     ext4    defaults 0 0

umount /dev/md0; mount -a  #需要确定可以顺利挂载,并且没有发生任何错误!

df /media/raid

15.2.6关闭RAID

umount /dev/md0

删除/etc/fstab中关于md0的那一行

mdadm --stop /dev/md0  #关闭md0

cat /proc/mdstat  #可以使用cat mdstat检查

删除/etc/mdadm.conf中关于ARRAY的配置

Softraid命令汇总

mdadm  --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd{c,d,e,f}

mdadm -C /dev/md0 -l 5 -n 3 /dev/sda{6,7,8} -x 1  /dev/sda9  #-l 5 做raid5,-n 3 需要3块磁盘, -x 1 需要一块热备

mdadm参数

--create:新建RAID的参数

--auto=yes:决定新建后面接的软件磁盘阵列设备,即/dev/md0,dev/md1等。

--raid-devices=N:使用几个磁盘作为磁盘阵列的设备

--spare-devices=N:使用几个磁盘作为备用spare设备

--level=[015]:设置这组磁盘阵列的等级。

--detail:后面接的那个磁盘阵列设备的详细信息。

mdadm --manage /dev/md127 --add /dev/sdg          #添加一块好盘

mdadm --manage /dev/md0 --fail /dev/sde             #仿真/dev/sde这个设备出错

mdadm --manage /dev/md127 --remove /dev/sdf      #移除一个坏盘

mdadm --manage /dev/md127 --add /dev/sdh           #提示都正常了

mdadm --detail /dev/md0                                             #查看RAID情况

cat /proc/mdstat

mdadm --stop /dev/md127                                                #关闭md127

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值