MDADM RAID-1 は、同一のパーティション テーブルで「アレイを結合するには大きさが足りません」

MDADM RAID-1 は、同一のパーティション テーブルで「アレイを結合するには大きさが足りません」

sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb同一のパーティション テーブル ( )を持つ 2 つのディスクがあり、 mdadmRAID-1 アレイとして結合できません。

$ 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 を除いたパーティション全体にまたがる唯一のアクティブ ボリュームとして 2 番目のドライブを使用する新しい RAID アレイを作成できます。次に、古いアレイから新しいアレイにすべてのデータをコピーします。

最後に元のアレイを消去し、古いディスクを新しいアレイに追加します。

答え2

私もこの問題に直面しました。原因は、ディスク上のいくつかのパーティションを再配置したのですが、パーティションのサイズ(小さすぎる)がすでに削除されたものを反映していたことです。拡大されたパーティションで現在のディスク パーティション テーブルの再読み取りをトリガーする必要がありました。

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

関連情報