web-dev-qa-db-fra.com

Quel est l'intérêt des disques durs indiquant la taille de leur secteur physique?

J'ai un disque SSD qui peut être configuré pour signaler la taille de son secteur physique à un système d'exploitation de deux manières différentes:

Option 1: Logique = 512 octets, physique = 512 octets

Option 2: Logique = 512 octets, physique = 4096 octets (4K)

Quel avantage un système d'exploitation gagne-t-il à connaître la taille du secteur physique 4K, en prenant en compte:

  • Le système d'exploitation doit communiquer avec le lecteur dans les secteurs de 512 octets indépendamment

  • Tous les systèmes d’exploitation modernes s’alignent sur 4K et utilisent 4K ou des multiples de 4K I/O indépendamment

Le réglage semble inutile, car les systèmes d'exploitation modernes sont déjà optimisés pour les lecteurs du secteur 4K. Les systèmes d’exploitation modernes n’ont pas besoin de "demander" à un lecteur si ses secteurs sont 512b ou 4K, car le système d’exploitation fait tout par défaut de manière conviviale pour 4K.

Par exemple, Windows 7 aligne les partitions sur 1 Mo (un multiple de 4 Ko), la taille de cluster NTFS est de 4 Ko ou plusieurs de celles-ci et toutes les E/S sont effectuées en 4 Ko ou plusieurs de celles-ci. Windows ne se soucie guère de savoir quel disque dur vous avez, il appliquera le comportement ci-dessus dans tous .

Quoi qu'il en soit ... mon SSD a ce paramètre "taille du secteur physique" et il doit donc être là pour une bonne raison ... c'est la raison pour laquelle je cherche.

BTW, pour ce que cela vaut, le lecteur est un SSD Intel DC S351 . Le lecteur datasheet dit ceci (page 27):

En utilisant la commande SCT 0xD801 avec State = 0, Option = 1, le mot ID 106 peut être modifié de 0x6003 à 0x4000 (la taille du secteur physique de 4 Ko à la prise en charge de la taille du secteur physique de 5 Ko est modifiée).

12
misha256

L'émulation de 512 octets est destinée à la compatibilité avec les systèmes plus anciens. Toutefois, les écritures n’impliquant qu’une partie d’un secteur physique 4K peuvent entraîner une réduction des performances, car le secteur doit être lu et modifié avant de pouvoir être réellement écrit.

Lorsqu'un système d'exploitation hérité tente d'écrire sur un disque Advanced Format, des problèmes de performances peuvent survenir car les secteurs logiques écrits peuvent ne pas correspondre aux secteurs physiques.

  • Lorsque seulement une partie d'un secteur physique 4K est lue, les données sont simplement lues à partir du secteur physique et il n'y a aucune réduction de performance. Cependant, lorsque le système essaie d’écrire sur une partie d’un secteur physique (par exemple, un secteur émulé de 512 octets plutôt que le secteur physique dans son ensemble), le disque dur doit lire l’ensemble. secteur physique, modifiez la partie modifiée dans la mémoire interne du disque dur, puis réécrivez-la sur les plateaux. Ceci s'appelle lire-modifier-écrire (RMW), opération qui nécessite une rotation supplémentaire du disque et réduit donc les performances. Seagate explique cela comme suit :

[...] le disque dur doit d'abord lire l'intégralité du secteur 4K contenant l'emplacement ciblé de la demande d'écriture de l'hôte, fusionner les données existantes avec les nouvelles données, puis réécrire l'intégralité du secteur 4K:

Read-modify-write cycle

Dans ce cas, le disque dur doit effectuer des opérations mécaniques supplémentaires, telles que la lecture d’un secteur 4K, la modification du contenu, puis l’écriture des données. Ce processus s'appelle un cycle lecture-modification-écriture, ce qui n'est pas souhaitable car il a un impact négatif sur les performances du disque dur.

