@breakerthb
2016-07-14T02:45:04.000000Z
字数 4156
阅读 1532
Linux
Shell
等待模式,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
RAID-5
RAID-6
$mdadm [mode] [options]
将以前定义的某个阵列加入当前在用阵列。
Build a legacy array ,每个device 没有 superblocks
创建一个新的阵列,每个device 具有 superblocks
管理阵列,比如 add 或 remove
允许单独对阵列中的某个 device 做操作,比如抹去superblocks 或 终止在用的阵列。
监控 raid 1,4,5,6 和 multipath 的状态
改变raid 容量或 阵列中的 device 数目
-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参数的个数和
$ mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4
mdadm能非常方便的对阵列进行监视和管理的操作,也包括了停止和启动阵列等常用维护。
$ cat /proc/mdstat
选项:-D = --detail
能查看所有使用md驱动的阵列的状态:
$ mdadm --detail /dev/md0
选项: -S = --stop
$ mdadm -S /dev/md0
注意:停止后,原组成阵列的磁盘将处于空闲状态,一旦吾操作这些磁盘,将不能再重启激活原阵列。
之前stop的阵列可以被重新装配
$ mdadm -A /dev/md0 /dev/sd[bcd]1
启动指定的阵列,也可理解为将一个新阵列装配到系统中(--assemble):
若你已在上面设置了/etc/mdadm.conf文件,也可用-s查找:
$ mdadm -As /dev/md0
选项:
-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
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
重启生效
增加磁盘,为阵列扩容
选项: -G
将RAID5的热备磁盘增加到阵列的工作磁盘中
$ mdadm -G /dev/md2 -n 4
注意:-n 4 表示使用四块工作磁盘
再查看详细信息
$ mdadm -D /dev/md2
如果你没有设置/etc/mdadm.conf文件,而且又忘了某磁盘属于那个阵列,则你能使用检测:(--examine)
$ mdadm -E /dev/sdb1
获得UUID后,也能这样激活阵列:
$ mdadm -Av /dev/md0 --uuid=8ba81579:e20fb0e8:e040da0e:f0b3fec8 /dev/sd*
能看到,只要磁盘没有损坏,这样装配是非常方便的:
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