Linux RAID Mirror seulement la moitié de sa taille

0

Je viens d'acheter un couple de 4 To WD Reds et, pour une raison quelconque, lorsque j'essaie de les reproduire en miroir, le tableau résultant ne fait que 2198,9 Go.

Les deux disques sont formatés comme Autodetect RAID Linux (ID fd) avec fdisk, et la commande utilisée pour créer la matrice est la suivante:

mdadm --create /dev/md/mirror0 --level=mirror --raid-devices=2 /dev/sdc1 /dev/sdd1

fdisk -l sortie:

Disk /dev/sdb: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1  4294967295  2147483647+  ee  GPT
Partition 1 does not start on physical sector boundary.

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 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: 0x0002868b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   218292223   109145088   83  Linux
/dev/sda2       218294270   234440703     8073217    5  Extended
/dev/sda5       218294272   234440703     8073216   82  Linux swap / Solaris

Disk /dev/sdc: 4000.8 GB, 4000787030016 bytes
90 heads, 3 sectors/track, 28940878 cylinders, total 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xa36de11e

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048  4294967294  2147482623+  fd  Linux raid autodetect

Disk /dev/sdd: 4000.8 GB, 4000787030016 bytes
90 heads, 3 sectors/track, 28940878 cylinders, total 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x8708ffe6

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048  4294967294  2147482623+  fd  Linux raid autodetect

Disk /dev/md127: 2198.9 GB, 2198887792640 bytes
2 heads, 4 sectors/track, 536837840 cylinders, total 4294702720 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

Qu'est-ce que je fais mal?

MarkD
la source

Réponses:

0

Vos partitions n’ont en fait qu’une taille de 2T - le miroir créé par-dessus n’est donc que de 2T. Le total des secteurs est presque le double de ce qui est assigné à la partition.

Comparez les informations sur le périphérique complet:

Disk /dev/sdd: 4000.8 GB, 4000787030016 bytes
90 heads, 3 sectors/track, 28940878 cylinders, total 7814037168 sectors

Avec celle du raid:

Disk /dev/md127: 2198.9 GB, 2198887792640 bytes
2 heads, 4 sectors/track, 536837840 cylinders, total 4294702720 sectors

Les secteurs sont 512 octets, donc 512 * 7814037168 = 4000787030016 ou 4T. Vos partitions couvrent les secteurs 1-4294967295 = 512 * 4294967295 ou environ 2,2T.
Les "blocs" sont des blocs de 1 k, vous devriez donc voir une taille de partition d'environ 400 000 000 blocs (plus de 3,9 milliards de blocs en réalité) pour la taille de votre disque.

Le problème ici est que vous utilisez fdisk ; il ne prend pas en charge les partitions supérieures à 2T (ou, plus exactement, supérieures à 2 ^ 31 blocs). Pour créer des partitions plus grandes, utilisez plutôt Parted .

Si vous reconstruisez les partitions en utilisant l’ensemble du disque, puis que vous créez à nouveau votre miroir avec la même commande que celle que vous avez montrée ici, cela devrait aller.

Rubio
la source
fdisk / dev / sdc, créez une nouvelle partition principale (n ° 1), utilisez les valeurs par défaut pour le début et la fin, puis remplacez le type par ID fd. Je fais la même chose pour / dev / sdd.
MarkD
Comment pouvez-vous dire que la taille des partitions est incorrecte? Les valeurs finales me semblent équivalentes à 4 To.
MarkD
Vous avez parfaitement diagnostiqué mon problème. J'ai utilisé gdiskau lieu de partedle réparer, mais cela fonctionne maintenant. Je dois avoir utilisé un de ceux sur le disque 4 To (sdb) que j'ai eu il y a quelques années et oublié.
MarkD
0

À partir du résultat de /dev/sdb, nous pouvons supposer que vous avez une variante de non compatible avec GPT fdisk. En tant que tels, vos disques RAID sont partitionnés à l'aide de MBR (car ils sont visibles). Une partition MBR peut avoir un maximum de 4294967295 secteurs. Avec des secteurs de 512 octets, vous obtenez 2 To - 512 octets.

La solution est simple: utilisez GPT.

Daniel B
la source