在 linux 中使用 mdadm 管理 raid 设备 - 第9部分
在本教程中,我们会再介绍此工具提供的功能,这样当你需要它,就可以派上用场。
在本系列的最后一篇文章中,我们将使用一个简单的 raid 1(镜像)阵列,它由两个 8gb 的磁盘(/dev/sdb 和 /dev/sdc)和一个备用设备(/dev/sdd)来演示,但在此使用的方法也适用于其他类型的配置。也就是说,放心去用吧,把这个页面添加到浏览器的书签,然后让我们开始吧。
<a target="_blank"></a>
幸运的是,mdadm 有一个内建的 <code>--help</code> 参数来对每个主要的选项提供说明文档。
因此,让我们开始输入:
<code># mdadm --manage --help</code>
就会使我们看到 <code>mdadm --manage</code> 能够执行哪些任务:
使用 mdadm 工具来管理 raid
正如我们在上面的图片看到,管理一个 raid 阵列可以在任意时间执行以下任务:
(重新)将设备添加到阵列中
把设备标记为故障
从阵列中删除故障设备
使用备用设备更换故障设备
先创建部分阵列
停止阵列
标记阵列为 ro(只读)或 rw(读写)
需要注意的是,如果用户忽略 <code>--manage</code> 选项,mdadm 默认使用管理模式。请记住这一点,以避免出现最坏的情况。
上图中的高亮文本显示了管理 raid 的基本语法:
<code># mdadm --manage raid options devices</code>
让我们来演示几个例子。
你通常会添加新设备来更换故障的设备,或者使用空闲的分区以便在出现故障时能及时替换:
<code># mdadm --manage /dev/md0 --add /dev/sdd1</code>
添加设备到 raid 阵列
在从逻辑阵列中删除该设备前,这是强制性的步骤,然后才能从机器中取出它 - 注意顺序(如果弄错了这些步骤,最终可能会造成实际设备的损害):
<code># mdadm --manage /dev/md0 --fail /dev/sdb1</code>
恢复和重建 raid 数据
一旦设备已被手动标记为故障,你就可以安全地从阵列中删除它:
<code># mdadm --manage /dev/md0 --remove /dev/sdb1</code>
到现在为止,我们有一个工作的 raid 1 阵列,它包含了2个活动的设备:/dev/sdc1 和 /dev/sdd1。现在让我们试试重新添加 /dev/sdb1 到/dev/md0:
<code># mdadm --manage /dev/md0 --re-add /dev/sdb1</code>
我们会碰到一个错误:
<code># mdadm: --re-add for /dev/sdb1 to /dev/md0 is not possible</code>
因为阵列中的磁盘已经达到了最大的数量。因此,我们有两个选择:a)将 /dev/sdb1 添加为备用的,如例1;或 b)从阵列中删除 /dev/sdd1 然后重新添加 /dev/sdb1。
我们选择选项 b),先停止阵列然后重新启动:
<code># mdadm --stop /dev/md0</code>
<code># mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1</code>
如果上面的命令不能成功添加 /dev/sdb1 到阵列中,使用例1中的命令来完成。
mdadm 能检测到新添加的设备并将其作为备用设备,当添加完成后它会开始重建数据,它也被认为是 raid 中的活动设备:
重建 raid 的状态
在阵列中使用备用磁盘更换磁盘很简单:
<code># mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1</code>
更换 raid 设备
这会导致 <code>--replace</code> 指定的设备被标记为故障,而 <code>--with</code>指定的设备添加到 raid 中来替代它:
检查 raid 重建状态
创建阵列后,你必须在它上面创建一个文件系统并将其挂载到一个目录下才能使用它。你可能不知道,raid 也可以被设置为 ro,使其只读;或者设置为 rw,就可以同时写入了。
要标记该设备为 ro,首先需要将其卸载:
<code># umount /mnt/raid1</code>
<code># mdadm --manage /dev/md0 --readonly</code>
<code># mount /mnt/raid1</code>
<code># touch /mnt/raid1/test1</code>
在 raid 阵列上设置权限
要配置阵列允许写入操作需要使用 <code>--readwrite</code> 选项。请注意,在设置 rw 标志前,你需要先卸载设备并停止它:
<code># mdadm --manage /dev/md0 --stop</code>
<code># mdadm --assemble /dev/md0 /dev/sdc1 /dev/sdd1</code>
<code># mdadm --manage /dev/md0 --readwrite</code>
<code># touch /mnt/raid1/test2</code>
配置 raid 允许读写操作
在本系列中,我们已经解释了如何建立一个在企业环境中使用的软件 raid 阵列。如果你按照这些文章所提供的例子进行配置,在 linux 中你会充分领会到软件 raid 的价值。
本文来自云栖社区合作伙伴“linux中国”,原文发布日期:2015-10-24