Que signifie «aligner» les partitions?

Réponses:

15

Aligner la partition signifie l'aligner pour qu'elle corresponde à la véritable structure de bloc sous-jacente.

Depuis longtemps, les disques durs utilisent des blocs de 512 octets. Parce que cela dure depuis longtemps, il est maintenant presque impossible de modifier la taille du bloc. Trop de logiciels devraient être corrigés.

Sur un SSD, la taille réelle du bloc peut être de 128 Ko. Sur une matrice RAID, il peut être de 64 Ko. Sur un lecteur au format avancé, il sera de 4 Ko.

Pour des raisons de compatibilité descendante, le lecteur continue de fonctionner avec des blocs de 512 octets. Mais pour des raisons de performances, votre système devrait vraiment connaître la taille réelle des blocs.

L'un des ajustements de performances les plus simples à effectuer consiste à aligner la partition du lecteur avec la taille réelle du bloc de sorte que lorsque votre système d'exploitation écrit 4 Ko ou 64 Ko ou 128 Ko, il écrit un bloc complet.

Si la partition n'était pas alignée, le résultat serait d'écrire 512 octets dans le premier bloc et 4K - 512 octets dans le deuxième bloc, forçant le disque / SSD / RAID à effectuer deux cycles de lecture-modification-écriture au lieu d' une écriture.

Zan Lynx
la source
Avez-vous une suggestion sur unix.stackexchange.com/questions/248939/…
ART
@AnkurTank: Non, la question semble bien couverte.
Zan Lynx
Merci de votre attention, il ne reste plus qu'à confirmer que les partitions sont alignées. Parce que pour moi, parted se plaint toujours que les partitions ne sont pas alignées. De plus, j'ai essayé d'utiliser un autre outil, par exemple gdisk, mais je ne suis pas en mesure de croiser compiler gdisk pour. J'ai donc pensé que si vous avez des suggestions sur la façon de vérifier cela vous aidera.
ART du
3

Les partitions sont des séquences de blocs , et par convention de longue date, un bloc fait 512 octets.

Ainsi, une partition peut commencer à n'importe quel multiple de 512 octets à l'intérieur d'un disque, "vu" comme une très longue chaîne d'octets.

Le matériel de disque sous-jacent, cependant, qui avait à l' origine la même taille de secteur de 512 octets, utilise maintenant une taille plus grande pour plus d'efficacité. Disons que c'est 4096 octets.

Pour des raisons de compatibilité, le firmware se trouvant entre l'OS et le matériel "parle toujours par secteurs". Vous demandez donc au premier secteur, et le matériel récupère le premier bloc (4096 octets), et le firmware extrait et délivre la tranche appropriée. Vous demandez le deuxième bloc et le bloc est probablement récupéré du cache.

Jusqu'à présent, l'inadéquation de la taille du secteur n'a aucun inconvénient.

Mais le système d'exploitation utilise également des blocs (généralement appelés clusters ) pour plus d'efficacité et les alignera sur la partition. Un cluster à 4 secteurs sera donc composé des secteurs 5, 6, 7 et 8.

Lorsque le système d'exploitation demande le cluster de système de fichiers # 2, le micrologiciel est invité à indiquer les secteurs logiques 5, 6, 7 et 8. S'ils se trouvent tous dans le même bloc de disque , le disque doit effectuer UNE lecture.

Mais si la partition commence au "mauvais" secteur, le premier cluster du système de fichiers finira par exemple par se simplifier, aux secteurs 2, 3, 4 et 5. Et ils pourraient alors être à moitié dans le premier bloc de disque (1 -2-3-4), la moitié de la seconde (5-6-7-8).

Vous avez maintenant besoin d' une lecture supplémentaire . Pour des rapports OS / disque de 1: 1, cela revient à doubler les lectures. Si le rapport OS / disque est de 2: 1, un cluster est composé de deux blocs de disques matériels, vous aurez besoin de 2 + 1 = 3 lectures, une pénalité de 50%:

OS   |--- cluster  12 ---|--- cluster  13 ---|--- cluster  14...
     |                   |                   |
HDD  --|----|----|----|-a--|--b-|-c--|-d--|-e--|----|---        BAD
     |                   |                   |
HDD  |----|----|----|----|-a--|--b-|-c--|-d--|----|----|---     GOOD

Ci-dessus, un cluster est composé de 4 blocs matériels (ratio 4: 1) de 2 secteurs chacun. L'alignement sur des secteurs "pairs" signifie que pour lire un cluster, ces 8 lectures de secteur se traduisent par 4 lectures de bloc. L'alignement sur les secteurs impairs signifie que les mêmes lectures de 8 secteurs nécessitent 4 + 1 = 5 lectures de bloc, une pénalité de performance de 25% (vous ajoutez une lecture tous les quatre).

Si vous avez un disque mal aligné avec un rapport de 4: 1, l'aligner le rendra 20% plus rapide (vous économisez une lecture tous les 5).

