Unterstützen von Festplatten mit hoher Kapazität und großen Sektoren unter Windows 8

Das Dateisystem gehört zu den Grundlagen jedes Betriebssystems, und Windows steht unter den verbreiteten Betriebssystemen für eines der fortschrittlichsten Dateisysteme. Bei Windows 7 wurden wesentliche Verbesserungen in Bezug auf Zuverlässigkeit, Verwaltung und Stabilität vorgenommen (beispielsweise die vollständige Automatisierung des überholten Prinzips der „Defragmentierung“). In Windows 8 haben wir an dieser Stelle angeknüpft und den Schwerpunkt auf Skalierung und Kapazität verschoben. Bryan Matthew, der diesen Beitrag verfasst hat, ist einer der Programmmanager des Storage & File System-Teams.
– Steven

Wir speichern immer mehr digitale Daten – hochauflösende Digitalfotos, Heimvideos in HD-Qualität und große Musiksammlungen tragen wesentlich zu diesem Wachstum bei. Festplattenhersteller haben auf diese Herausforderung mit der Entwicklung von Laufwerken mit sehr hoher Kapazität reagiert. In einem aktuellen IDC-Marktforschungsbericht wird geschätzt, dass die maximale Kapazität eines einzelnen Festplattenlaufwerks bis zum Jahr 2015 auf 8 Terabyte ansteigen wird.

2010 beträgt die Kapazität 2 TB, 2011 3 TB und steigt bis 2015 auf (voraussichlich) 7 TB an.

Maximale Kapazitätssteigerung eines einzelnen Laufwerks
(Quelle: IDC Study# 228266, Worldwide Hard Disk Drive 2011–2015 Forecast:
Transformational Times,
Mai 2011)

In diesem Blogbeitrag werde ich darlegen, wie Windows 8 in Verbindung mit Angeboten von Partnern aus der Branche eine effizientere und vollständigere Nutzung derartig großer Laufwerke ermöglicht.

Herausforderungen durch Festplattenlaufwerke mit sehr hoher Kapazität

Um den kontextuellen Rahmen abzustecken, beginnen wir mit der Definition der „sehr hohen Kapazität“: Wir sprechen von Speichervolumen von mehr als 2,2 TB (pro Laufwerk). Die aktuelle Windows-Architektur weist einige Einschränkungen auf, aus denen in einigen Situationen Herausforderungen im Umgang mit diesen Laufwerken hervorgehen.

Bereits während der Entwicklung der Datenträger mit sehr hoher Kapazität durch die Hersteller, rückten zwei entscheidende Herausforderungen ins Zentrum der Aufmerksamkeit:

  • Adressierbarkeit der gesamten verfügbaren Kapazität zugunsten einer vollständigen Nutzung
  • Unterstützung der Festplattenhersteller bei der Entwicklung einer effizienteren Verwaltung physischer Datenträger mit (großen) Sektoren mit 4 KB

Sehen wir uns diese beiden Punkte etwas genauer an.

Adressieren der gesamten verfügbaren Kapazität

Um die Herausforderungen bei der Adressierung der gesamten verfügbaren Kapazität sehr großer Datenträger vollständig zu verstehen, müssen wir uns mit den folgenden Begriffen etwas genauer befassen:

  • Adressierungsmethode
  • Datenträgerpartitionierungsschema
  • Firmware-Implementierung des Computers: BIOS oder UEFI


Adressierungsmethode

Datenträger wurden anfangs mithilfe der Zylinder-Kopf-Sektor-Methode (Cylinder-Head-Sector, CHS) adressiert. Bei dieser Methode wurde ein bestimmter Datenblock ermittelt, indem angegeben wurde, auf welchem Zylinder, Kopf und Sektor er sich auf dem Datenträger befand. Ich erinnere mich noch, wie im Jahr 2001 (als ich noch zur Schule ging!) ein Datenträger mit 160 GB eingeführt wurde, durch den die Grenze der CHS-Methode für die Adressierung (bei etwa 137 GB) erreicht wurde. Damals mussten die Systeme so umgestaltet werden, dass sie größere Datenträger unterstützen. [Anm. d. Red.: Meine erste Festplatte hatte eine Kapazität von 5 MB und die Größe eines Tower-PCs. – Steven]

