因此,我想知道,可以使用mdadm执行以下操作:
- 我从2个磁盘上的RAID0配置开始:
sda
和sdb
。 - 我想再添加一个磁盘到阵列,
sdc
并将所有数据sdb
移到该磁盘。 - 断开连接
sdb
。
现在,我仅看到一个选项-我停止阵列,使用或其他任何块复制工具复制sdb
到该阵列,然后重新启动阵列。sdc
dd
我想念什么吗?mdadm是否可以执行此操作?
因此,我想知道,可以使用mdadm执行以下操作:
sda
和sdb
。sdc
并将所有数据sdb
移到该磁盘。sdb
。现在,我仅看到一个选项-我停止阵列,使用或其他任何块复制工具复制sdb
到该阵列,然后重新启动阵列。sdc
dd
我想念什么吗?mdadm是否可以执行此操作?
Answers:
首先:对于那些仍然相信“ RAID0没有热备用”的用户。它可能有一个人工备用,由人工完成,他们了解RAID级别和mdadm。mdadm是软件RAID,因此它可以做很多有趣的事情。
感谢Zoredache的创意!
如果可以接受停机时间,则始终可以使用dd制作磁盘的块副本并重新组装阵列,mdadm会做的很好。
RAID0-> RAID4-> RAID0
因此,如果您不记得RAID4,这很简单。它具有奇偶校验块,但是与RAID5不同,它不分布在整个阵列中,而是驻留在一个磁盘上。重点在于,这很重要,这就是RAID5无法正常工作的原因。
您将需要:另外两个相同大小的磁盘,作为您要替换的磁盘。
sudo mdadm -C /dev/md0 -l 0 -n 2 /dev/sd[bc]
md0 : active raid0 sdc[1] sdb[0]
2096128 blocks super 1.2 512k chunks
我们创建了raid0数组,它看起来很漂亮。
sudo md5sum /dev/md0
b422ba644a3c83cdf28adfa94cb658f3 /dev/md0
这是我们的检查点-即使结果会有一点差异/dev/md0
-我们都失败了。
sudo mdadm /dev/md0 --grow --level=4
md0 : active raid4 sdc[1] sdb[0]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
因此,我们已经将阵列扩展为RAID4。我们还没有添加奇偶校验磁盘,所以让我们开始吧。增长将是即时的-无需重新计算或重新计算。
sudo mdadm /dev/md0 -a /dev/sdd
md0 : active raid4 sdd[3] sdc[1] sdb[0]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
[===>.................] recovery = 19.7% (207784/1048064) finish=0.2min speed=51946K/sec
我们已添加sdd
为奇偶校验磁盘。要记住这一点很重要-第一行中的磁盘顺序不会与第二行中的图片同步![UU_]
sdd
首先显示,但实际上是最后一个,不保存数据,而是保存奇偶校验。
sudo mdadm /dev/md0 -f /dev/sdb
md0 : active raid4 sdd[3] sdc[1] sdb[0](F)
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]
我们已使磁盘sdb出现故障,以在后续步骤中将其删除。
sudo mdadm --detail /dev/md0
State : clean, degraded
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 32 1 active sync /dev/sdc
3 8 48 2 active sync /dev/sdd
0 8 16 - faulty spare /dev/sdb
详细信息向我们展示了如何删除第一个磁盘,在这里我们可以看到阵列中磁盘的真实顺序。以奇偶校验跟踪磁盘很重要,返回RAID0时,我们不应将其留在阵列中。
sudo mdadm /dev/md0 -r /dev/sdb
md0 : active raid4 sdd[3] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]
sdb
被完全移除,可以被带走。
sudo mdadm /dev/md0 -a /dev/sde
md0 : active raid4 sde[4] sdd[3] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]
[==>..................] recovery = 14.8% (156648/1048064) finish=0.2min speed=52216K/sec
我们已经添加了替代我们的sdb磁盘。接下来,我们开始:现在使用奇偶校验恢复sdb的数据。Sweeeeet。
md0 : active raid4 sde[4] sdd[3] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/3] [UUU]
做完了 现在,我们是完全安全的-sdb中的所有数据都已恢复,现在我们必须删除sdd(请记住,它具有奇偶校验)。
sudo mdadm /dev/md0 -f /dev/sdd
md0 : active raid4 sde[4] sdd[3](F) sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
使sdd错误。
sudo mdadm /dev/md0 -r /dev/sdd
md0 : active raid4 sde[4] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
从我们的数组中删除了sdd。我们准备再次成为RAID0。
sudo mdadm /dev/md0 --grow --level=0 --backup-file=backup
md0 : active raid4 sde[4] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
[=>...................] reshape = 7.0% (73728/1048064) finish=1.5min speed=10532K/sec
Aaaaaaand砰!
md0 : active raid0 sde[4] sdc[1]
2096128 blocks super 1.2 512k chunks
做完了 让我们看一下md5校验和。
sudo md5sum /dev/md0
b422ba644a3c83cdf28adfa94cb658f3 /dev/md0
还有其他问题吗?因此RAID0可能有热备用。它被称为“用户”;)
据我所知,一旦设置了RAID0,就无法更改其中一个磁盘。您可以进行备份并切换磁盘并还原备份。我只需RAID5这3个磁盘即可。将来,您可以通过这种方式丢弃磁盘,然后仍然对其进行重建。