我想知道是否有任何程序来启动两个或多个独立数组的并行重建?
当一个人正在重建时,另一个人仍然处于地位:
md2 : active raid10 sdf5[4] sdd5[6] sdc5[5] sda5[7]
7804374912 blocks super 1.2 64K chunks 2 near-copies [4/3] [_UUU]
[=====>...............] recovery = 28.8% (1124301568/3902187456) finish=364.1min speed=127142K/sec
md4 : active raid5 sde7[3](R) sdc7[0] sda7[2] sdb7[1]
15623708416 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]
recovery=DELAYED
是否可以并行地启动另一个md数组恢复?
更新1:
感谢被接受的答案,我节省了大量的时间:
md2 : active raid10 sdb5[8](R) sdf5[4] sdd5[6] sdc5[5] sda5[7]
7804374912 blocks super 1.2 64K chunks 2 near-copies [4/4] [UUUU]
[===============>.....] recovery = 78.9% (3079104384/3902187456) finish=123.8min speed=110796K/sec
md4 : active raid5 sde7[3](R) sdc7[0] sda7[2] sdb7[1]
15623708416 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]
[>....................] recovery = 0.0% (3492100/7811854208) finish=708.0min speed=183794K/sec
但我仍然有非常有趣的问题,因为我的不同的审判行动,这将张贴在单独的答复。
发布于 2023-02-07 21:10:51
如果它们确实是分开的,它们应该并行运行(不同的物理驱动器)。
但是,当多个数组共享相同的驱动器(同一驱动器的不同分区)时,重新构建将被延迟,因为在这里并行运行不会加快速度,而是减慢它们的速度。
通过设置sync_force_parallel标志,您可以强制resyncs并行运行。
echo 1 | tee > /sys/block/md*/md/sync_force_parallel
发布于 2023-02-08 17:27:46
这个冷酷的回答是刻板的,我立刻得到了并行重建的启动,但是即使没有影响,第一次数组重建的速度突然下降了10次!
md2 : active raid10 sdb5[8](R) sdf5[4] sdd5[6] sdc5[5] sda5[7]
7804374912 blocks super 1.2 64K chunks 2 near-copies [4/4] [UUUU]
[===============>.....] recovery = 75.3% (2941270464/3902187456) finish=1723.0min speed=9294K/sec
md4 : active raid5 sde7[3](R) sdc7[0] sda7[2] sdb7[1]
15623708416 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]
[=>...................] recovery = 6.9% (542682052/7811854208) finish=692.7min speed=174889K/sec
我不明白为什么我有影响,直到我看到mdadm -D的数组细节,突然意识到它开始重建错误的驱动器。
尝试删除失败,清除超级块的更换和添加备用新驱动器几次,但它还是开始更换错误的驱动器。
然后,我发现可以查看每个驱动器状态下的md数组:
#cat /sys/block/md4/md/rd?/state
in_sync
in_sync,want_replacement
in_sync,want_replacement
就这样了!我在不同的位置尝试以不同的驱动器作为目标,因此我尝试将数据从不同的md驱动器迁移到不同的目标,然后取消操作,但是当我发出mdadm /dev/mdX时,替换/dev/sdX驱动器被标记为want_replacement
,系统没有忘记这一点,但是我忘记了:D。
因此,使用以下标记清除标志:
# echo -want_replacement > /sys/block/md4/md/rd1/state
# cat /sys/block/md4/md/rd?/state
in_sync
in_sync
in_sync,want_replacement
把所有东西都准备好,然后添加备用驱动器,现在开始用所有速度并行最大的速度替换正确的驱动器:
# mdadm /dev/md4 --add /dev/sde7
# mdadm -D /dev/md4
...
Number Major Minor RaidDevice State
0 8 39 0 active sync /dev/sdc7
1 8 23 1 active sync /dev/sdb7
2 8 7 2 active sync /dev/sda7
3 8 71 2 spare rebuilding /dev/sde7
# cat /proc/mdstat
md2 : active raid10 sdb5[8](R) sdf5[4] sdd5[6] sdc5[5] sda5[7]
7804374912 blocks super 1.2 64K chunks 2 near-copies [4/4] [UUUU]
[===============>.....] recovery = 78.9% (3079104384/3902187456) finish=123.8min speed=110796K/sec
md4 : active raid5 sde7[3](R) sdc7[0] sda7[2] sdb7[1]
15623708416 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]
[>....................] recovery = 0.0% (3492100/7811854208) finish=708.0min speed=183794K/sec
https://unix.stackexchange.com/questions/734715
复制相似问题