3 votes

Mdadm ne peut pas créer une matrice de plus de 10TB

  • J'ai un serveur avec six disques de 4 To qui fonctionne sous Ubuntu 14.04 LTS.
  • L'un des disques est utilisé pour le système d'exploitation.
  • Je voulais utiliser les 5 autres disques pour obtenir une capacité de stockage aussi proche que possible de 20 To.
  • C'est un projet d'analyse de données à court terme, donc RAID 0 est parfait.
  • J'ai utilisé fdisk pour créer une partition unique de ~4TB sur chacun des 5 disques.

Après avoir exécuté mdadm pour créer une matrice RAID 0, le résultat était juste un périphérique de 10 To sur /dev/md0. La moitié de la taille à laquelle je m'attendais !

Voici la commande que j'ai utilisée pour créer le tableau :

mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=5 /dev/sd[bcdef]1

Vous trouverez ci-dessous un fdisk -l sortie. Une idée sur la raison pour laquelle je ne peux pas obtenir plus d'espace des disques ?

Disk /dev/sda: 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 / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  4294967295  2147483647+  ee  GPT

Disk /dev/sdb: 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 / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xda4f04e2

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048  4294967294  2147482623+  83  Linux

Disk /dev/sdc: 4000.8 GB, 4000787030016 bytes
25 heads, 3 sectors/track, 104187162 cylinders, total 7814037168 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: 0xc9e57616

Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048  4294967294  2147482623+  83  Linux

Disk /dev/sdd: 4000.8 GB, 4000787030016 bytes
25 heads, 3 sectors/track, 104187162 cylinders, total 7814037168 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: 0x53bed1ab

Device Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048  4294967294  2147482623+  83  Linux

Disk /dev/sde: 4000.8 GB, 4000787030016 bytes
25 heads, 3 sectors/track, 104187162 cylinders, total 7814037168 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: 0xbc5c1069

Device Boot      Start         End      Blocks   Id  System
/dev/sde1            2048  4294967294  2147482623+  83  Linux

Disk /dev/sdf: 4000.8 GB, 4000787030016 bytes
25 heads, 3 sectors/track, 104187162 cylinders, total 7814037168 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: 0x4801480c

Device Boot      Start         End      Blocks   Id  System
/dev/sdf1            2048  4294967294  2147482623+  83  Linux

Disk /dev/md0: 10995.1 GB, 10995108413440 bytes
2 heads, 4 sectors/track, -1610614656 cylinders, total 21474821120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 2621440 bytes
Disk identifier: 0x00000000

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

2 votes

Ai-je raison de penser que chacune des /dev/sdX1 n'est que la moitié de chaque disque (environ 4,3Gsecteurs sur 7,8Gsecteurs) ? Cela expliquerait certainement pourquoi il vous manque autant d'espace.

0 votes

@MadHatter Les partitions ont été créées pour utiliser toutes les ressources de chaque disque. Les premiers et derniers secteurs par défaut ont été utilisés dans fdisk et il s'agissait de nouveaux disques non partitionnés.

0 votes

Je ne le conteste pas. Mais la preuve est faite que les partitions ne vont nulle part près du sommet de chaque disque ; en fait, il est intéressant de noter qu'elles semblent se terminer à 2^41 octets, ce qui représente environ 55% de votre disque total. La preuve est juste devant vous : comparez le secteur de fin de chaque partition avec le nombre total de secteurs sur chaque disque.

7voto

MadHatter Points 77602

fdisk ne créera pas une partition plus grande que 2TB (2^41 bytes). Cela semble être assez bien documenté ; un exemple parmi tant d'autres peut être lu ici . 5*2TB=10TB, ce qui est ce que vous obtenez.

Vous devrez utiliser GNU parted de mettre une table de partition GPT sur chaque disque ; vous pourrez alors faire une /dev/sdX1 qui s'étend jusqu'au sommet du disque.

Ou, comme le suggère jski, vous pouvez utiliser les périphériques bruts au lieu des partitions. J'opterais pour l'approche par partition, cependant, notamment parce que vous pouvez toujours réduire la partition en légèrement sous le dessus du disque au cas où vous auriez besoin de remplacer un disque par un autre légèrement plus petit (oui, je sais que c'est une considération inutile en RAID-0, mais je pense que c'est une bonne habitude à prendre).

4voto

jski Points 911

Enlevez le 1 de la fin de votre commande :

mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=5 /dev/sd[bcdef]

Cela devrait fonctionner correctement. Je suppose que vous voulez utiliser tout l'espace disponible sur les 5 disques du RAID.

0 votes

Quel bazar, ça a vraiment marché - malgré la documentation officielle qui dit d'utiliser les partitions plutôt que les disques directement.

2 votes

"fonctionne bien". Oui, jusqu'à ce que vous partitionniez accidentellement le disque avec un outil qui ne reconnaît pas le MD-on-raw-device. En dehors de cela, la réponse de MadHatters décrit réellement ce qui se passe au lieu de dire simplement "faites ceci à la place parce que cela fonctionne [pour une raison quelconque]".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X