Les disques durs activent-ils 512e (émulation 512 octets de secteurs 4k) selon les besoins, en fonction du contrôleur hôte?

13

J'ai un disque dur de 4 To qui a une taille de secteur physique de 4k (format avancé) et je l'ai attaché à deux contrôleurs hôtes SATA (un interne et un dans un boîtier USB). Sur le (plus ancien, vers 2010), il apparaît comme une taille de secteur logique de 512B, mais indique que ses secteurs physiques sont de 4096 octets. Dans le boîtier USB récent, il aurait une taille logique et physique de 4096B:

# internal host controller
sd 4:0:0:0: [sdd] 7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
sd 4:0:0:0: [sdd] 4096-byte physical blocks

# USB enclosure
sd 18:0:0:0: [sdd] 976754646 4096-byte logical blocks: (4.00 TB/3.63 TiB)

Le contrôleur «interne» montre un comportement que j'avais vu précédemment, qui est généralement appelé «512e», où le micrologiciel du lecteur émule l'adressage LBA à 512 secteurs, même s'il n'écrit pas physiquement les secteurs de cette façon. Les systèmes d'exploitation (et les administrateurs) peuvent garantir que les partitions sont alignées de sorte que les (petites) commandes d'écriture puissent être regroupées afin que le disque puisse écraser des secteurs complets au lieu de retomber dans l'écriture dans une partie d'un secteur physique, où il doit lire le reste du contenu en premier.

Cependant, voir le comportement "natif 4k" sur un lecteur (boîtier USB) était nouveau pour moi et ma pensée initiale était que le boîtier émulait l'adressage 4096B en plus de l'émulation 512B émulée du lecteur.

Les seules occurrences de cela que j'ai pu trouver avec une recherche Web où les installations de stockage USB se sont inscrites avec des secteurs logiques 4k. Je suppose qu'ils émulent 4k sur 512e, donc autorisez les tables de partition MBR afin que les gros disques puissent être utilisés sur des appareils hérités / intégrés (Smart TV et autres) qui ne prennent en charge que le stockage de masse USB MBR + FAT32.

Après avoir contacté le fabricant , ils ont affirmé que le lecteur fonctionnait en mode 4k non émulé (natif), le contrôleur USB SATA ne fait également aucune émulation. Cela nécessiterait que le micrologiciel du lecteur détecte si le contrôleur hôte prend en charge (désire?) L'adressage des tailles de secteur de 4 Ko. Je n'ai rien trouvé à ce sujet dans la documentation publique des normes SATA. Alors je demande:

  • Est-ce que quelqu'un a vu des "blocs logiques de 4096 octets" sur son contrôleur SATA?
  • Les disques prennent-ils réellement en charge l'activation / la désactivation de l'émulation à la demande? Si c'est le cas,
    • Comment fonctionne cette détermination?
    • Pouvez-vous le remplacer sur le lecteur via un indicateur?
    • Pouvez-vous le remplacer sur le contrôleur hôte via un pilote / indicateur?
Nathan Summers
la source
Le logo sur le lecteur indique-t-il "AF" ou "4Kn"?
Jamie Hanrahan
Cette question a vraiment besoin d'une réponse moderne et de haute qualité.
Hashim

Réponses:

2

J'ai vu quelques disques SATA 4Kn travailler dans l'industrie de la validation des disques durs, mais je ne savais pas qu'ils en expédiaient à des clients, en raison du support matériel et logiciel limité pour eux et du manque de demande des clients.

Il existe deux mappages concurrents pour les tailles de secteur physiques et logiques. La fonctionnalité de secteur logique long permet à un périphérique d'avoir des secteurs logiques supérieurs à 512B (par exemple 4Kn), et la fonctionnalité de secteur physique long permet à un périphérique d'avoir plusieurs secteurs logiques par secteur physique (par exemple 512e), bien qu'ils ne soient pas nécessairement mutuellement exclusifs. Si le fabricant prétend que le lecteur est 4Kn, l'ancien contrôleur peut fournir une couche d'émulation, comme lecture-modification-écriture, pour les applications et le matériel plus anciens, car les anciens systèmes ne prennent tout simplement pas en charge le format 4Kn.

La sg_sat_identifycommande du package sg3_utils vous fournirait probablement les informations dont vous avez besoin (vérifiez les mots 106-108 pour les informations sur la taille du secteur physique / la taille du secteur logique).

Il ne semble pas que les disques SATA puissent prendre en charge l'émulation à la demande en soi, mais si le disque utilise effectivement 512e, au lieu de 4Kn, l'optimisation des performances est maximisée par le pilote (ou éventuellement le contrôleur SATA USB) limitant les lectures / écritures sur Limites 4K, par exemple, le transfert commence sur un LBA où les 3 bits inférieurs sont 0 et se termine sur un LBA où les 3 bits inférieurs sont 1:

start_lba & 0x3 == 0
end_lba & 0x3 == 1

Donc, fondamentalement, il n'y a pas de "commutateur" qui puisse dire au lecteur de démarrer ou d'arrêter l'émulation. Du point de vue de l'utilisateur final, votre meilleur pari est probablement de vous assurer que vos disques utilisent le meilleur système de fichiers pour le mappage utilisé par votre disque et de s'assurer qu'il est correctement aligné. Le site suivant donne une assez bonne ventilation des systèmes de fichiers courants et de leurs statistiques sur les performances par rapport à l'alignement des blocs sur différents systèmes de fichiers: http://www.ibm.com/developerworks/library/l-linux-on-4kb-sector -disks / index.html

Adam Naber
la source