RAID4/RAID0 배열 다시 만들기

RAID4/RAID0 배열 다시 만들기

먼저 다음 명령을 실행하여 새 디스크를 추가한 RAID0 어레이가 있었습니다.

mdadm --add 

하지만 이 작업을 수행했을 때 전원 문제로 인해 드라이브가 실패하기 시작했고 그 이후로 어레이가 부팅되지 않았습니다. mdadm이 RAID0을 RAID4 유형 어레이로 이동하기 시작한 직후입니다.

나는 전에 시도했다배열 다시 만들기하지만 이전에 생성되지 않은 파티션이 이제 표시되기 때문에 실패했습니다. 2개의 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 드라이브를 생성합니다.

관련 정보