我有一台专用服务器,在 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.