# watch -n 1 'cat /proc/mdstat' 当RAID5阵列中的全部磁盘都被替换成了新磁盘,此时可以将RAID阵列空间拉伸到最大: # mdadm --grow /dev/md0 --size=max 拉伸RAID5上的文件系统: # resize2fs /dev/md0
4.21 在RAID设备中共享热备盘: 共享热备盘应用挺广泛的,硬件级的RAID也提供了这样的功能,共享热备盘就是指多个RAID阵列可以共享一块热备盘,而不需要为每个阵列都分配热备盘,这样可以节省成本,又不会影响RAID的使用。 在企业级应用中,你的热备盘数量应该大于等于你阵列的数量,才能保证足够的可靠性。 首先应该将当前的RAID信息刷新到配置文件中: # mdadm --verbose --examine --scan >> /etc/mdadm.conf 选择一个共享热备盘组的名字(例如share1)。 在需要加入共享热备盘的阵列的阵列信息后加入如下参数: Spare-group=share1 添加了热备盘之后,就可以通过停用某块磁盘来测试热备盘是否成功设置: # mdadm /dev/md0 --fail /dev/sda1 --remove /dev/sda1 当停用并移除了/dev/sda1时,热备盘自动地加入到该阵列并自动地开始阵列的修复工作。 热备盘的设置也可以在RAID震了创建的时候设置: # mdadm -C /dev/md0 -l 5 -n 4 -x 1 -c 64 spare-group=share1 /dev/sd[a-e]1 其中,-x指定了热备盘的数量,spare-group=share1指定了加入到的共享热备盘组。
4.22 重命名RAID阵列: 当我们需要把本系统中的RAID阵列移植到另一个系统中,但是该系统中已经存在了同名的RAID阵列时,我们就需要先对本系统的RAID进行重命名。 以下我们将把/dev/md0重命名为/dev/md3。 首先我们要了解RAID由哪些磁盘组成: # mdadm -D /dev/md0 停止RAID阵列: # mdadm --stop /dev/md0 将该RAID阵列重新组装: # mdadm --assemble /dev/md3 --super-minor=0 --update=super-minor /dev/sda5 /dev/sdb5 此处的--super-minor=0是指定了原来的命名信息(参照/dev/md0),--update=super-minor则是指更新阵列中的超级快信息。
4.23 RAID的Write-intent位图: RAID的位图功能是用来记录哪个RAID的区域自从上一次同步之后发生了改变,RAID阵列会周期性地将这些信息写入到位图中。 当RAID阵列在做同步的时候发生了掉电,那么在重新启动阵列时将需要一次完全的数据同步,如果设置了Write-intent位图,则可以知道哪些是没有同步的,就不需要完全的数据同步,就可以极大地减少修复的时间。 如果将一个RAID阵列中的某块磁盘停用移除,再重新添加到该RAID阵列时,RAID阵列将重新为其做数据同步,但是如果该阵列设置了Write-intent位图,重新添加进去后则只需要简单的同步便实现了修复。
4.24 在RAID1开启Write-intent位图功能: 位图文件在创建它之前是没有存在的。Internal bitmap是存放在阵列的metadata中的,External bitmap是存放在磁盘上的位图文件,该文件必须保存在除自身RAID阵列以外的介质上。 在为RAID阵列开启Write-intent位图功能之前,首先要保证阵列已经同步了的且superblock超级块信息是完好的。 保证RAID阵列处于良好的状态: # mdadm --detail /dev/mdX |