Ich habe zwei Festplatten mit identischen Partitionstabellen ( sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb
), die mdadm
sich nicht zu einem RAID-1-Array zusammenführen lassen.
$ sudo mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: /dev/sdb1 not large enough to join array
Irgendwelche Ideen, was hier los ist?
Einzelheiten
$ 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)
Antwort1
Wahrscheinlich haben Sie das Array ursprünglich mit den gesamten Festplatten ohne Partitionen erstellt. Später haben Sie dann wahrscheinlich eine Partitionstabelle hinzugefügt, was die Sache durcheinander bringt. MADM erwartet eine ganze Festplatte.
Sie sollten das Metadatenformat berücksichtigen, das möglicherweise nicht angibt, ob die RAID-Metadaten für die gesamte Festplatte oder nur für eine Partition gelten sollen. Sie könnten das Array mit dem neueren Metadatenformat neu erstellen.
Sie könnten ein neues RAID-Array erstellen, bei dem das zweite Laufwerk das einzige aktive Volume ist und die gesamte Partition abzüglich einiger MB als Sicherheitsreserve umfasst, falls dieses Problem erneut auftritt. Kopieren Sie dann alle Daten vom alten Array auf das neue.
Löschen Sie abschließend das ursprüngliche Array und fügen Sie dann die alte Festplatte zum neuen Array hinzu.
Antwort2
Ich hatte auch dieses Problem. Der Grund war, dass ich einige Partitionen auf der Festplatte neu angeordnet hatte, ABER die (zu kleine) Größe der Partition entsprach der bereits gelöschten. Ich musste das erneute Lesen der aktuellen Festplattenpartitionstabelle mit der vergrößerten Partition auslösen.
$ sudo partprobe /dev/sdb # to re-read current partition table of the device