web-dev-qa-db-fra.com

Comment faire évoluer RAID 1 après la mise à niveau du disque?

J'ai réussi à remplacer 2 disques de 320 Go par 2 x 1 To et resynchronisé /dev/md0 & /dev/md1.

"Sudo mdadm --grow /dev/md0 --size=max" entraîne l'erreur "mdadm: component size of /dev/md0 unchanged at 304686016K"

Comment puis-je développer /dev/md0 au maximum de 1 To?

La sortie de fdisk -l & cat /proc/mdstat suit

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000bccd9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   609374207   304686080   fd  Linux RAID autodetect
/dev/sda2       609374208   624998399     7812096   fd  Linux RAID autodetect

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000baab1

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048   609374207   304686080   fd  Linux RAID autodetect
/dev/sdb2       609374208   624998399     7812096   fd  Linux RAID autodetect

Disk /dev/md1: 7999 MB, 7999520768 bytes
2 heads, 4 sectors/track, 1953008 cylinders, total 15624064 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/md1 doesn't contain a valid partition table

Disk /dev/md0: 312.0 GB, 311998480384 bytes
2 heads, 4 sectors/track, 76171504 cylinders, total 609372032 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table


mick@mick-desktop:~/Desktop$ cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdb1[1] sda1[0]
      304686016 blocks [2/2] [UU]

md1 : active raid1 sdb2[1] sda2[0]
      7812032 blocks [2/2] [UU]

unused devices: <none>
3
ComfortablyDumb

mdadm ne peut pas développer le RAID au-delà des limites de partition. Vous devriez avoir élargi les partitions avant de resynchroniser chaque disque, puis la croissance aurait dû fonctionner. Pouvez-vous nous dire quel format de métadonnées vous utilisez? Dans une nouvelle installation, il devrait s'agir de 1.2 mais s'il est suffisamment ancien, il peut s'agir de 0.90. La croissance dans votre situation serait plus facile si c'était 1.2.

mdadm --detail /dev/md1
/dev/md1:
        Version : 1.2

Si c'est 1.2, il ne vous reste plus qu'à agrandir les partitions (sdb2 sda2). Assurez-vous que seule la fin de la partition se déplace, le début doit rester le même, sinon votre RAID sera brisé. Si vous n'êtes pas sûr, faites-le pour un seul disque, afin que l'autre puisse toujours sauvegarder votre disque au cas où quelque chose se passerait mal. Vous pouvez le faire avec fdisk, mais une meilleure alternative est parted ou même gparted si vous préférez une interface graphique.

Pour parted, la commande suivante devrait fonctionner (dangereux, écrit la table de partition sans demander):

parted /dev/sdb unit s rm 2 mkpart primary 609374208 100%

Vérifiez à nouveau la sortie de fdisk si elle semble correcte. redémarrez pour voir si tout fonctionne toujours (/proc/mdstat devrait montrer que le RAID est synchronisé UU); Faites de même pour /dev/sda puis, après un autre redémarrage, essayez de repousser.

S'il s'agit toujours de métadonnées 0.90, j'en profiterai pour créer un nouveau RAID 1 avec les métadonnées 1.2. Dans un CD live, mettez en panne un lecteur, créez un nouveau RAID sur ce disque avec un lecteur manquant, dd ou rsync -aAHSX les données, ajoutez l’autre lecteur, etc.

Pour grandir, je pense que vous devez toujours faire échouer un lecteur, agrandir la partition, puis l'ajouter de nouveau. 0.90 stocke les métadonnées à la fin de l'appareil. Elles ne seront pas trouvées si vous déplacez l'extrémité en agrandissant la partition.

4
frostschutz