了解 /proc/mdstat [U_] VS

了解 /proc/mdstat [U_] VS

我的服务器设置了 raid1。几天前,sda 完全崩溃,数据损坏。我更换了驱动器,克隆了分区表并添加了相应的阵列。在添加 sda3 (MD2) 时,由于 sdb 出现 I/O 错误,重新同步一直失败。我将可以保存的所有文件从 sdb3 复制到 sda3,重新配置了 raid 并用新驱动器替换了 sdb。我现在正在将 sdb 分区添加到阵列。我担心的是:

cat /proc/mdstat 
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md3 : active raid1 sda4[0]
      1822442815 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sda3[1]
      1073740664 blocks super 1.2 [2/1] [_U]

md1 : active raid1 sdb2[2] sda2[0]
      524276 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sdb1[2] sda1[3]
      33553336 blocks super 1.2 [2/2] [UU]

在同步之前,md0 和 md1 都显示为 [U_],为什么 md2 会显示为 [_U]?我担心添加 sdb3 时会丢失数据。我的想法是,第一个插槽 ([U_]) 被 mdadm 视为主插槽,而第二个插槽 ([_U]) 被视为次插槽,因此担心数据会被删除以匹配 sdb3。

请指教。

谢谢。

答案1

我不会担心。我怀疑这里发生的事情是 md3 是使用类似以下命令创建的

mdadm --create /dev/md3 -l 1 -n 2 /dev/sda4 /dev/sdb4

另一个是

mdadm --create /dev/md2 -l 1 -n 2 /dev/sdb3 /dev/sda3

请注意,您的另外两个阵列(md0 和 md1)也具有 sdb、sda 顺序。

如果你想变得超级偏执,那就把文件备份到外部驱动器上,但我怀疑当你终于有时间这样做的时候

mdadm /dev/md2 -a /dev/sdb3

由于新分区 (/dev/sdb3) 与现有分区 (/dev/sda3) 同步,因此恢复将顺利进行。列表中的位置并不重要。Linux 软件 RAID 会记住哪些是有效的以及最新的(未完全同步的)分区是什么。

相关内容