我已经创建了两个相同空分区的 RAID1 阵列。
现在它说:
$ tail -f /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdc1[1] sdb1[0]
3906885440 blocks super 1.2 [2/2] [UU]
[>....................] resync = 1.6% (66113792/3906885440) finish=3821.3min speed=16750K/sec
所以它计划同步 3 天。这正常吗?它实际上在做什么?用量子色动力学计算质子质量?它难道看不到驱动器是相同的吗?
更新
下面有人提出,在同步时,RAID1 只是盲目地将一个分区复制到另一个分区。如果这是真的,那么为什么不能这么说:放心,一切都已经相同,只需标记数据已复制即可。
就像快速格式化一样。
是否可以?
答案1
RAID 在文件系统级别以下运行。因此它不知道分区是“空的”。它只是将所有内容从一个分区复制到另一个分区。假设 3.9 tera 块数是每个分区的大小,也是最终阵列中的块数,那么您有两个分区,每个分区 2 TB……这意味着它正在复制 2 TB。2 TB / 3800 分钟大约为 9 MB/s。这不是特别快,但考虑到它可能是一个愚蠢的实现,读取一个,写入一个,读取一个,写入一个,等等……对于软件 RAID 来说,这并不太过分。它甚至可能正在执行读取后写入检查。
答案2
那么为什么不能说:放松,一切都已经相同了,
正如您在手册页中看到的(人 mdadm)
--assume-clean 告诉 mdadm 该阵列已存在并且已知是干净的。当尝试从重大故障中恢复时,它可以很有用,因为您可以确保除非您实际写入阵列,否则不会影响任何数据。如果您想避免初始重新同步,也可以在创建 RAID1 或 RAID10 时使用它,然而,这种做法虽然通常是安全的,但不建议。仅当您确实知道自己在做什么时才使用此选项。当新阵列中的设备在创建之前用零填充时,操作员知道该阵列实际上是干净的。如果是这种情况,例如在运行 badblocks 之后,可以使用此参数告诉 mdadm 操作员知道的事实。