网站搜索

扩展现有 RAID 阵列并删除 Raid 中的故障磁盘 - 第 7 部分


每个新手都会对数组这个词感到困惑。阵列只是磁盘的集合。换句话说,我们可以将数组称为集合或组。就像一组鸡蛋,里面有6个数字。同样,RAID 阵列包含多个磁盘,可能是 2、4、6、8、12、16 等。希望现在您知道什么是阵列。

在这里,我们将了解如何增长(扩展)现有阵列或 raid 组。例如,如果我们在阵列中使用 2 个磁盘来形成 raid 1 集,并且在某些情况下,如果我们需要该组中的更多空间,则可以使用 mdadm –grow 命令,只需将其中一个磁盘添加到现有阵列即可。增长(将磁盘添加到现有阵列)后,我们将了解如何从阵列中删除其中一个发生故障的磁盘。

假设其中一个磁盘有点弱,需要删除该磁盘,直到它出现故障为止,让它继续使用,但我们需要在它出现故障之前添加一个备用驱动器并增长镜像,因为我们需要保存数据。当弱磁盘发生故障时,我们可以将其从阵列中删除,这是我们将在本主题中看到的概念。

RAID 增长的特点

  1. 我们可以增加(扩展)任何 raid 集的大小。
  2. 我们可以在用新磁盘增长raid阵列后删除故障磁盘。
  3. 我们可以在不停机的情况下扩展 raid 阵列。

要求

  1. 要扩展 RAID 阵列,我们需要现有的 RAID 集(阵列)。
  2. 我们需要额外的磁盘来扩展阵列。
  3. 在这里,我使用 1 个磁盘来扩展现有阵列。

在了解阵列的增长和恢复之前,我们必须了解 RAID 级别和设置的基础知识。请点击以下链接了解这些设置。

  1. 了解基本 RAID 概念 – 第 1 部分
  2. 在 Linux 中创建软件 Raid 0 – 第 2 部分
我的服务器设置
Operating System 	:	CentOS 6.5 Final
IP Address	 	:	192.168.0.230
Hostname		:	grow.tecmintlocal.com
2 Existing Disks 	:	1 GB
1 Additional Disk	:	1 GB

在这里,我已经存在的 RAID 有 2 个磁盘,每个磁盘大小为 1GB,我们现在正在向现有的 raid 阵列添加一个大小为 1GB 的磁盘。

扩展现有 RAID 阵列

1. 在增长阵列之前,首先使用以下命令列出现有的 Raid 阵列。

mdadm --detail /dev/md0

注意:上面的输出显示我的Raid阵列中已经有两个raid1级别的磁盘。现在我们在现有阵列中再添加一个磁盘,

2. 现在让我们添加新磁盘“sdd”并使用“fdisk”命令创建一个分区。

fdisk /dev/sdd

请使用以下说明在 /dev/sdd 驱动器上创建分区。

  1. 按“n”创建新分区。
  2. 然后选择“P”作为主分区。
  3. 然后选择“1”作为第一个分区。
  4. 接下来按“p”打印创建的分区。
  5. 在这里,我们选择“fd”,因为我的类型是 RAID。
  6. 接下来按“p”打印定义的分区。
  7. 然后再次使用“p”打印我们所做的更改。
  8. 使用“w”来写入更改。

3. 创建新的 sdd 分区后,您可以使用以下命令验证它。

ls -l /dev/ | grep sd

4. 接下来,在添加到阵列之前检查新创建的磁盘是否存在任何现有 raid。

mdadm --examine /dev/sdd1

注意:上面的输出显示磁盘没有检测到超级块,这意味着我们可以继续向现有阵列添加新磁盘。

4. 要在现有阵列 md0 中添加新分区 /dev/sdd1,请使用以下命令。

mdadm --manage /dev/md0 --add /dev/sdd1

5. 添加新磁盘后,请使用以下命令检查阵列中添加的磁盘。

mdadm --detail /dev/md0

注意:在上面的输出中,您可以看到驱动器已作为备用驱动器添加。在这里,我们的阵列中已经有 2 个磁盘,但我们期望阵列中有 3 个设备,因此我们需要扩大阵列。

6. 要增长数组,我们必须使用以下命令。

mdadm --grow --raid-devices=3 /dev/md0

现在我们可以看到第三个磁盘(sdd1)已添加到阵列中,添加第三个磁盘后它将同步其他两个磁盘的数据。

mdadm --detail /dev/md0

注意:对于大尺寸磁盘,同步内容需要几个小时。这里我使用了1GB的虚拟磁盘,所以它在几秒钟内就完成了。

从阵列中删除磁盘

7. 将数据从另外两个磁盘同步到新磁盘“sdd1”后,这意味着所有三个磁盘现在都具有相同的内容。

正如我之前所说,让我们假设其中一个磁盘很弱,需要在出现故障之前将其移除。因此,现在假设磁盘“sdc1”很弱,需要从现有阵列中删除。

在删除磁盘之前,我们必须将该磁盘标记为故障磁盘,然后我们才能删除它。

mdadm --fail /dev/md0 /dev/sdc1
mdadm --detail /dev/md0

从上面的输出中,我们清楚地看到磁盘在底部被标记为有故障。即使它有故障,我们也可以看到 raid 设备是 3,失败的 1 并且状态已降级。

现在我们必须从阵列中删除有故障的驱动器,并用 2 个设备来增加阵列,这样 raid 设备将像以前一样设置为 2 个设备。

mdadm --remove /dev/md0 /dev/sdc1

8. 移除故障驱动器后,现在我们必须使用 2 磁盘来扩展 raid 阵列。

mdadm --grow --raid-devices=2 /dev/md0
mdadm --detail /dev/md0

从 about 输出中,您可以看到我们的阵列只有 2 个设备。如果需要再次增大阵列,请按照上述相同步骤操作。如果需要将驱动器添加为备用驱动器,请将其标记为备用驱动器,以便在磁盘发生故障时,它将自动激活并重建。

结论

在本文中,我们了解了如何增长现有的 raid 集以及如何在重新同步现有内容后从阵列中删除故障磁盘。所有这些步骤都可以在不停机的情况下完成。数据同步期间,系统用户、文件和应用程序在任何情况下都不会受到影响。

在接下来的文章中,我将向您展示如何管理 RAID,在此之前请继续关注更新,不要忘记添加您的评论。