Pour rendre une partition "alignée", vous pouvez soit déplacer / définir son décalage depuis le début du disque vers le multiple approprié de 512b-secteurs, soit (selon l'outil) vous pouvez insérer une petite partition au début du disque, avec une taille telle que la prochaine partition démarre exactement sur une limite de secteur de disque. Dans ce deuxième cas, alors qu'en théorie vous avez besoin de la plupart des secteurs N-1, c'est-à-dire très peu de kilo-octets, en pratique, vous devrez probablement gaspiller une centaine de kilo-octets, peut-être des mégaoctets entiers, afin de tirer le maximum de performances de votre disque dur de plusieurs gigaoctets.

(Vous pouvez probablement récupérer cet espace, et bien plus encore, en choisissant correctement la taille du cluster du système d'exploitation ).

LSerni
la source
1
Les lectures ne sont pas si mauvaises, oui, vous devez lire un peu de données supplémentaires, mais la lecture de trois blocs contigus ne coûte pas beaucoup plus de temps que la lecture de deux. Le vrai problème réside dans les écritures. Pour écrire une section plus petite que la taille de bloc sous-jacente, il faut lire les données, attendre que le disque effectue une rotation complète puis la réécrire.
plugwash
1
De plus, il n'est pas nécessaire de créer des partitions supplémentaires, il n'y a pas de règle selon laquelle tout l'espace sur un disque doit être partitionné.
plugwash
2

Les lecteurs sont presque toujours divisés en secteurs logiques de 512 octets, d'autres tailles sont possibles mais sont rarement utilisées en raison de problèmes de compatibilité. Avec les disques durs plus anciens, il s'agissait de secteurs distincts qui pouvaient être écrits individuellement.

Jusqu'au milieu des années 2000, les cloisons étaient traditionnellement alignées sur des bordures "cylindriques". Pour des raisons historiques, un "cylindre" comprenait normalement 63 secteurs. Le secteur 0 contient le secteur de démarrage et la table de parition. Les secteurs ultérieurs du cylindre 0 contenaient parfois des informations supplémentaires pour le chargeur de démarrage. La première partition a généralement commencé au début du cylindre 1.

La plupart des systèmes de fichiers regroupent les secteurs en blocs plus grands (parfois appelés "clusters"). Ceux-ci ont généralement une taille de 4 Ko.

À un moment donné, les fournisseurs de disques ont été reliés, il serait plus efficace s'ils utilisaient également des secteurs physiques 4K, mais pour des raisons de compatibilité, ils ont maintenu la taille du secteur logique à 512 octets. Si l'hôte lit ou écrit tout le secteur physique à la fois, les choses vont vite. Si la partie est lue, les choses sont encore assez rapides car le lecteur peut simplement éliminer les données indésirables. Cependant, si l'hôte n'écrit qu'une partie d'un secteur physique, le lecteur doit lire le secteur physique, combiner les données lues avec les données de l'hôte, puis réécrire le secteur modifié. Cela signifie attendre que le disque tourne en position deux fois plutôt qu'une fois.

Cela fonctionne bien si les clusters 4K du système de fichiers sont alignés sur les secteurs physiques 4K du lecteur. Malheureusement, la façon traditionnelle de partitionner les disques signifie que la première partition est fondamentalement garantie pour être désalignée et que les partitions ultérieures n'avaient qu'une chance sur 8 d'être alignées. Les fournisseurs de disques au format avancé ont donc dû se précipiter sur des outils pour aider les gens à réaligner leurs partitions.

Des considérations similaires peuvent s'appliquer aux baies RAID et aux SSD. Alors qu'une bande de raid est probablement beaucoup plus grande qu'un cluster de système de fichiers unique, certains systèmes de fichiers peuvent avoir des régions ou similaires alignées sur la puissance de deux limites.

La pratique courante actuelle consiste à aligner les paritions sur les limites de 1 Mo, ce qui représente une puissance suffisamment élevée de deux pour être un multiple de toutes les tailles de bloc courantes.

plugwash
la source
0

Je ne sais pas si cela est utile, mais j'ai cru comprendre que l'alignement des partitions consiste à aligner une partition donnée avec des unités de bande RAID sous-jacentes.

Apparemment, les performances peuvent être nulles lorsque vous utilisez un RAID matériel ou logiciel; des problèmes peuvent survenir si l'emplacement de départ de la partition n'est pas aligné avec une limite d'unité de bande dans la partition de disque créée sur le RAID.

En fonction de l'affacturage pour la création de clusters de volumes, un cluster de volumes peut être créé au-dessus d'une limite d'unité de bande au lieu d'être à côté de la limite d'unité de bande. Ce comportement peut provoquer une partition mal alignée .

Je suis peut-être loin et cela n'a rien à voir avec le RAID;)

LuxuryMode
la source