Ich habe eine SSD, die so konfiguriert werden kann, dass ihre physische Sektorgröße auf zwei verschiedene Arten an ein Betriebssystem gemeldet wird:
Option 1: Logisch = 512 Bytes, Physisch = 512 Bytes
Option 2: Logisch = 512 Bytes, physisch = 4096 Bytes ( 4 KB)
Welchen Nutzen bringt ein Betriebssystem, wenn es sich der Größe des physischen 4K-Sektors bewusst ist, wenn man bedenkt:
Das Betriebssystem muss unabhängig davon in 512-Byte-Sektoren mit dem Laufwerk kommunizieren
Alle modernen Betriebssysteme sind auf 4K ausgerichtet und verwenden unabhängig davon 4K oder ein Vielfaches von 4K-E / A.
Die Einstellung erscheint sinnlos, da moderne Betriebssysteme bereits für 4K-Sektorlaufwerke optimiert sind. Moderne Betriebssysteme müssen ein Laufwerk nicht "fragen", ob seine Sektoren 512b oder 4K sind, da das Betriebssystem standardmäßig alles auf 4K-freundliche Weise ausführt.
Beispielsweise richtet Windows 7 Partitionen auf 1 MB (ein Vielfaches von 4 KB) aus, die NTFS-Clustergröße beträgt 4 KB oder ein Vielfaches davon, und alle E / A-Vorgänge werden in 4 KB oder einem Vielfachen davon ausgeführt. Windows ist es egal, welche Festplatte Sie haben, es wird in allen Fällen das oben beschriebene Verhalten anwenden .
Wie auch immer ... meine SSD hat diese Einstellung "Größe des physischen Sektors" und muss daher aus irgendeinem guten Grund vorhanden sein ... es ist der Grund dafür, den ich suche.
Übrigens ist das Laufwerk eine Intel SSD DC S3510 . Das Datenblatt des Laufwerks lautet wie folgt (Seite 27):
Durch Verwendung des SCT-Befehls 0xD801 mit Status = 0, Option = 1 kann das ID-Wort 106 von 0x6003 auf 0x4000 geändert werden (Änderung der physischen Sektorgröße von 4 KB auf Unterstützung der physischen Sektorgröße von 512B).
quelle
Antworten:
Die 512-Byte-Emulation ist für die Kompatibilität mit älteren Systemen vorgesehen. Schreibvorgänge, die nur einen Teil eines physischen 4K-Sektors betreffen, können jedoch zu einer Leistungsminderung führen, da der Sektor gelesen und geändert werden muss, bevor er tatsächlich geschrieben werden kann.
Wenn ein älteres Betriebssystem versucht, auf eine Festplatte im erweiterten Format zu schreiben, können Leistungsprobleme auftreten, da die geschriebenen logischen Sektoren möglicherweise nicht mit den physischen Sektoren übereinstimmen.
Festplattenpartitionen, die nicht an einer 4K-Grenze ausgerichtet sind, können ebenfalls zu Leistungseinbußen führen.
Traditionell beginnt die erste Partition auf einer Festplatte bei Sektor 63. Windows XP und ältere Betriebssysteme partitionierten Festplatten auf diese Weise. Neuere Windows-Versionen erstellen Partitionen an einer Grenze von 1 MB, um eine ordnungsgemäße Ausrichtung auf die physischen Sektoren sicherzustellen. Dies wird als Ausrichtung 0 bezeichnet .
Da LBA 63 kein Vielfaches von 8 ist (acht Legacy-Sektoren mit 512 Byte passen in einen 4K-Sektor), weist eine Festplatte im erweiterten Format, die auf die alte Weise formatiert wurde, Cluster auf (die kleinste Einheit der Dateisystem-Datenzuweisung, normalerweise 4 KB groß) ), die nicht an den physischen Sektoren auf einer 4K-Festplatte ausgerichtet sind, eine Bedingung namens Ausrichtung 1 . Infolgedessen erstreckt sich eine E / A-Operation, die ansonsten 4 KB Daten umfasst, jetzt über zwei Sektoren, was zu einer Lese-, Änderungs- und Schreiboperation führt, die die Leistung verringert.
Während Informationen zur Größe des physischen Sektors nicht erforderlich sind, wenn das Betriebssystem Daten immer an eine 4K-Grenze schreibt, werden diese Informationen möglicherweise von Anwendungen benötigt, die E / A auf niedriger Ebene ausführen.
Ihre SSD bietet die Möglichkeit, die gemeldete Größe des physischen Sektors zu ändern, da dies für die Kompatibilität mit bestimmten Speicherarrays erforderlich ist.
Rechenzentren verfügen häufig über Speicherarrays, die aus älteren 512n-Laufwerken bestehen. 4K-Laufwerke, auch solche, die 512-Byte-Sektoren emulieren, sind möglicherweise nicht mit solchen Arrays kompatibel. Daher ist diese Funktion erforderlich, um die Kompatibilität sicherzustellen. Siehe diesen Forenthread :
Beachten Sie, dass auf modernen Systemen eine bessere Leistung erzielt wird, wenn das Laufwerk für die Verwendung von 4K-Sektoren konfiguriert ist.
quelle
Die logische Größe ist eine Mindestgröße zum Übertragen von Daten. Da es sich um ein Blockgerät handelt, erfolgt jede Datenübertragung zwischen Host-Computer und Laufwerk in Vielfachen dieser logischen Blockgröße.
Die physische Größe ist eine optimale Größe zum Übertragen von Daten und spiegelt die Größe der tatsächlichen Lese- und Schreibvorgänge auf Controller- / Laufwerksebene wider .
Wenn der Host-Computer das Lesen eines logischen Sektors anfordert, führt die Steuerung / das Laufwerk eine Leseoperation des physischen Sektors durch, der den logischen Sektor enthält.
Wenn die logische Sektorgröße gleich der physischen Sektorgröße ist, ist die Operation einfach. Wenn die Größe des logischen Sektors kleiner als die Größe des physischen Sektors ist, muss der logische Sektor vom Controller aus dem physischen Sektor extrahiert werden, um ihn an den Host-Computer zu übertragen.
Wenn der Host-Computer das Schreiben eines logischen Sektors anfordert, ist die Größe des physischen Sektors von Bedeutung.
Wenn die logische Sektorgröße gleich der physischen Sektorgröße ist, ist die Schreiboperation einfach und kann direkt fortgesetzt werden. Der Zustand des vorherigen Inhalts des Sektors hat keinen Einfluss auf den Schreibvorgang.
Wenn die Größe des logischen Sektors kleiner als die Größe des physischen Sektors ist, muss der Controller zuerst eine Leseoperation des physischen Sektors ausführen, der den logischen Sektor enthält.
Wenn das Lesen erfolgreich ist, wird der logische Sektor in den physischen Sektor eingefügt und der physische Sektor vollständig geschrieben.
Wenn der Lesevorgang nicht erfolgreich ist (auch nach erneuten Versuchen), kann der Schreibvorgang nicht abgeschlossen werden.
Wenn das Betriebssystem die Lese- und Schreiboperationen mit der physischen Sektorgröße ausführt (unter Verwendung der im ATAPI-Befehlssatz verfügbaren Mehrsektoroperationen), werden die Schreiboperationen effizienter ausgeführt (und ohne unnötige Wahrscheinlichkeit einer Unvollständigkeit).
Ihre Behauptung "keine Ausnahmen" ist falsch.
Der ATAPI-Befehlssatz, der mit der IDE-Festplatte eingeführt wurde, war immer in der Lage, Lese- und Schreibvorgänge mit einem
sector count
Parameter auszuführen . Dies ist lediglich eine Erweiterung der vorhandenen Schnittstellen- und Diskettencontroller-Schnittstellen, die auch Lese- / Schreibvorgänge für mehrere Sektoren ausführen konnten (solange sich die Sektoren auf derselben Spur befanden).quelle
sector count
Parameter, von dem Sie sprechen ... sogar das alte Windows XP liest / schreibt in der E / A-Blockgröße von8
Sektoren oder Vielfachen davon. Es ist bereits vollständig optimiert! Aus diesem Grund funktioniert XP mit SSDs sehr gut, solange die Partition ausgerichtet ist. Es ist extrem 4K freundlich. Die Frage bleibt also immer noch unbeantwortet. Was mehr kann ein Betriebssystem die physische Sektorgröße hat zu wissen , ist 4K. Denken Sie daran, dass das Betriebssystem bereits für 4K-E / A optimiert ist.Wenn das Betriebssystem die zugrunde liegende Größe des physischen Sektors kennt, kann es seine Abfragen so optimieren, dass möglichst wenige physische Vorgänge erforderlich sind. Insbesondere bei SSDs ist das physische Betriebslimit (4 KB IOPS-Limit) häufig das ultimative Limit für die Gerätegeschwindigkeit. Daher ist es wichtig, diese Kapazität optimal nutzen zu können.
quelle
Es gibt zwei verschiedene Möglichkeiten, auf einen Standort innerhalb eines Laufwerks zuzugreifen: das CHS-Schema und das LBA-Schema.
CHS steht für Cylinder, Head, Sector und ist die niedrigste Methode, um zu bestimmen, wo vom Laufwerk gelesen oder geschrieben werden soll. Sie weisen ihn an, Zylinder x, Kopf y und Sektor z zu verwenden und den Inhalt dieses Speicherorts an oder von einer Adresse im Speicher (einem Puffer) zu lesen oder zu schreiben. Es wird von den tatsächlichen physischen Komponenten einer (traditionellen, sich drehenden) Festplatte abgeleitet, auf der Sie physische Zylinder und Leseköpfe haben. Der Sektor ist die kleinste adressierbare Einheit und wurde traditionell auf 512 Bytes festgelegt.
LBA ist eine logische Byteadressierung, bei der das Laufwerk durch seinen Versatz von einer Sektoradresse liest und in diese schreibt, z. B. den 123837. Sektor auf der Platte liest oder dies in den 123734. Sektor auf der Platte schreibt (beginnend bei Null).
Das Problem? Jeder dieser Werte ist im Bereich begrenzt. In der Tat musste LBA eingeführt werden, da CHS stark eingeschränkt war. Für CHS sind die möglichen Werte für C (der Zylinder) 1023, während H (Köpfe) maximal 255 sein kann und S (Sektor) nur bis zu 63 betragen kann, was bedeutet, dass Sie höchstens 1024 Zylinder x 255 Köpfe x 64 haben können Sektoren x 512 Bytes im traditionellen CHS-Format, sodass Sie insgesamt weniger als 8 GiB erhalten! Mit CHS ist es einfach nicht möglich, auf eine Festplatte mit mehr als 8 GiB zuzugreifen!
Daher wurde LBA mit einem 32-Bit-Limit eingeführt, das Ihnen 2 ^ 32 x 512 Bytes oder 2 TiB Limit für die Festplattengröße gibt. Dies ist der Grund, warum eine MBR-Festplatte 2 TB nicht überschreiten kann, da sie CHS und LBA verwendet, um Partitionsgrößen anzugeben, und dies auch nicht kann unterstütze alles über 2TiB.
Neuere, bessere Optionen wurden eingeführt, wie das GPT-Partitionierungsschema, das LBA auf 64 Bit erweitert und Ihnen mit 2 ^ 64 x 512 Bytes eine Menge mehr bietet, als Sie jemals benötigen werden - aber es gibt einen Haken: viel Vermächtnis Hardware- und Legacy-Betriebssysteme sowie Legacy-BIOS-Implementierungen und Legacy-Treiber unterstützen UEFI oder GPT nicht, und viele Benutzer möchten etwas, das einfacher aktualisiert werden kann, um das 2-TB-Limit zu überschreiten, ohne den gesamten Stack neu schreiben zu müssen von Grund auf neu. Und endlich erreichen wir die Sektorgröße 4096.
Bei allen oben diskutierten Einschränkungen war eines eine feste Annahme: die Sektorgröße. Vom ersten Tag an waren es 512 Bytes und seitdem ist es so geblieben. Vor kurzem haben die Festplattenhersteller jedoch erkannt, dass es eine Möglichkeit gibt, etwas Magisches zu tun: Nehmen Sie das herkömmliche CHS oder 32-Bit-LBA und ersetzen Sie einfach die Sektorgröße durch 4096 (4 KB) anstelle von 512 Byte. Wenn ein Betriebssystem durch Anfordern von LBA 1 "Gib mir den 2. Sektor auf der Festplatte" sagt (weil LBA 0 der erste ist), geben wir ihm nicht die Bytes 512 - 1023, sondern die Bytes 4096 - 8191.
Plötzlich wird unser 2TiB-Limit auf 2 ^ 32 x 4096 Bytes oder 16 TiB aktualisiert, ohne MBR fallen zu lassen, auf UEFI oder GPT umzuschalten oder so!
Der einzige Haken ist, dass es zu einer Nichtübereinstimmung kommt, wenn das Betriebssystem nicht weiß, dass es sich um eine magische Festplatte handelt, die 4096 Sektoren anstelle von 512-Byte-Sektoren verwendet. Jedes Mal, wenn das Betriebssystem sagt "Hey, Sie, Festplatte, schreiben Sie mir diese 512 Bytes, um xxx zu versetzen", verwendet die Festplatte 4096 Bytes , um diese 512 Bytes zu speichern (der Rest sind Nullen oder Junk-Daten, vorausgesetzt, Sie haben keine ein Speicherunterlauf), weil sie nicht in Bytes kommunizieren, sondern in Sektoren.
Daher enthalten BIOS jetzt (manchmal) eine Option, mit der Sie manuell festlegen können, dass anstelle der nativen 4096-Byte-Sektorgröße, die neuere Festplatten verwenden, eine Sektorgröße von 512 Byte verwendet werden soll - mit der Einschränkung, dass Sie nicht mehr als darauf zugreifen können 2 TB der Festplatte auf einem MBR-System, genau wie in den "guten alten Zeiten". Aber moderne Betriebssysteme, die 4k-fähig sind, können all dies nutzen, um diese Magie zum Lesen und Schreiben in 4096-Byte-Chunks und Voilà zu nutzen!
(Ein zusätzlicher Vorteil ist, dass die Dinge viel schneller sind, denn wenn Sie 4096 Bytes gleichzeitig lesen und schreiben, müssen weniger Vorgänge gelesen oder geschrieben werden, beispielsweise 4 GB Daten.)
quelle
n
Blöcken von 512 Byte. Dasn
ist eine Zahl , die von Windows XP, weniger ist nie als 8, und immer ein Vielfaches von 8. Welche vorwärts jedes Betriebssystem von XP bedeutet, und ich glaube , alle modernen Linux - Distributionen auch für 4K - Laufwerke bereits optimiert. Die kleinste E / A beträgt 4 KB, und alle anderen E / A-Größen sind ein Vielfaches davon.512/4096 = Betriebssystem, das für die Ausrichtung / Optimierung verantwortlich ist,
512/512 = Laufwerk dafür verantwortlich
Siehe auch: http://support.microsoft.com/en-us/kb/2510009
quelle
Ich wollte Sie nur über eine Situation informieren, in der 4K-Sektoren ein Problem für moderne Betriebssysteme darstellen.
Der VSS-Writer von Microsoft (Shadow Copy) funktioniert nicht gut mit 4K-Sektoren. Um einen DFS Replication-Freigabeordner zu sichern, muss unsere Sicherungssoftware "Backup Exec" eine Schattenkopie des DFS Replicated-Ordners erstellen. Der Job schlägt fehl, wenn sich der DFS-Replikationsordner auf einem Laufwerk mit 4K-Sektoren befindet, da VSS mit 4K-Sektoren nicht ordnungsgemäß funktioniert.
Jim
quelle
Physisch bedeutet das des tatsächlichen Laufwerks selbst, während Logisch das der definierten Unterteilungen darin ist. Aus PC Mag's Logical vs Physical:
Um dies in verdaulicher Form zu erklären, stellen Sie sich einen Apfel vor, der so breit wie Ihre Hand ist. Das ist die tatsächliche physische Größe des Apfels. Natürlich passt ein ganzer Apfel nicht in Ihren Mund, also entscheiden Sie sich, ihn in gleiche Scheiben zu schneiden, wobei jede Scheibe die Breite Ihres Fingers hat. Dies ist die logische Größe oder Größe, die Ihr Computer verwendet.
Mehrere Gründe hierfür sind Realwert-Kapazitätsberechnungen sowie Fehlerzuordnungen und -korrekturen, wie von Wikipedia erläutert :
So wie Sie keine Apfelscheiben ohne den Apfel selbst haben können, können Sie Logical nicht ohne die physische Basis haben.
quelle