Die neue Adressierungsmethode wurde als logische Blockadressierung (Logical Block Addressing, LBA) bezeichnet. Mit dieser Methode erfolgte der Verweis auf die einzelnen Sektoren auf dem Datenträger nicht mehr durch diskrete Geometrie, sondern durch eine Sektorennummer (logische Blockadresse). Windows wurde auf diese neue Adressierungsmethode der verfügbaren Festplattenkapazität aktualisiert. Nach dem LBA-Schema hat jeder Sektor eine vordefinierte Größe (bis vor kurzem waren es 512 Byte pro Sektor), und die Sektoren wurden in monoton steigender Reihenfolge adressiert, von Sektor 0 bis Sektor n. Für „n“ gilt dabei Folgendes:

n = (Gesamtkapazität in Byte)/(Sektorgröße in Byte)

Datenträgerpartitionierungsschema

Während es mit der LBA-Adressierung theoretisch möglich ist, auf beliebig hohe Kapazitäten zuzugreifen, kann der größte Wert für „n“ in der Praxis durch das zugeordnete Datenträgerpartitionierungsschema begrenzt sein.

Der Begriff der Datenträgerpartitionierung stammt aus den frühen 1980er Jahren. Damals erkannten die Systemtechniker den Bedarf an einer Aufteilung der Laufwerke in mehrere Partitionen (d. h. Unterteilungen), die anschließend einzeln mit einem Dateisystem formatiert und dann zum Speichern von Daten verwendet werden konnten. Zu dieser Zeit wurde die Partitionstabelle nach dem MBR-Schema (Master Boot Record) entwickelt, mit dem die maximale Kapazität eines Datenträgers durch bis zu 32 Bits an Informationen dargestellt werden konnte. Durch eine einfache Rechnung wird deutlich, dass das größte adressierbare, durch 32 Bits repräsentierte Byte bei 232 oder 2,2 TB liegt. In den 1980er Jahren wirkte dies natürlich wie eine vollkommen legitime praktische Grenze, da der größte Datenträger, der damals im Handel war, einen Umfang von sage und schreibe 5 MB hatte und weit über 1500 USD kostete!

Bereits in den späten 1990er Jahren wurde den Systemtechnikern klar, dass (neben weiteren Anforderungen) eine Adressierung von mehr als 2,2 TB erforderlich war. Eine Gruppe von Unternehmen arbeitete im Rahmen der UEFI-Spezifikation (Unified Extensible Firmware Interface) gemeinsam an der Entwicklung eines skalierbaren Partitionierungsschemas, der so genannten GUID-Partitionstabelle (GPT). Mit der GPT kann die Zahl, mit der die maximale Größe eines Datenträgers dargestellt wird, mit zu 64 Bits an Informationen gespeichert werden. Daraus ergibt sich eine theoretische Höchstzahl von 9,4 Zettabyte (1 ZB = 1.000.000.000.000.000.000.000 Byte).

Ab der 64-Bit-Version von Windows Vista wird die Möglichkeit, das System von einem mit der GTP partitionieren Festplatte zu starten, von Windows unterstützt. Die einzige wichtige Anforderung ist dabei, dass es sich bei der Firmware um UEFI handelt. Wer sich bereits über UEFI informiert hat, weiß, dass diese bei Computern mit Windows 8 als neue Funktion zur Verfügung steht. Damit sind wir beim Thema Firmware angelangt.

Firmware-Implementierung des Computers: BIOS oder UEFI

PC-Hersteller verwenden Firmware u. a. für die grundlegende Hardwareinitialisierung, bevor das Betriebssystem (Windows) die Steuerung übernimmt. Seit der Erfindung des PCs um 1980 werden altgediente BIOS-Firmware-Implementierungen (Basic Input Output System) verwendet. Aufgrund der erheblichen Weiterentwicklung des PCs wurde die UEFI-Spezifikation als Ersatz für BIOS entwickelt und seit Ende der 1990er implementiert. UEFI wurde mithilfe der GUID-Partitionstabelle (GPT) von Anfang an für Festplatten mit hoher Kapazität entwickelt. Zwar wurde mithilfe von Workarounds für Festplatten mit hoher Kapazität (z. B. ein hybrides MBR-GPT-Partitionierungsschema) versucht, verschiedene BIOS-Implementationen weiter zu verwenden. Diese Methoden sind jedoch mitunter unzuverlässig und beeinträchtigen die Datensicherheit. Aus diesem Grund ist es erforderlich, dass unter Windows moderne UEFI-Firmware zusammen mit dem GPT-Schema für Startdatenträger verwendet wird.

