[关闭]
@breakerthb 2016-07-14T02:45:04.000000Z 字数 4156 阅读 1427

RAID

Linux Shell


RAID分类

等待模式,stripe
性能最佳,数据不安全(磁盘越多性能越好)

$ mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdx /dev/sdy

影像模式,mirror
完整备份,数据安全,性能不佳

$ mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdx /dev/sdy

两组RAID0组成一个RAID1

两组RAID1组成一个RAID0

$ mdadm --create  --auto=yes  /dev/md10 --level=10 --raid-devices=4  /dev/sdb1  /dev/sdc1 /dev/sdd1 /dev/sde1

mdadm基本语法

$mdadm [mode] [options]

[mode] 有7种:

将以前定义的某个阵列加入当前在用阵列。

Build a legacy array ,每个device 没有 superblocks

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

管理阵列,比如 add 或 remove

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

监控 raid 1,4,5,6 和 multipath 的状态

改变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/mdadm.conf
-s, --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息。配置文件/etc/mdadm/mdadm.conf
create 或 build 使用的选项:
-c, --chunk=:Specify chunk size of kibibytes. 缺省为 64.
--rounding=: Specify rounding factor for linear array (==chunk size)
-l, --level=:设定 raid level.
--create可用:linear, raid0, 0, stripe, raid1,1, mirror, raid4, 4, raid5, 5, raid6, 6, multipath, mp.
--build可用:linear, raid0, 0, stripe.
-p, --parity=:设定 raid5 的奇偶校验规则:eft-asymmetric, left-symmetric, right-asymmetric, right-symmetric, la, ra, ls, rs.缺省为left-symmetric
--layout=:类似于--parity
-n, --raid-devices=:指定阵列中可用 device 数目,这个数目只能由 --grow 修改
-x, --spare-devices=:指定初始阵列的富余device 数目
-z, --size=:组建RAID1/4/5/6后从每个device获取的空间总数
--assume-clean:目前仅用于 --build 选项
-R, --run:阵列中的某一部分出现在其他阵列或文件系统中时,mdadm会确认该阵列。此选项将不作确认。
-f, --force:通常mdadm不允许只用一个device 创建阵列,而且创建raid5时会使用一个device作为missing drive。此选项正相反。
-a, --auto{=no,yes,md,mdp,part,p}{NN}:

常用命令

$ mdadm --create --verbose /dev/md0 --level=0 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
	$ mdadm -Cv /dev/md0 -l0 -n3 /dev/sd[bcd]1

$ echo DEVICE /dev/sd[bcd]1 > /etc/mdadm.conf
	$ mdadm -Ds >> /etc/mdadm.conf
$ mdadm --detail --scan >> /etc/mdadm.conf

若要开机自动挂载,请加入/etc/fstab中:

/dev/md0             /mnt/tes             auto defaults        0 0

安装和编译

源码下载:

http://www.cse.unsw.edu.au/~neilb/source/mdadm/

$ tar xzvf ./mdadm-1.6.0.tgz

$ cd mdadm-1.6.0

$ make install

rpm安装:

$ rpm -ivh mdadm-1.6.0-3.rpm

创建阵列

选项: -C

专用选项:

-l 级别
-n 设备个数
-a {yes|no} 自动为其创建设备文件
-c 指定数据块大小(chunk)
-x 指定空闲盘(热备磁盘)个数,空闲盘(热备磁盘)能在工作盘损坏后自动顶替

注意:创建阵列时,阵列所需磁盘数为-n参数和-x参数的个数和

RAID0

RAID1

RAID10

RAID01

RAID5

$ mdadm -C /dev/md5 -l 5 -n 3 -x 1  /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4

监视和管理

mdadm能非常方便的对阵列进行监视和管理的操作,也包括了停止和启动阵列等常用维护。

1、查看RAID

查看状态

$ cat /proc/mdstat

查看详细信息

选项:-D = --detail

能查看所有使用md驱动的阵列的状态:

$ mdadm --detail /dev/md0

2、停止

选项: -S = --stop

$ mdadm -S /dev/md0

注意:停止后,原组成阵列的磁盘将处于空闲状态,一旦吾操作这些磁盘,将不能再重启激活原阵列。

3、重新装配

之前stop的阵列可以被重新装配

$ mdadm -A /dev/md0 /dev/sd[bcd]1

启动指定的阵列,也可理解为将一个新阵列装配到系统中(--assemble):

若你已在上面设置了/etc/mdadm.conf文件,也可用-s查找:

$ mdadm -As /dev/md0

4、管理模式

选项:

-a(--add)
-d(--del)
-r(--remove)
-f(--fail)

模拟损坏

$ mdadm /dev/md1 -f /dev/sdb5

移除损坏的磁盘

$ mdadm /dev/md1 -r /dev/sdb5

添加新盘到已有阵列

$ mdadm /dev/md1 -a /dev/sdb7

注意

彻底删除RAID

mdadm /dev/md0 -f /dev/sdb -r /dev/sdb
mdadm /dev/md0 -f /dev/sdc -r /dev/sdc
mdadm /dev/md0 -f /dev/sdc -r /dev/sdd
mdadm /dev/md0 -f /dev/sde -r /dev/sde
mdadm /dev/md0 -f /dev/sdf -r /dev/sdf

mdadm -S /dev/md0
mdadm -r /dev/md0

擦掉superblock信息

mdadm --misc --zero-superblock /dev/sdb
mdadm --misc --zero-superblock /dev/sdc
mdadm --misc --zero-superblock /dev/sdd
mdadm --misc --zero-superblock /dev/sde
mdadm --misc --zero-superblock /dev/sdf

重启生效

5、增长模式

增加磁盘,为阵列扩容

选项: -G

将RAID5的热备磁盘增加到阵列的工作磁盘中

$ mdadm -G /dev/md2 -n 4

注意:-n 4 表示使用四块工作磁盘

再查看详细信息

$ mdadm -D /dev/md2

5、测试

如果你没有设置/etc/mdadm.conf文件,而且又忘了某磁盘属于那个阵列,则你能使用检测:(--examine)

$ mdadm -E /dev/sdb1

获得UUID后,也能这样激活阵列:

$ mdadm -Av /dev/md0 --uuid=8ba81579:e20fb0e8:e040da0e:f0b3fec8 /dev/sd*

能看到,只要磁盘没有损坏,这样装配是非常方便的:

5、添加及删除磁盘

mdadm能在Manage模式下,对运行中的阵列进行添加及删除磁盘。常用于标识failed磁盘,增加spare(冗余)磁盘,及替换磁盘等。

使用--fail指定坏磁盘,并--remove走:

$ mdadm /dev/md0 --fail /dev/sdc1 --remove /dev/sdc1

等待同步完成后,结果:

※需要注意的是,对于某些阵列模式,如RAID0等,是不能用--fail和--remove的。

增加一个新的阵列用磁盘

$ mdadm /dev/md0 --add /dev/sdc1

※需要注意的是,对于某些阵列模式,如RAID0等,是不能用--add的。

ref:http://www.toxingwang.com/linux-unix/linux-basic/1048.html

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注