MDADM RAID-1은 동일한 파티션 테이블에서 "배열을 조인할 만큼 크지 않습니다"

MDADM RAID-1은 동일한 파티션 테이블에서 "배열을 조인할 만큼 크지 않습니다"

RAID-1 어레이로 병합을 거부 sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb하는 동일한 파티션 테이블( ) 이 있는 두 개의 디스크가 있습니다 .mdadm

$ sudo mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: /dev/sdb1 not large enough to join array

여기서 무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까?


세부

$ sudo mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Thu Mar 22 19:34:24 2018
        Raid Level : raid1
        Array Size : 976627712 (931.38 GiB 1000.07 GB)
     Used Dev Size : 976627712 (931.38 GiB 1000.07 GB)
      Raid Devices : 2
     Total Devices : 1
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Tue Aug 25 11:56:19 2020
             State : clean, degraded 
    Active Devices : 1
   Working Devices : 1
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

              Name : hostname:0  (local to host hostname)
              UUID : xxxxxxxx:xxxxxxxx:xxxxxxxx:xxxxxxxx
            Events : 459187

    Number   Major   Minor   RaidDevice State
       -       0        0        0      removed
       1       8        1        1      active sync   /dev/sda1
$ sudo parted /dev/sda unit s print
Model: XXX (scsi)
Disk /dev/sda: 1953525168s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start  End          Size         Type     File system  Flags
 1      2048s  1948268543s  1948266496s  primary               raid

$ sudo parted /dev/sdb unit s print
Model: XXX (scsi)
Disk /dev/sdb: 1953519616s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start  End          Size         Type     File system  Flags
 1      2048s  1948268543s  1948266496s  primary               raid
$ sudo mdadm -E /dev/sda1
/dev/sda1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : xxxxxxxx:xxxxxxxx:xxxxxxxx:xxxxxxxx
           Name : hostname:0  (local to host hostname)
  Creation Time : Thu Mar 22 19:34:24 2018
     Raid Level : raid1
   Raid Devices : 2

 Avail Dev Size : 1948004352 (928.88 GiB 997.38 GB)
     Array Size : 976627712 (931.38 GiB 1000.07 GB)
  Used Dev Size : 1953255424 (931.38 GiB 1000.07 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262056 sectors, after=18446744073704300544 sectors
          State : clean
    Device UUID : xxxxxxxx:xxxxxxxx:xxxxxxxx:xxxxxxxx

Internal Bitmap : 8 sectors from superblock
    Update Time : Tue Aug 25 12:39:03 2020
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : f47ecd0c - correct
         Events : 459193


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

$ sudo mdadm -E /dev/sdb1
/dev/sdb1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : xxxxxxxx:xxxxxxxx:xxxxxxxx:xxxxxxxx
           Name : hostname:0  (local to host hostname)
  Creation Time : Thu Mar 22 19:34:24 2018
     Raid Level : raid1
   Raid Devices : 2

 Avail Dev Size : 1948004352 (928.88 GiB 997.38 GB)
     Array Size : 976627712 (931.38 GiB 1000.07 GB)
  Used Dev Size : 1953255424 (931.38 GiB 1000.07 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262056 sectors, after=18446744073704300544 sectors
          State : clean
    Device UUID : xxxxxxxx:xxxxxxxx:xxxxxxxx:xxxxxxxx

Internal Bitmap : 8 sectors from superblock
    Update Time : Tue Aug 25 10:03:24 2020
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 4e58ad84 - correct
         Events : 81346


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

답변1

원래는 파티션 없이 전체 디스크로 어레이를 구축했을 것입니다. 그런 다음 나중에 파티션 테이블을 추가하면 상황이 엉망이 될 수 있습니다. MADM은 전체 디스크를 예상합니다.

RAID 메타데이터가 전체 디스크에 적용되어야 하는지 아니면 파티션에만 적용되어야 하는지 알 수 없는 메타데이터 형식을 고려해야 합니다. 최신 메타데이터 형식을 사용하여 어레이를 다시 구축할 수 있습니다.

이 문제가 다시 발생할 경우를 대비해 안전 여유로 몇 MB를 뺀 전체 파티션에 걸쳐 있는 유일한 활성 볼륨으로 두 번째 드라이브를 사용하여 새 RAID 어레이를 생성할 수 있습니다. 그런 다음 이전 배열의 모든 데이터를 새 배열로 복사합니다.

마지막으로 원래 어레이를 지운 다음 기존 디스크를 새 어레이에 추가합니다.

답변2

나는 또한이 문제에 직면했습니다. 원인은 디스크의 일부 파티션을 다시 정렬했지만 파티션의 (너무 작은) 크기가 이미 삭제된 파티션을 반영하고 있다는 것입니다. 확장된 파티션이 있는 현재 디스크 파티션 테이블을 다시 읽어야 했습니다.

$ sudo partprobe /dev/sdb # to re-read current partition table of the device

관련 정보