Les partitions de disque qui ne sont pas alignées sur une limite de 4 Ko peuvent également entraîner une dégradation des performances.

  • Traditionnellement, la première partition d'un disque dur commence au secteur 63. Windows XP et les systèmes d'exploitation plus anciens partitionnant les disques de cette manière. Les versions plus récentes de Windows créeront des partitions sur une limite de 1 Mo, assurant ainsi un alignement correct sur les secteurs physiques. Cela s'appelle l'alignement 0 .

    • Ce nombre impair est un artefact de adressage de secteur de culasse (CHS) utilisé dans INT 13h , l'héritage BIOS API utilisé pour l'accès au disque. Sur les systèmes hérités et les chargeurs de démarrage utilisant l'API INT 13h, toutes les partitions doivent commencer et se terminer aux limites des cylindres. Même après l'introduction de adressage de bloc logique (LBA) , de fausses valeurs CHS (qui ne correspondaient pas à la géométrie réelle du disque) ont été utilisées pour maintenir la compatibilité avec l'API héritée. Étant donné que l’adresse CHS supportait à l’origine un maximum de 63 secteurs par cylindre, la première partition débuterait sur le secteur 63. Windows XP (avant le Service Pack 3) et les versions antérieures de Windows ne démarrera pas si le le volume système n'est pas sur une limite de cylindre .
  • Etant donné que LBA 63 n’est pas un multiple de 8 (huit secteurs hérités de 512 octets s’insérant dans un secteur 4K), un disque au format avancé formaté de la manière ancienne comportera des clusters (la plus petite unité d’allocation de données de système de fichiers, généralement de 4K ) qui ne sont pas alignés sur les secteurs physiques d’un disque 4K, une condition appelée Alignement 1 . Par conséquent, une opération d'E/S impliquant 4 Ko de données s'étend désormais sur deux secteurs, ce qui aboutit à une opération de lecture-modification-écriture réduisant les performances.

Bien que les informations sur la taille du secteur physique soient inutiles si le système d'exploitation écrit toujours des données sur une limite de 4 Ko, ces informations peuvent toujours être utiles aux applications effectuant des E/S de bas niveau.

  • Lorsqu'un lecteur indique que la taille de son secteur physique est de 4 Ko, le système d'exploitation ou l'application peut indiquer qu'il s'agit d'un lecteur au format avancé et doit par conséquent éviter d'effectuer des opérations d'E/S qui ne couvrent pas tous les secteurs physiques. Un lecteur qui signale des secteurs natifs de 512 octets n'impose pas cette restriction. Alors que les nouveaux systèmes d'exploitation tentent généralement de lire ou d'écrire des données en unités 4K chaque fois que cela est possible (ce qui rend ces informations inutiles), les applications effectuant des E/S de bas niveau peuvent avoir besoin de connaître la taille du secteur physique afin de pouvoir s'adapter en conséquence et éviter les erreurs d'alignement. ou des écritures à secteur partiel qui provoquent des cycles RMW lents.

Votre disque SSD permet de modifier la taille du secteur physique signalé, car il est nécessaire à la compatibilité avec certaines baies de stockage.

  • Les centres de données disposent souvent de matrices de stockage composées de disques 512n hérités. Les disques 4K, même ceux qui émulent des secteurs de 512 octets, peuvent ne pas être compatibles avec ces baies. Cette fonctionnalité est donc nécessaire pour assurer la compatibilité. Voir ce sujet du forum :

    Nous ne pouvons pas simplement coller un lecteur 4K dans une matrice formatée avec des disques 512b. De nombreux modules RAID (notamment le stockage basé sur ZFS, qui est de plus en plus populaire car le stockage défini par logiciel crée des vagues) n'accepteront pas un disque de remplacement avec un format de secteur physique différent.

    Notez que de meilleures performances seront atteintes sur les systèmes modernes si le lecteur est configuré pour utiliser des secteurs 4K.

14
bwDraco

Quel avantage un système d'exploitation gagne-t-il à prendre conscience de la taille du secteur physique lorsque, indépendamment du temps, le système d'exploitation doit communiquer avec le lecteur dans des secteurs de 512 octets.

La taille logique est une taille minimale pour transférer des données . Puisqu'il s'agit d'un périphérique en mode bloc, tout transfert de données entre l'ordinateur hôte et le lecteur sera un multiple de cette taille de bloc logique.

La taille physique est une taille optimale pour transférer des données et reflète la taille de la lecture réelle et écrivent des opérations au niveau du contrôleur/lecteur.

