从软 RAID 中删除驱动器

从软 RAID 中删除驱动器

我有一台专用服务器,在 RAID 1 中具有 3 个 SSD 驱动器。输出cat /proc/mdstat

    Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md4 : active raid1 sdc4[2] sdb4[1] sda4[0]
      106738624 blocks [3/3] [UUU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md2 : active raid1 sdc2[2] sda2[0] sdb2[1]
      5497792 blocks [3/3] [UUU]
      
md1 : active raid1 sda1[0] sdc1[2] sdb1[1]
      259008 blocks [3/3] [UUU]
      
unused devices: <none>

¿如何从软raid中安全地删除驱动器不失去有数据吗?我想从阵列中删除一个驱动器,以便重新格式化它并独立使用它,同时保留最重要的数据镜像。

答案1

那里有一个三向镜像:每个驱动器都有所有数据的完整副本。假设您要删除的驱动器是/dev/sdc,并且您希望将其从所有三个阵列中删除,您需要对 、 和 执行/dev/sdc1以下/dev/sdc2步骤/dev/sdc4

步骤 1:从阵列中移除驱动器。您无法从阵列中删除活动设备,因此您需要首先将其标记为失败。

mdadm /dev/md1 --fail /dev/sdc1
mdadm /dev/md1 --remove /dev/sdc1

步骤 2:擦除 RAID 元数据,这样内核就不会尝试重新添加它:

wipefs -a /dev/sdc1

步骤 3:缩小阵列,使其成为双向镜像,而不是缺少驱动器的三向镜像:

mdadm --grow /dev/md1 --raid-devices=2

您可能需要在缩小写入意图位/dev/md4图之前将其删除(手册对此没有明确说明),在这种情况下,您可以在步骤 3 之前使用 执行此操作mdadm --grow /dev/md4 --bitmap=none,然后使用 重新将其放回去mdadm --grow /dev/md4 --bitmap=internal

答案2

男人 mdadm:

   -r, --remove
          remove listed devices.  They must  not  be  active.   i.e.  they
          should be failed or spare devices.

          As well as the name of a device file (e.g.  /dev/sda1) the words
          failed, detached and names like set-A can be given to  --remove.
          The  first  causes  all failed device to be removed.  The second
          causes any device which is no longer  connected  to  the  system
          (i.e  an  'open'  returns  ENXIO) to be removed.  The third will
          remove a set as describe below under --fail.

相关内容