Verschiedene neue Windows-Funktionen, die unter Windows 8 erstmals verfügbar sind, erfordern UEFI. Die Kombination von UEFI-Firmware, GPT-Partitionierung und LBA ermöglicht unter Windows das problemlose Verwenden von Festplatten mit sehr hoher Kapazität.

Unsere Partner arbeiten an der Bereitstellung von Systemen auf Grundlage von Windows 8, die UEFI verwenden, um diese innovativen Windows 8-Funktionen und -Szenarien (u. a. sicheres Starten, verschlüsselter Datenträger und Schnellstart) zu ermöglichen. Bei Veröffentlichung von Windows 8 werden neue Systeme die Installation von Windows 8 auf und das Starten von Festplatten mit einer Kapazität von 3 TB und mehr unterstützen. Ein Ausblick:

Laufwerk „C“ wird mit 2,72 TB (2,71 TB frei).

Windows 8 wird von einem SATA-Laufwerk mit 3 TB und einem UEFI-System gestartet.

Große Sektoren mit 4 KB

Alle Festplattenlaufwerke verfügen über integrierte Informationen und Logik für die Fehlerkorrektur. So können Festplattenhersteller das Signal-Rausch-Verhältnis (SRV) beim Lesen vom Datenträger automatisch behandeln. Mit zunehmender Festplattenkapazität werden die gespeicherten Daten immer enger gepackt. Im Zuge dessen nimmt beim Lesen von der Festplatte auch das SRV ab. Um die Abnahme des SRV und daraus resultierende Lesefehler auszugleichen, müssen in den einzelnen Festplattensektoren zusätzliche Fehlerkorrekturcodes (Error Correction Codes, ECC) gespeichert werden. Bei modernen Festplatten ist das Speichern von Fehlerkorrekturcodes mittlerweile keine effiziente Methode mehr. Denn inzwischen wird ein großer Teil eines 512-Byte-Sektors mit gespeicherten Fehlerkorrekturcodes belegt – Speicherplatz, der Ihnen nicht mehr zur Verfügung steht. Dieser Umstand führte neben anderen Bedingungen zur Entwicklung größerer Sektoren.

Größere Sektoren – Medien mit „Advanced Format“

Dank größerer Sektoren kann der Fehlerkorrekturcode mit einer effizienteren Methode codiert werden. Dies verbessert die Fehlerkorrektur und nimmt weniger Speicherplatz in Anspruch. Durch die Effektivitätssteigerung können in Zukunft sogar noch größere Kapazitäten bereitgestellt werden. Festplattenhersteller haben sich auf eine Sektorgröße von 4 KB, das „Advanced Format“ (AF), geeinigt. Die erste AF-Festplatte wurde Ende 2009 eingeführt. Inzwischen haben Festplattenhersteller ihre Produkte auf AF-Medien umgestellt, und es wird erwartet, dass in Zukunft alle Speichergeräte dieses Format verwenden.

Read-Modify-Write (Lesen-Bearbeiten-Schreiben)

Auf einer AF-Festplatte werden Daten in physischen Blöcken von 4 KB angeordnet. Die Festplatte kann nur in dieser Granularität aktualisiert werden. Um also logische Blockadressierung in kleineren Einheiten zu ermöglichen, sind verschiedene spezielle Schritte erforderlich. Für Schreibvorgänge, die in Einheiten der physischen Sektorgröße ausgeführt werden, sind diese Schritte nicht notwendig. Die physische Sektorgröße kann also als Einheit für die Atomarität der Festplatte betrachtet werden.

