Festplattengeometrie

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Unter der Geometrie einer Festplatte versteht man die Aufteilung der Festplatte in Zylinder, Köpfe und Sektoren.

Prinzip[Bearbeiten]

Festplattengeometrie.PNG
Magnetooptische Aufnahme der Magnetisierungen einzelner Bits auf einem Ausschnitt eines Festplatten-Platters.

Die Daten auf Festplatten (und auch Disketten) werden in kleine Abschnitte – sogenannte Datenblöcke oder Sektoren – unterteilt, die eine konstante Größe haben (meist 512 Bytes oder ein Vielfaches, etwa 4096 Bytes). Dazu werden die Seiten aller Scheiben einer Festplatte durchnummeriert. Während Disketten maximal zwei Seiten aufweisen, eine Vorder- und eine Rückseite, haben Festplatten fast immer mehr als eine Platte mit jeweils zwei Seiten (→Plattenstapel, siehe Physischer Aufbau einer Festplatte). Jede Seite hat einen eigenen Schreib-/Lesekopf, daher spricht man von der Anzahl der Köpfe. Die Oberflächen wiederum werden in konzentrische kreisförmige Spuren und diese in die Anzahl der Sektoren pro Spur unterteilt. Die jeweiligen einzelnen Spuren (eines jeweiligen Kreisdurchmessers) aller Plattenoberflächen des Plattenstapels werden als sogenannte Zylinder zusammengefasst.

Wenn man so will, entsteht dadurch eine Art Koordinatensystem, mit dessen Hilfe man jeden Datenblock durch seine Kopf-, Zylinder- und Sektornummer identifizieren kann. Die Kopfnummer entspricht dabei der Höhe, die Zylindernummer dem Radius und die Sektornummer dem Winkel eines Objekts in einem Zylinderkoordinatensystem. Die Motivation für diese Definition rührt daher, dass sämtliche Köpfe auf gleicher Position (bzgl. Radius) auf dem Aktuator fixiert sind und alle Spuren eines Zylinders (über alle Platten) zu einem bestimmten Zeitpunkt unter den Köpfen stehen und somit gleichzeitig ansprechbar sind.

Da die Spuren mit steigendem Radius auch entsprechend länger werden, werden sie ggf. dementsprechend in mehr Blöcke unterteilt. (Dadurch wird die Aufzeichnungsdichte der Spuren angeglichen – und somit „vergeudeter“ Platz auf den äußeren Spuren vermieden.) Bei Disketten ist dieses Verfahren meistens nicht üblich.

Um die Verwaltung der Datenblöcke nicht zu komplex werden zu lassen, werden in der Regel mehrere benachbarte Spuren zu Zonen zusammengefasst. Jede Zone ist in eine gewisse Anzahl Sektoren unterteilt, die von Zone zu Zone fällt. (Normalerweise beginnt man die Zählung der Zylinder bzw. Zonen am äußeren Rand.)

Die konkrete Verteilung der Blöcke auf die Oberflächen, Zonen, Zylinder und Sektoren wird als Geometrie der Festplatte (bzw. Diskette) bezeichnet.

Cylinder, Head, Sector[Bearbeiten]

Um nun einen physikalischen Datenblock auf diese Weise zu adressieren, benötigt man drei Werte, auch CHS-Werte genannt: Cylinder, Head (Kopf) und Sector. Bei den ersten Festplatten um 1970 waren die einzelnen Platten austauschbar, hatten nach späteren Maßstäben eine einfache Geometrie und eine geringe Datendichte. Die Firmware des Computers oder das Betriebssystem hatte sich um die Verwaltung des zur Verfügung stehenden Speicherplatzes zu kümmern und sollte die Zugriffe entsprechend dieser Geometrie optimieren. Doch Festplatten wurden immer kompakter, die Datendichte höher, und die Geometrie komplexer.

Mitte der 1980er Jahre wurde daher eine neue Schnittstelle für Festplatten entwickelt: im Auftrag von Compaq entwickelte Western Digital ab 1984 eine Integrated Drive Electronics (kurz IDE) getaufte Schnittstelle, die einen internen Controller zur Kommunikation zwischen Betriebssystem und Festplatte vorsah. Diese Schnittstelle wurde 1989 durch die ATA-Spezifikation „ATA-1“ zum Industriestandard. Fortan kümmerte sich die Firmware des Festplattencontrollers als interne Logik um die Optimierung der Schreib- und Lesezugriffe.

Die gemeldete Geometrie hatte aber nicht zwangsweise etwas mit der realen Geometrie der Platten zu tun, doch blieben dadurch die Firmware der Computer (das BIOS beim IBM-PC) und die Betriebssysteme kompatibel. Die bei IDE (bzw. ATA) verwendete CHS-Adressierung sieht maximal 65.536 Zylinder (0-65535), 16 Köpfe (0-15) und 255 Sektoren pro Spur (1-255) vor. Die sich daraus ergebende maximale Speicherkapazität von 136.902.082.560 Bytes oder 137 GB (128 GiB) wurde 2001 mit Speicherkapazitäten von 160 GB und mehr bei Festplatten gebrochen.[1]

Logical Block Addressing[Bearbeiten]

Bereits 1996 wurde mit der Spezifikation „ATA-2“ eine neue Adressierungsmethode eingeführt, die Datenblöcke fortlaufend durchnummeriert und über ihre Blocknummern adressiert: das Logical Block Addressing-Verfahren (kurz LBA). Dadurch muss sich das Betriebssystem nicht mehr um die physische Organisation der Blöcke auf dem Datenträger kümmern, die ohnedies nicht mehr der Realität entsprach und mit zu vielen Problemen behaftet war.[2]

