Ich besitze eine 4-TB-Festplatte mit einer physischen Sektorgröße von 4 KB (Advanced Format) und habe sie an zwei SATA-Host-Controller angeschlossen (einen internen und einen in einem USB-Gehäuse). In der (älteren, ungefähr 2010) Version wird eine logische Sektorgröße von 512 Byte angegeben, die physischen Sektoren sind jedoch 4096 Byte groß. Im aktuellen USB-Gehäuse wird eine logische und physikalische Größe von 4096B angegeben:
# 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)
Der "interne" Controller zeigt das Verhalten, das ich zuvor gesehen habe. Dies wird normalerweise als "512e" bezeichnet, wobei die Firmware des Laufwerks die 512-Sektor-LBA-Adressierung emuliert, obwohl keine Sektoren auf diese Weise physisch geschrieben werden. Betriebssysteme (und Administratoren) können sicherstellen, dass Partitionen so ausgerichtet sind, dass (kleine) Schreibbefehle gruppiert werden können, sodass die Festplatte vollständige Sektoren überschreiben kann, anstatt auf das Schreiben in einen Teil eines physischen Sektors zurückzugreifen, in dem der Rest gelesen werden muss Inhalt zuerst.
Das Verhalten von "4k native" auf einem Laufwerk (USB-Gehäuse) war für mich jedoch neu. Mein erster Gedanke war, dass das Gehäuse zusätzlich zur emulierten 512B-Emulation des Laufwerks eine 4096B-Adressierung emuliert.
Die einzigen Vorkommen, die ich bei einer Websuche finden konnte, waren USB-Speichereinrichtungen, die sich bei 4k logischen Sektoren registrierten. Ich gehe davon aus, dass sie 4k über 512e emulieren, sodass MBR-Partitionstabellen zulässig sind, sodass große Laufwerke auf älteren / eingebetteten Geräten (Smart-TVs und was nicht) verwendet werden können, die nur MBR + FAT32-USB-Massenspeicher unterstützen.
Nach Rücksprache mit dem Hersteller wurde behauptet, dass das Laufwerk tatsächlich im nicht emulierten (nativen) 4k-Modus betrieben wird und der USB-SATA-Controller überhaupt keine Emulation durchführt. Dies würde erfordern, dass die Firmware des Laufwerks erkennt, ob der Host-Controller die Adressierung von Sektorgrößen von 4 KB unterstützt (wünscht?). In der öffentlichen Dokumentation der SATA-Standards konnte ich dazu nichts finden. Deshalb frage ich:
- Hat jemand "4096-Byte-Logikblöcke" auf seinem SATA-Controller gesehen?
- Unterstützen Laufwerke das Aktivieren / Deaktivieren der Emulation bei Bedarf? Wenn ja,
- Wie funktioniert diese Bestimmung?
- Können Sie es auf dem Laufwerk über eine Flagge überschreiben?
- Können Sie es auf dem Host-Controller über einen Treiber / ein Flag überschreiben?
quelle
Antworten:
Ich habe einige 4Kn-SATA-Laufwerke in der Festplattenvalidierungsbranche gesehen, aber mir war nicht bewusst, dass sie Kunden beliefern, da sie nur eingeschränkten Hardware- und Software-Support bieten und keine Kundennachfrage besteht.
Es gibt zwei konkurrierende Zuordnungen für physische und logische Sektorgrößen. Mit der Funktion "Langer logischer Sektor" kann ein Gerät logische Sektoren mit einer Länge von mehr als 512 Byte (z. B. 4 KB) und mit der Funktion "Langer physikalischer Sektor" können mehrere logische Sektoren pro physikalischem Sektor (z. B. 512 E) aufweisen, obwohl sie sich nicht unbedingt gegenseitig ausschließen. Wenn der Hersteller angibt, dass das Laufwerk 4 KB hat, bietet der ältere Controller möglicherweise eine Emulationsebene wie Lesen, Ändern und Schreiben für ältere Anwendungen und Hardware, da ältere Systeme das 4-KB-Format einfach nicht unterstützen.
Der
sg_sat_identify
Befehl aus dem sg3_utils-Paket würde Ihnen wahrscheinlich die Informationen liefern, die Sie benötigen (überprüfen Sie die Wörter 106-108 für Informationen zur physischen Sektorgröße / logischen Sektorgröße).Es sieht nicht so aus, als ob SATA-Laufwerke die Emulation bei Bedarf per se unterstützen können. Wenn das Laufwerk jedoch 512e anstelle von 4Kn verwendet, wird die Leistungsoptimierung durch den Treiber (oder möglicherweise den USB-SATA-Controller) maximiert, der die Lese- / Schreibvorgänge einschränkt 4K-Grenzen, bei denen die Übertragung beispielsweise auf einer LBA beginnt, bei der die unteren 3 Bits 0 sind, und auf einer LBA endet, bei der die unteren 3 Bits 1 sind:
Im Grunde gibt es also keinen "Schalter", der das Laufwerk anweist, die Emulation zu starten oder zu stoppen. Aus Sicht des Endbenutzers ist es wahrscheinlich am besten, sicherzustellen, dass Ihre Laufwerke das beste Dateisystem für die Zuordnung verwenden, die Ihr Laufwerk verwendet, und sicherzustellen, dass es korrekt ausgerichtet ist. Die folgende Site bietet eine ziemlich gute Aufschlüsselung der gängigen Dateisysteme und ihrer Leistungsstatistiken im Vergleich zur Blockausrichtung auf verschiedenen Dateisystemen: http://www.ibm.com/developerworks/library/l-linux-on-4kb-sector -disks / index.html
quelle