Entsprechend der folgenden Abbildung kann ein physischer 4-KB-Sektor mit logischen 512-Byte-Sektoren logisch adressiert werden. Um in einen einzelnen logischen Sektor zu schreiben, genügt es nicht, den Magnetkopf über diesen Abschnitt des physischen Sektors zu bewegen und den Schreibvorgang zu starten. Stattdessen muss der gesamte physische 4-KB-Sektor in einen Zwischenspeicher geschrieben, der logische 512-Byte-Sektor im Zwischenspeicher bearbeitet und anschließend der gesamte physische 4-KB-Sektor wieder auf die Festplatte geschrieben werden (dabei wird der alte Block überschrieben). Dies wird als Read-Modify-Write (Lesen-Bearbeiten-Schreiben) bezeichnet.

Festplatten mit dieser Emulationsebene zur Unterstützung von nicht ausgerichteten Schreibvorgängen werden als 4K-Festplatten mit 512-Byte-Emulation bzw. „512e“ bezeichnet. Festplatten ohne diese Emulationsebene werden „4K Native“ genannt.

Physischer 4-K-Sektor mit acht 512-Byte-Abschnitten. Schritt 1: Lesen des 4-K-Sektors von Festplatte in den Zwischenspeicher. Pfeil. Schritt 2: Aktualisieren des logischen 512-Byte-Sektors im Zwischenspeicher (der markierte 512-Byte-Block). Schritt 3: Überschreiben des ursprünglichen physischen 4-K-Sektors auf der Festplatte.

Dieses Verfahren des Read-Modify-Write kann zu Leistungsbeeinträchtigungen in Anwendungen und Arbeitsauslastungen führen, in denen zahlreiche nicht ausgerichtete Schreibvorgänge ausgegeben werden. Um diesen Medientyp unter Windows zu unterstützen, muss gewährleistet sein, dass Anwendungen die physische Sektorgröße des Geräts abrufen können. Außerdem müssen sowohl Windows- als auch Drittanbieteranwendungen Ein- und Ausgaben an der festgestellten physischen Sektorgröße ausrichten.

Entwurf für Festplatten mit großen Sektoren

Aufgrund verschiedener Probleme unter früheren Windows-Versionen waren AF-Festplatten einer der Ausgangspunkte bei der Entwicklung neuer Features und Technologien für Windows 8. Daher ist Windows 8 das erste Betriebssystem, dass beide AF-Festplattentypen unterstützt: 512e und 4K Native.

Dazu ermittelten wir die Features und Technologien, die für die o. g. potenziellen Probleme am anfälligsten waren. Wir arbeiteten mit den Entwicklerteams für die entsprechenden Features zusammen und boten Unterstützung sowie Hilfe beim Testen von Hardware in diesen Szenarios.

Unter anderem wurden folgende Probleme behandelt:

  • Einführen einer neuen und erweiterten API, mit der Anwendungen die physische Sektorgröße einer Festplatte abrufen können
  • Verbessern der Informationsverarbeitung bzgl. großer Sektoren innerhalb des NTFS-Dateisystems, einschließlich der Gewährleistung ausreichender Sektorauffüllung bei erweiterten Schreibvorgängen (Schreiben bis zum Dateiende)
  • Integrieren der Informationsverarbeitung bzgl. großer Sektoren im neuen Dateiformat VHDx von Hyper-V für die vollständige Unterstützung beider AF-Festplattentypen
  • Erweitern des Windows-Startcodes für fehlerfreie Ausführung beim Starten von einer 4K Native-Festplatte

Dies ist nur ein kleiner Einblick in den Arbeitsaufwand, der erforderlich war, um umfassende Unterstützung für beide AF-Festplattentypen unter Windows 8 bereitzustellen. Zusätzlich arbeiteten wir mit anderen Produktteams von Microsoft und anderen Unternehmen (z. B. Entwickler von Datenbankanwendungen) zusammen, um ein effizientes und ordnungsgemäßes Verhalten mit AF-Festplatten zu gewährleisten.

Zusammenfassung

NTFS unter Windows 8 unterstützt dank der Funktionen, die von unseren Branchenpartnern zur Verfügung gestellt werden, effizient Festplatten mit sehr hoher Kapazität. Sie können sich darauf verlassen, dass Ihre Anforderungen an Speichermedien mit hoher Kapazität unter Windows 8 und mit NTFS vollständig erfüllt werden.

/Bryan