Tengo dos discos con tablas de particiones idénticas ( sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb
) que mdadm
se niegan a fusionarse como una matriz RAID-1.
$ sudo mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: /dev/sdb1 not large enough to join array
¿Alguna idea sobre lo que está pasando aquí?
Detalles
$ 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)
Respuesta1
Probablemente originalmente construyó la matriz con todos los discos, sin particiones. Luego probablemente agregaste una tabla de particiones, lo que estropea las cosas. MADM espera un disco completo.
Debe considerar el formato de los metadatos, que puede no indicar si se supone que los metadatos del raid se aplican a todo el disco o solo a la partición. Podría reconstruir la matriz utilizando el formato de metadatos más nuevo.
Puede crear una nueva matriz RAID con la segunda unidad como único volumen activo que abarque toda la partición menos unos pocos MB como margen de seguridad en caso de que este problema vuelva a ocurrir. Luego copie todos los datos de la matriz anterior a la nueva.
Finalmente limpie la matriz original y luego agregue el disco antiguo a la nueva matriz.
Respuesta2
También me enfrenté a este problema. El culpable fue que reorganicé algunas particiones en el disco, PERO el tamaño (demasiado pequeño) de la partición reflejaba la que ya estaba eliminada. Tuve que activar la relectura de la tabla de particiones del disco actual con la partición ampliada.
$ sudo partprobe /dev/sdb # to re-read current partition table of the device