所以,我想知道,是否可以使用 mdadm 执行以下操作:
sda和sdb.sdc并将所有数据移动sdb到它。sdb。现在,我看到的只有一个选择-我停止阵列,复制sdb到sdc同dd或任何其他块拷贝工具,开始在阵列后面。
我错过了什么吗?可以用 mdadm 做到这一点吗?
man*_*que 21
首先:对于那些仍然相信“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
Run Code Online (Sandbox Code Playgroud)
我们已经创建了 raid0 数组,它看起来不错。
sudo md5sum /dev/md0
b422ba644a3c83cdf28adfa94cb658f3 /dev/md0
Run Code Online (Sandbox Code Playgroud)
这是我们的检查点——如果结果有一点不同/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_]
Run Code Online (Sandbox Code Playgroud)
因此,我们已将阵列扩展为 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
Run Code Online (Sandbox Code Playgroud)
我们已添加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]
Run Code Online (Sandbox Code Playgroud)
我们已经使我们的磁盘 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
Run Code Online (Sandbox Code Playgroud)
详细信息向我们展示了第一个磁盘的移除,在这里我们可以看到阵列中磁盘的真实顺序。使用奇偶校验跟踪磁盘很重要,我们不应该在返回 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]
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
我们添加了 sdb 磁盘的替代品。我们开始了:现在正在使用奇偶校验恢复sdb的数据。亲爱的。
md0 : active raid4 sde[4] sdd[3] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/3] [UUU]
Run Code Online (Sandbox Code Playgroud)
完毕。现在我们是完全安全的——所有来自 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_]
Run Code Online (Sandbox Code Playgroud)
使 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_]
Run Code Online (Sandbox Code Playgroud)
从我们的数组中删除了 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
Run Code Online (Sandbox Code Playgroud)
啊啊啊砰!
md0 : active raid0 sde[4] sdc[1]
2096128 blocks super 1.2 512k chunks
Run Code Online (Sandbox Code Playgroud)
完毕。让我们看看 md5 校验和。
sudo md5sum /dev/md0
b422ba644a3c83cdf28adfa94cb658f3 /dev/md0
Run Code Online (Sandbox Code Playgroud)
还有什么问题吗?所以 RAID0 可以有一个热备份。它被称为“用户”;)
| 归档时间: |
|
| 查看次数: |
15834 次 |
| 最近记录: |