Anfangs war LBA mit 28 Bits (“LBA-28”; 228 ergibt 268.435.455 Blöcke) jedoch ebenfalls mit 137 GB (128 GiB, bei damals üblichen 512 Bytes je Block) begrenzt. Erst mit ATA/ATAPI-6 aus dem Jahr 2000 wurde die Logical Block-Adresse auf 48 Bits erhöht (“LBA-48”; 248 erlaubt bei 512 Bytes je Block 128 PiB, das sind 134 Millionen GiB) und machte somit weitere Blöcke adressierbar und damit auch größere Festplatten zur Gänze nutzbar. Ohne LBA-48 können nur die ersten 128 GiB genutzt werden.

Als Vorteil der ATA-Spezifikation zeigte sich die Verwendung eines Controllers, der den physischen Aufbau nicht nur kaschiert und dadurch z. B. moderne Solid-State-Disks (SSDs) auch für elektronische Geräte, die eigentlich nur mit Festplatten umgehen können, nutzbar macht – er ermöglicht überdies Leistungsverbesserungen, die ohne Controller nicht möglich wären: z. B. die interne Verwaltung defekter Blocke (Defektmanagement), S.M.A.R.T., das Wear leveling bei Flash-Speicher, Garbage Collection und Over-Provisioning[3] bei SSDs sowie Acoustic Management bei Festplatten. Die verwendeten Algorithmen gelten jedoch als Betriebsgeheimnis der einzelnen Hersteller.

Kompatibilität[Bearbeiten]

CHS-Adressierung wird in aller Regel heute nicht mehr benutzt. Aus Gründen der Kompatibilität unterstützen Festplatten jedoch weiterhin beide Adressierungsverfahren. Um Kompatibilität mit bestehenden Systemen (Geräten, Betriebssystemen) zu erreichen, wird oft sogar eine logische 512-Byte-Blockgröße simuliert, die der Controller (die Firmware) der Festplatte in die physische Blockgröße von 4.096 Bytes (4 kB, kurz „4k“) „einpasst“. Wenn das System sich nicht nach der „4k-Blockgröße“ ausrichtet, was immer dann der Fall ist, wenn ein System die 4k-Problematik nicht kennt, so kommt es unweigerlich zu Performanceeinbußen. Bei älteren Geräten und Betriebssystemen kann jedoch durch manuelle Formatierung eine Speicherausrichtung (auf englisch “4k block size alignment” bezeichnet) erzielt werden. Moderne Betriebssysteme (ca. seit 2010) richten Partitionen und Dateisysteme automatisch auf ein Vielfaches von 4.096 Bytes aus, auch auf Festplatten mit 512-Byte-Blöcken. 4k-Blockgrößen werden von Festplattenherstellern auch Advanced Format bezeichnet, weil sich durch die gestiegene Blockgröße auch die Datendichte steigern lässt, was wiederum größere Festplattenkapazitäten ermöglicht.

Die Abbildung der CHS-Adresse auf die entsprechende LBA-Adresse ist genormt, sodass ein Wechsel des Adressierungsverfahrens nicht zwingend eine Neuformatierung bedeutet und neue Festplatten kompatibel zu alten Computern und Betriebssystemen bleiben. Bei der CHS-Adressierung können jedoch maximal auf die ersten 128 GiB (137 GB) zugegriffen werden und es kommt zu Problemen, wenn eine Partition über diese „Grenze“ hinweg definiert ist.

Beim Wechsel von LBA-48 (248) zu LBA-28 (nur 228) besteht jedoch die Gefahr, Daten ungewollt zu überschreiben, wenn eine Partition über die 128-GiB-Grenze hinaus reicht und mittels LBA-28 angesprochen wird.[4] Der Grund hiefür ist, dass jeder Block mit seiner Nummer adressiert wird. Der nächste Block hat also die Blocknummer des Blocks davor +1. Bei einer Partition, die das 28-Bit-Limit übersteigt (was z. B. immer dann der Fall ist, wenn die Partitionierung einer >137 GB-Festplatte auf einem Gerät mit LBA-48-Unterstützung erfolgte), wird aus dem Block nach Blocknummer 268.435.455 (der größtmöglichen 28-Bit-Blocknummer) nicht Blocknummer 268.435.456, sondern Blocknummer 0. Dieser Effekt wird Ganzzahlüberlauf (oder englisch wrapping) genannt. Wird dann gerade eine Datei gelesen, so werden falsche Daten gelesen und es kommt im besten Fall zu einem einfachen Fehler in der die Daten lesenden Anwendung, der eine Fehlermeldung erzeugt. Wird jedoch gerade eine Datei geschrieben, so überschreibt das System irrtümlich die ersten Blöcke der Festplatte (meistens ist der Bootsektor als Block 0 davon betroffen) und zerstört somit unwiederbringlich wichtige Daten.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Andries Brouwer: History of BIOS and IDE limits. In: Large Disk HOWTO. 1. November 2004, abgerufen am 26. Februar 2013 (englisch).
  2. Hard Drive Size Limitations and Barriers. (page 2) The Basics. DEW Associates Corporation, 2003, abgerufen am 26. Februar 2013 (englisch).
  3. SSD Over-Provisioning mit hdparm. In: Thomas Krenn Wiki. Abgerufen am 27. Februar 2013.
  4. Windows 137GB Capacity Barrier. 48-bit Logical Block Addressing Support for ATA, Serial ATA or ATAPI Disc Drives, Version 1.0. Seagate Technology LLC., 7. März 2003, S. 6, abgerufen am 27. Februar 2013 (PDF; 389,5 KiB, englisch): „There is a HIGH RISK OF DATA LOSS if a partition on an ATA drive is greater than 137GB and 48-bit addressing support is not installed.