mdadm RAID:由于几何形状不良,卡在 0% 增长(收缩)重塑

mdadm RAID:由于几何形状不良,卡在 0% 增长(收缩)重塑

我有一个 Linux 软件 Raid5 阵列 (md1),包含 4 x 16TB + 2 x 8TB 硬盘。2 x 8TB 硬盘合并在一起 (Raid0 阵列;md0),作为 (第五个) 16TB 设备工作。这仅用于数据存储。由于需要移除 2 x 8TB,我决定将设备数量缩减为 4。因此我执行了以下步骤:

mdadm --grow /dev/md1 --array-size 46883175936  
mdadm --grow --raid-devices=4 /dev/md1 --backup-file=/home/backup 

细心的读者会注意到,缺少一个步骤,即在处理 mdadm 之前调整文件系统的大小。

最终的重塑过程现在停留在 0%:

md1 : active raid5 md0[5](S) sda1[0] sdb1[3] sde1[4] sdc1[2] 
      46883175936 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUUU] 
      [>....................]  reshape =  0.0% (1/15627725312) finish=2686015287.7min speed=0K/sec 
md0 : active raid0 sdd[0] sdf[1]
      15627788288 blocks super 1.2 512k chunks

不过,iostat确实表明这些硬盘上有一些操作:

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
nvme0n1         155.89       564.43       443.38  108549018   85268978
sda            2851.68     82114.67      2400.81 15791944384  461714155
sdb            2851.88     82115.09      2401.49 15792024433  461844519
sdc            2852.37     82143.80      2401.57 15797546322  461859251
sdd             866.01        13.34     41827.19    2565819 8044026920
sde            2852.42     82143.79      2402.46 15797544281  462031635
sdf             866.50        14.33     41835.12    2755774 8045552820

看起来mdadm --detail /dev/md1不错:

    /dev/md1:
           Version : 1.2
     Creation Time : Tue Jun  1 17:25:18 2021
        Raid Level : raid5
        Array Size : 46883175936 (43.66 TiB 48.01 TB)
     Used Dev Size : 15627725312 (14.55 TiB 16.00 TB)
      Raid Devices : 4
     Total Devices : 5
       Persistence : Superblock is persistent

       Update Time : Fri Oct 15 15:42:47 2021
             State : clean, reshaping 
    Active Devices : 4
   Working Devices : 5
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

    Reshape Status : 0% complete
     Delta Devices : -1, (5->4)

              Name : localhost.localdomain:1  (local to host localhost.localdomain)
              UUID : 5457f23e:faa7ee47:b2c62a37:f4c78526
            Events : 1064286

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       2       8       33        1      active sync   /dev/sdc1
       4       8       65        2      active sync   /dev/sde1
       3       8       17        3      active sync   /dev/sdb1

       5       9        0        -      spare   /dev/md0

尽管如此,dmesg还是直接提示了错误:

EXT4-fs (md1): bad geometry: block count 15627725312 exceeds size of device (11720793984 blocks)

我尝试取消重塑过程,但无济于事。我被困住了。由于 md1 上已经有重要数据,我非常想恢复 md1。我有一个备份,但这遗漏了一些最近的数据。有没有办法取消重塑进程?由于它仍然处于 (1/15627725312),我不希望丢失数据。或者还有其他建议来恢复 md1(带或不带 md0)?

我非常感谢您的每一条建议。如果您需要更多信息,请告诉我。

编辑:我可以运行以下命令:

mdadm --create /dev/md1 --level=5 --raid-devices=5 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sde1 /dev/md0 --assume-clean --readonly

这会在之前的状态中创建阵列。然而,文件系统似乎仍然损坏。由于没有硬盘故障,我假设数据应该仍然在那里,不会被覆盖。有什么方法可以恢复文件系统吗?我尝试了 testdisk,它可以检测到linux sys. data,但无法恢复这些文件。还有其他程序可以解决这个问题吗?

再次感谢您提出的任何建议!提前谢谢您!

相关内容