重新创建 RAID4/RAID0 阵列

重新创建 RAID4/RAID0 阵列

首先,有一个 RAID0 阵列,我通过发出命令向其中添加了一个新磁盘

mdadm --add 

但是当我这样做时,由于电源问题,驱动器开始出现故障,并且从那时起阵列就没有启动。就在 mdadm 开始将 RAID0 移动到 RAID4 类型阵列之后。

我尝试过重新创建数组但我失败了,因为它现在看到以前未创建的分区。使用两个 1TB 驱动器在 /dev/md/0 阵列上仅创建了一个 2TB 大小的分区。

sdb         8:16   0 931,5G  0 disk  
└─md0       9:0    0 931,4G  0 raid4 
  ├─md0p1 259:0    0  27,3G  0 md    
  └─md0p2 259:1    0   421G  0 md    
sdc         8:32   0 931,5G  0 disk  
└─md0       9:0    0 931,4G  0 raid4 
  ├─md0p1 259:0    0  27,3G  0 md    
  └─md0p2 259:1    0   421G  0 md  

这也是 --examine 输出(就在阵列失败之后,但在我尝试重新创建阵列之前)

muszy@nas:~$ sudo mdadm --examine /dev/sdb
/dev/sdb:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x44
     Array UUID : 05b3504e:d335720b:a0d9c0ee:dd2e7a8f
           Name : nas:0  (local to host nas)
  Creation Time : Wed Oct  2 12:49:47 2019
     Raid Level : raid4
   Raid Devices : 4

 Avail Dev Size : 1953260544 (931.39 GiB 1000.07 GB)
     Array Size : 2929890816 (2794.16 GiB 3000.21 GB)
    Data Offset : 264192 sectors
     New Offset : 261120 sectors
   Super Offset : 8 sectors
          State : active
    Device UUID : f8ce2e05:671f6377:767d7d05:4a0f7727

  Reshape pos'n : 19646976 (18.74 GiB 20.12 GB)
  Delta Devices : 1 (3->4)

    Update Time : Fri Oct 11 12:28:20 2019
  Bad Block Log : 512 entries available at offset 8 sectors
       Checksum : 509e6f70 - correct
         Events : 43

     Chunk Size : 512K

   Device Role : Active device 1
   Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
muszy@nas:~$ sudo mdadm --examine /dev/sdc
/dev/sdc:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x46
     Array UUID : 05b3504e:d335720b:a0d9c0ee:dd2e7a8f
           Name : nas:0  (local to host nas)
  Creation Time : Wed Oct  2 12:49:47 2019
     Raid Level : raid4
   Raid Devices : 4

 Avail Dev Size : 1953260976 (931.39 GiB 1000.07 GB)
     Array Size : 2929890816 (2794.16 GiB 3000.21 GB)
  Used Dev Size : 1953260544 (931.39 GiB 1000.07 GB)
    Data Offset : 264192 sectors
     New Offset : 261120 sectors
   Super Offset : 8 sectors
Recovery Offset : 13097984 sectors
          State : clean
    Device UUID : 3fc0cbbf:068b4f7e:7359304e:b26ca865

  Reshape pos'n : 19646976 (18.74 GiB 20.12 GB)
  Delta Devices : 1 (3->4)

    Update Time : Fri Oct 11 12:28:09 2019
  Bad Block Log : 512 entries available at offset 264 sectors
       Checksum : 99d7e462 - correct
         Events : 41

     Chunk Size : 512K

   Device Role : Active device 2
   Array State : AAA. ('A' == active, '.' == missing, 'R' == replacing)
muszy@nas:~$ sudo mdadm --examine /dev/sdd
/dev/sdd:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x44
     Array UUID : 05b3504e:d335720b:a0d9c0ee:dd2e7a8f
           Name : nas:0  (local to host nas)
  Creation Time : Wed Oct  2 12:49:47 2019
     Raid Level : raid4
   Raid Devices : 4

 Avail Dev Size : 1953260544 (931.39 GiB 1000.07 GB)
     Array Size : 2929890816 (2794.16 GiB 3000.21 GB)
    Data Offset : 264192 sectors
     New Offset : 261120 sectors
   Super Offset : 8 sectors
          State : active
    Device UUID : 9e985730:eddba18f:6f636c8a:79ecdfc2

  Reshape pos'n : 19646976 (18.74 GiB 20.12 GB)
  Delta Devices : 1 (3->4)

    Update Time : Fri Oct 11 12:28:20 2019
  Bad Block Log : 512 entries available at offset 8 sectors
       Checksum : b45db8c4 - correct
         Events : 43

     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)

我是否有机会使用我提供的信息恢复阵列?

感谢frostschutz的帮助,我创建了覆盖层并成功启动了两个数组:

阵列 1(旧的“RAID0”):

parallel 'test -e /dev/loop{#} || mknod -m 660 /dev/looparray1{#} b 7 {#}' ::: /dev/sda /dev/sdb
parallel truncate -s1000G array1-overlay-{/} ::: /dev/sda /dev/sdb
parallel 'size=$(blockdev --getsize {}); loop=$(losetup -f --show -- array1-overlay-{/}); echo 0 $size snapshot {} $loop P 8 | dmsetup create array1{/}' ::: /dev/sda /dev/sdb
mdadm --create /dev/md/array1 --assume-clean --level=0 --chunk=512K --data-offset=264192s --raid-devices=2 /dev/mapper/array1sda /dev/mapper/array1sdb

Linux 看到“2TB 未知”分区

阵列 2(新阵列“RAID4”):

parallel 'test -e /dev/loop{#} || mknod -m 660 /dev/looparray2{#} b 7 {#}' ::: /dev/sda /dev/sdb /dev/sdd
parallel truncate -s1000G array2-overlay-{/} ::: /dev/sda /dev/sdb /dev/sdd
parallel 'size=$(blockdev --getsize {}); loop=$(losetup -f --show -- array2-overlay-{/}); echo 0 $size snapshot {} $loop P 8 | dmsetup create array2{/}' ::: /dev/sda /dev/sdb /dev/sdd
mdadm --create /dev/md/array2 --assume-clean --level=0 --chunk=512K --data-offset=261120s --raid-devices=3 /dev/mapper/array2sda /dev/mapper/array2sdb /dev/mapper/array2sdd

Linux 看到一个大小为 3TB 的 EXT4 分区,但现在它不可挂载,TestDisk 看到目录结构(标记为红色)。

当我试图将它们结合在一起时:

blockdev --getsize /dev/md/array1
3906521088

blockdev --getsize /dev/md/array2
5859790848

echo -e '0 3906521088 linear /dev/md/array1 0'\\n'3906521088 1953269760 linear /dev/md/array2 3906521088' | dmsetup create rec-array

它创建了一个没有任何用处的 3TB 驱动器。

相关内容