Lorsque l'ordinateur hôte demande la lecture d'un secteur logique, le contrôleur/lecteur effectue une opération de lecture du secteur physique contenant le secteur logique.
Lorsque la taille du secteur logique est égale à la taille du secteur physique, l'opération est simple. Lorsque la taille du secteur logique est inférieure à la taille du secteur physique, le contrôleur doit extraire le secteur logique du secteur physique pour le transférer sur l'ordinateur hôte.

Lorsque l'ordinateur hôte demande l'écriture d'un secteur logique, la taille du secteur physique est importante.
Lorsque la taille du secteur logique est égale à la taille du secteur physique, l'opération d'écriture est simple et peut se poursuivre directement. L'état du contenu précédent du secteur n'affectera pas l'opération d'écriture.

Lorsque la taille du secteur logique est inférieure à la taille du secteur physique, le contrôleur doit d'abord effectuer une opération de lecture du secteur physique contenant le secteur logique.
Si la lecture réussit, le secteur logique est inséré dans le secteur physique et le secteur physique est entièrement écrit.
Si la lecture échoue (même après plusieurs tentatives), l'opération d'écriture ne peut pas être terminée.

Si le système d'exploitation effectue les opérations de lecture et d'écriture avec la taille du secteur physique (en utilisant les opérations multisectorielles disponibles dans le jeu de commandes ATAPI), les opérations d'écriture seront effectuées de manière plus efficace (et sans risque inutile d'incomplétude).

La taille du secteur LOGICAL définit entièrement la manière dont un système d'exploitation peut communiquer avec un lecteur. Aucune exception. À quoi sert-il de connaître la taille du secteur physique, lorsque vous n'êtes autorisé à communiquer que dans la taille du secteur logique?

Votre affirmation "sans exception" est incorrecte.
Le jeu de commandes ATAPI, introduit avec le disque dur IDE, a toujours été en mesure d’effectuer des opérations de lecture et d’écriture avec un paramètre sector count. Il s’agit simplement d’une extension des interfaces de contrôleur de disque et de disquette existantes, qui étaient également capables d’opérations de lecture/écriture multi-secteurs (tant que les secteurs étaient sur la même piste).

5
sawdust

Si le système d'exploitation connaît la taille du secteur physique sous-jacent, il peut optimiser ses requêtes pour nécessiter le moins d'opérations physiques possible. En particulier avec les disques SSD, la limite de fonctionnement physique (limite IOPS de 4 Ko) est souvent la limite ultime de la vitesse du périphérique. Il est donc important de pouvoir utiliser au mieux cette capacité.

3
David Schwartz

Il existe deux manières différentes d’accéder à un emplacement dans un lecteur: l’un est le schéma CHS et l’autre est le schéma LBA.

CHS signifie Cylinder, Head, Sector (Cylindre, tête, secteur) et représente la méthode la plus simple pour déterminer où lire ou écrire à partir du lecteur. Vous lui dites d’utiliser le cylindre x, la tête y et le secteur z et de lire ou d’écrire le contenu de cet emplacement dans ou à partir d’une adresse de la mémoire (un tampon). Il est dérivé des composants physiques réels d’un disque dur (disque rotatif Rust), dans lequel vous avez des cylindres physiques et des têtes de lecture. Le secteur est la plus petite unité adressable et était traditionnellement fixé à 512 octets.

LBA est un adressage d'octet logique dans lequel le lecteur lit et écrit dans une adresse de secteur par son décalage, par exemple, lit le 123837e secteur sur le disque ou l'écrit dans le 123734e secteur du disque (à partir de zéro).

Le problème? Chacune de ces valeurs a une portée limitée. En fait, à cause de la sévérité limitée du SHC, le LBA a dû être introduit. Pour CHS, les valeurs possibles pour C (le cylindre) sont 1023, tandis que H (têtes) peuvent être au maximum de 255, et S (secteur) ne peut aller que jusqu'à 63, ce qui signifie que vous pouvez avoir au plus 1024 cylindres x 255 têtes x 64 secteurs x 512 octets mappés au format traditionnel du SHC, vous donnant un total général de moins de 8 Go! Avec CHS, il est tout simplement impossible d’accéder à un disque de plus de 8 Go!

