用 mdadm 实现Linux软队列

什么是mdadm

      mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具。

  •       创建 Raid 5 软队列
  •       创建5个磁盘分区(hda8,hda9,hda10,hda11,hda12),并更改 ID 号为 fd ,保存退出。
  •       不要格式化这四个分区。
  •       应用分区 #partprobe /dev/hda
  •       创建三个磁盘的Raid5
  •       #mdadm –Cv  /dev/md0  -l5 –n3 /dev/hda8  /dev/hda9  /dev/hda10  -X1 /dev/hda11
  •                     创建            Raid级别  分区数量                                           热备
  •       格式化分区
  •       #mkfs.ext3  /dev/md0
  •       挂载使用
  •  
  • 软Raid 的维护
  • 查看Raid运行状态
  • #mdadm  --detail  /dev/md0
  • [root@rhel1 mnt]# mdadm --detail /dev/md0
  • /dev/md0:
  •         Version : 0.90
  •   Creation Time : Thu Sep 16 13:02:34 2010
  •      Raid Level : raid5
  •      Array Size : 112256 (109.64 MiB 114.95 MB)
  •   Used Dev Size : 56128 (54.82 MiB 57.48 MB)
  •    Raid Devices : 3
  •   Total Devices : 5
  • Preferred Minor : 0
  •     Persistence : Superblock is persistent
  •     Update Time : Thu Sep 16 13:39:33 2010
  •           State : clean
  • Active Devices : 3
  • Working Devices : 4
  • Failed Devices : 1
  •   Spare Devices : 1
  •          Layout : left-symmetric
  •      Chunk Size : 64K
  •            UUID : 6a436bf5:c60469fc:e8b3f3e4:49f306e5
  •          Events : 0.20
  •     Number   Major   Minor   RaidDevice State
  •        0       3        8        0      active sync   /dev/hda8
  •        1       3        9        1      active sync   /dev/hda9
  •        2       3       11        2      active sync   /dev/hda11
  •        3       3       10        -      spare   /dev/hda10
  •        4       3       12        -      faulty spare   /dev/hda12
  • 我们可以查看RAID的版本、创建的时间、RAID级别、阵列容量、可用空间、设备数量、超级块、更新时间、各个设备的状态、RAID算法以及块大小等信息。
  • 我们还可以用下面的方式实时查看:
  • watch命令每个30秒刷新一下查看的进度:
  • # watch -n 30 'cat /proc/mdstat'
  • 配置mdadm.conf(
  • #mdadm –-detail –-scan >/etc/mdadm.conf
  •  
  • 启动停止RAID
  • 使用--stop或-S命令选项可以停止运行的阵列(注意: 停止前必须先umount):
  • # umount /mnt/md0
  • # mdadm -S /dev/md0  (或mdadm --stop /dev/md0)
  • mdadm: stopped /dev/md0
  • 重新启动可以使用(必须先配置好mdadm.conf):
  • # mdadm -As /dev/md0
  • 如果未配置mdadm.conf  就要指明分区
  • #mdadm –A /dev/md0  /dev/hda{8,9,10,11,12}
  • 如果具体不知道某个设备或分区属于哪个阵列
  • 可使用如下方式来测试查找:
  • #mdadm –E /dev/hda12
  •  
  • 添加或删除设备/分区
  • 常用于标识failed 磁盘,增加spare磁盘,以及替换磁盘等。
  • 标识坏磁盘--fail ,并移走—remove
  • #mdadm /dev/md0 –-fail /dev/hda8  --remove /dev/hda8
  • 注意Raid 0 是不能这样做的。
  •  
  • 增加一个新的陈列磁盘
  • #mdadm  /dev/md0 –add  /dev/hda8
  •  
  • 实时监控
  • 在monitor状态下:
  • nohup mdadm –monitor  --mail=root  --delay=100  /dev/md0 &
  • 上述定义:每100秒监控一次,当陈列出现错误时,会发送邮件给root用户。
  • 由于monitor 启动后是不会自动退出的,所以需要加上nohup 和&,使之持续在后台运行。
  • 在Follow模式下,是允许共享冗余磁盘的。
  • 例如,我们有两个阵列:/dev/md0、/dev/md1,而/dev/md0里面有一个spare磁盘。当我们在/etc/mdadm.conf中定义类似:
  • DEVICE /dev/sd*
  • ARRAY /dev/md0 level=raid1 num-devices=3 spare-group=database
  • UUID=410a299e:4cdd535e:169d3df4:48b7144a
  • ARRAY /dev/md1 level=raid1 num-device=2 spare-group=database
  • UUID=59b6e564:739d4d28:ae0aa308:71147fe7
  • 也就是定义一个spare-group组。并运行上面的monitor模式命令。这样,当组成/dev/md1的其中一个磁盘出现问题的时候,mdadm会自动从/dev/md0上移走spare磁盘,并加入/dev/md1中,而不需要人工干预 。(请注意,能实现这样工作的,只有在该阵列支持冗余的情况下才能实现,如raid1、raid5等。而对于raid0等阵列模式,是无效的)
  • 增加spare磁盘
  • 可以通过在创建的时候指定冗余磁盘:
  • mdadm -Cv /dev/md0 -l1 -n2 -x1 /dev/sd{b,c,d}1
  • -x(--spare-devices)参数用于指定冗余磁盘的数量
  • 另外,对于full的阵列(例如已经有2个磁盘的RAID1),则直接使用- -add参数,mdadm会自动把冗余的磁盘作为spare disk。
  • 删除阵列
  • mdadm -S /dev/md0
  • rm /dev/md0
  • 修改/etc/mdadm.conf、/etc/fstab等配置文件,把相关的地方去掉;
  • 最后,用fdisk对磁盘进行重新分区即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值