Ainsi, LBA a été introduit avec une limite de 32 bits, ce qui vous donne une taille de disque de 2 ^ 32 x 512 octets ou de 2 To. C'est la raison pour laquelle un disque MBR ne peut pas dépasser 2 To car il utilise CHS et LBA pour spécifier la taille des partitions. soutenir tout ce qui dépasse 2TiB.

Des options plus récentes et plus performantes ont été introduites, telles que le schéma de partitionnement GPT qui étend le LBA à 64 bits, ce qui vous donne une quantité de plus que ce dont vous aurez besoin à 2 ^ 64 x 512 octets - mais il y a un piège: de nombreux matériels et systèmes d'exploitation hérités, ainsi que des implémentations de BIOS et des pilotes hérités ne prennent pas en charge UEFI ou GPT, et de nombreuses personnes souhaiteraient disposer de quelque chose pouvant être mis à niveau plus facilement pour dépasser la limite de 2TiB sans avoir à réécrire la pile entière à partir de zéro. Et, enfin, nous atteignons la taille du secteur 4096.

Voir, à travers toutes les limitations discutées ci-dessus, une hypothèse est restée constante: la taille du secteur. Depuis le premier jour, il s’agit de 512 octets et le reste depuis. Mais récemment, les fabricants de disques durs ont compris qu’il était possible de faire quelque chose de magique: prenez le LBA 32 bits et CHS traditionnel et remplacez simplement la taille du secteur par 4096 (4 Ko) au lieu de 512 octets. Lorsqu'un système d'exploitation dit "donnez-moi le 2e secteur du disque" en demandant à LBA 1 (car LBA 0 est le premier), nous n'allons pas lui attribuer les octets 512 à 1023 mais plutôt les octets 4096 à 8191.

Soudainement, notre limite de 2TiB passe à 2 ^ 32 x 4096 octets, soit 16 TiB, sans avoir à abandonner le MBR, à passer en UEFI ou à un TPG, ou quoi que ce soit!

Le seul problème est que, si le système d'exploitation ne sait pas qu'il s'agit d'un disque magique qui utilise 4096 secteurs au lieu de 512 octets, il risque d'y avoir une incompatibilité. Chaque fois que le système d'exploitation dit "hé, vous, disque, écrivez-moi ces 512 octets pour compenser xxx", le disque utilisera 4096 octets pour stocker ces 512 octets (le reste étant des zéros ou des données indésirables, en supposant vous ne vous retrouvez pas avec un manque de mémoire) car ils ne communiquent pas en octets, ils communiquent en secteurs.

Ainsi, les BIOS maintenant incluent (parfois) une option vous permettant de spécifier manuellement qu’une taille de secteur de 512 octets doit être utilisée à la place de la taille de secteur native de 4096 octets utilisée par les disques les plus récents - avec l’avertissement que vous ne pouvez pas l’utiliser pour accéder à plus de 2TiB du disque sur un système MBR, comme au bon vieux temps. Mais les systèmes d’exploitation modernes qui sont conscients de 4k peuvent tirer parti de tout cela pour utiliser cette magie pour lire et écrire en morceaux de 4096 octets et le tour est joué!

(Un avantage supplémentaire est que les choses sont beaucoup plus rapides, car si vous lisez et écrivez 4096 octets à la fois, il y aura moins d'opérations à lire ou à écrire, disons, 4 Go de données.)

1
Mahmoud Al-Qudsi

Je voulais juste vous informer d'une situation où les secteurs 4K sont un problème pour les systèmes d'exploitation modernes.

Le graveur VSS de Microsoft (cliché instantané) ne fonctionne pas bien avec les secteurs 4K. Afin de sauvegarder un dossier partagé de réplication DFS, notre logiciel de sauvegarde "Backup Exec" doit créer une copie fantôme du dossier DFS répliqué. Le travail échoue si le dossier de réplication DFS se trouve sur un lecteur comportant des secteurs 4K car VSS ne fonctionne pas correctement avec les secteurs 4K.

Jim

0
Jim

512/4096 = système d'exploitation responsable de l'alignement/optimisation,

512/512 = Lecteur responsable de cela

Voir aussi: http://support.Microsoft.com/en-us/kb/2510009

0
Joe