Festplatten, Dateisysteme und deren Grenzen aus der Sicht von WindowsNT

 

Konstruktion der Festplatte

Pysikalisch besteht eine Festplatte aus einer oder mehreren Scheiben, die beidseitig beschrieben werden k�nnen. Diese sind in sogenannte auch Spuren aufgeteilt, welche wiederum in Sektoren unterteilt sind. Der Datentransfer wird mit dem Schreib-/Lesekopf ausgef�hrt. Die allermeisten Festplatten besitzen einen Kopf pro Plattenseite (Scheibe). Ganz selten sind sehr schnelle Highend Platten, die 2 komplette Schreib-/Lese-Einheiten haben. Die K�pfe werden von einem Servomotor angetrieben, welcher wiederum vom sogenannten Platten-Kontroller angesteuert wird. Die Daten werden vom Kontroller aufgesplittet und auf alle K�pfe verteilt, dies ergibt eine erh�hte Datentransferrate. Deshalb werden die �ber einander liegenden Spuren auf den einzelnen Scheiben zu Zylindern zusammen gefasst.

Um die verschiedenen Aspekte von Festplattenleistung zu verstehen, lohnt es sich, einmal den Weg der Daten von der Festplatte in den Arbeitsspeicher des Rechners zu verfolgen. Die K�pfe fliegen in einer sehr niedrigen H�he auf einem Luftkissen �ber den Stapel von Magnetscheiben. Sie lesen und schreiben die Daten in Spuren, die konzentrische Kreise bilden und in mehrere Sektoren eingeteilt sind. Bei PC und Macintosh betr�gt die Sektorgr��e 512 Byte, Gro�rechner oder Workstations arbeiten aber auch vereinzelt mit anderen Blockgr��en. Je mehr Sektoren pro Sekunde unter den K�pfen `vorbeirotieren�, desto h�her die Daten�bertragungsrate. Dieser Aspekt der Festplattengeschwindigkeit h�ngt somit von der Drehzahl und von der Anzahl der Sektoren pro Spur, also der Datendichte ab. Da die �usseren Spuren des Mediums l�nger sind als die inneren, lassen sich auf ihnen bei gleicher Dichte mehr Sektoren unterbringen. Alle modernen Platten arbeiten nach dem sogenannten Zone-Bit-Recording-Verfahren: Sie teilen die Plattenoberfl�che in verschiedene Zonen ein, die mit jeweils unterschiedlicher Anzahl von Sektoren pro Spur formatiert sind. Auf den �usseren Spuren finden die meisten Sektoren Platz, so dass die Festplatte dort die h�chsten �bertragungsraten erzielen kann. Danach f�llt die �bertragungsrate entsprechend den Zonen mit verschiedener Sektorzahl treppenf�rmig ab. Wo welcher Sektor physikalisch auf der Platte zu finden ist, bleibt der Laufwerkselektronik und somit dem Plattenhersteller �berlassen. Die meisten Platten speichern Sektor Null auf dem �ussersten Zylinder aus �bereinander liegenden Spuren, die sich ohne Kopfbewegung erreichen lassen. Die folgenden Sektoren liegen auf dem n�chsten, weiter innen gelegenen Zylinder, bis hin zum letzten Sektor, der sich am inneren Rand des Plattenstapels befindet.

 

Die BIOS-Schnittstelle

In den PC werden die Festplatten �ber die sogenannte INT13h-Schnittstelle des BIOS eingebunden. Dabei werden Werte f�r Zylinder, K�pfe, und Sektoren der Platte eingetragen. Diese Werte werden dann vom Betriebsystem durch einen Treiber in absolute Werte f�r die einzelnen Sektoren umgesetzt. Diese INT13-Schnittstelle ist seit einigen Jahren durch ihre Einschr�nkungen ein �rgernis, da sie nur max. 1024 Zylinder verwalten kann. Die folgenden max. CHS-Werte (CHS = Cylinder, Head, Sector) sind m�glich:

1024 Zylinder x 256 K�pfe x 63 Sektoren x 512 Byte/Sekt. = 7,8 GB (8,455,716,864 Byte)

Damit die maximalen Werte ausgen�tzt werden k�nnen, haben alle aktuellen SCSI- und EIDE-Kontroller die Option eingebaut, eine sogenannte Geometrieumsetzung durch zu f�hren. Diese setzen dann die CHS Werte, der Platte in BIOS-kompatible um. Dabei werden bei den meisten die maximalen Werte f�r K�pfe und Sektoren (255/64) gesetzt, und nur die Anzahl Zylinder variert. Diese 7,8GB sind die maximale Gr�sse f�r eine Bootpartition ohne INT13-Extensions. Mit den mittlerweile bei allen BIOS� vorhanden INT13-Erweiterungen k�nnen aber gr�ssere Platten (bis 16 TB), durch das nun standardisierte LBA, korrekt ins System eingebunden werden. Die INT13-Extensions sind unter: Enhanced BIOS Services For Disk Drives nachzulesen. Damit funktioniert auch das Booten von Partitionen, die gr�sser als 7,8GB sind. Sehr wichtig dabei ist aber, dass die CHS- oder LBA-Werte im BIOS mit denen im Master Boot Record �bereinstimmen, sonst meldet das BIOS lapidar, "No Filesystem".

 

Die Datenschnittstelle

Aktuelle Festplatten werden bis auf wenige Ausnahmen nur noch mit SCSI- oder EIDE-Schnittstelle produziert. Bei einem neuen Rechner kann man davon ausgehen, dass das System vom Hersteller richtig zusammengestellt, entsprechend konfiguriert und ausgetestet wurde. Ganz anders sieht das aus, wenn man einen bestehenden, vielleicht schon etwas �lteren Rechner aufr�sten will. Dann k�nnen die Beschr�nkungen, die �ltere Versionen des PC-BIOS, des SCSI-Bus oder der IDE-Schnittstelle aufweisen, diverse H�rden darstellen.

 

IDE und EIDE

Die maximalen CHS-Werte f�r die urspr�ngliche IDE-Schnittstelle betragen 65,536 Zylindern, 16 K�pfen und 255 Sektoren. Um eine kompatible Kommunikation zwischen System-BIOS und IDE-Schnittstelle zu gew�hrleisten, musste der kleinste gemeinsame Nenner von 1024 Zylindern, 16 K�pfen und 63 Sektoren pro Spur angewendet werden. Daraus resultiert die ber�hmte 504 MB Barriere.

Als die IDE-Platten gr�sser als 500MB wurden, wurde von den Herstellern diese Barriere mit der Einf�hrung einer Logischen Blockadressierung mit 28 Bit umgangen. Dies setzte aber die Unterst�tzung durch den Kontroller und eine Erweiterung des PC-BIOS voraus. Damit wurden die Platten zwar adressierbar, aber nur mit einem vom Kontroller abh�ngigen Treiber. Die Bootpartition ist deshalb mit dieser L�sung weiterhin auf die 504MB beschr�nkt.

Eleganter ist die L�sung der sogenannten Diskmanager. Diese Software klinkt sich in den Master-Boot-Record (MBR) ein und wird jedesmal noch vor dem Booten irgendeines Systems geladen. Diese implementieren eine Erweiterung im BIOS, welche die Geometrieumsetzung vornimmt.

Heute werden ausnahmslos nur noch Kontroller und Platten hergestellt, die EIDE unterst�tzen. Diese erweiterte Spezifikation der Schnittstelle enth�lt die Geometrieumsetzung und LBA schon zum vornherein. Doch die n�chste Barriere ist schon in Sicht: Mit den 28Bit der LBA von IDE lassen sich maximal 137 GB ansprechen. Da wird EIDE in n�chster Zeit erneut nachgebessert werden m�ssen. Die ersten Vorschl�ge dazu sind bereits gemacht, siehe:

http://www.t13.org/technical/d99102r0.pdf
http://www.t13.org/technical/d99114r0.pdf
http://www.t13.org/technical/e00101r6.pdf

Ein grosses Problem war bis vor nicht all zu langer Zeit, dass praktisch alle IDE- und EIDE-Kontroller den ganzen Datentransport der CPU aufb�rdeten. aktuellen Modelle beherrschen aber inzwischen praktisch alle den sogenannten DMA-Transfer (Direct Memory Access) mittels PCI-Busmastering. Der Kontroller �bernimmt dabei kurzzeitig den PCI-Bus und schreibt oder liest die Daten direkt in den Speicher. Die Service Packs ab Version 3 zu NT 4.0 enthalten einen aktualisierten Treiber (atapi.sys) f�r die EIDE-Schnittstelle, der mit Intel-Chips�tzen Busmastering beherrscht. Eintr�ge in der Registy entscheiden dar�ber, ob er es tats�chlich nutzt. Das Windows-Programm Dmacheck nimmt die n�tigen Einstellungen auf Knopfdruck vor. Es findet sich auf der Service-Pack-3-CD oder in Microsofts Download-Bereich unter http://support.microsoft.com. Um das Busmastering vom Hand zu aktivieren, legt man HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\atapi\Parameters\DeviceX\ einen String-Wert namens `DriverParameter� an und tr�gt dort `DmaDetectionLevel = 0x1;� ein (X ist 0 f�r den prim�ren, 1 f�r den sekund�ren EIDE-Kanal). Mit dieser Einstellung aktiviert NT beim n�chsten Bootvorgang das Busmastering, falls die Hardware das unterst�tzt. Ob�s geklappt hat, verr�t der Eintrag `DMAEnabled� unter \HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\ScsiPort X, wobei X f�r den jeweiligen EIDE-Kanal steht. Falls NT sich weigert, den DMA-Zugriff zu aktivieren, obwohl die Hardware Busmastering unterst�tzt, l��t er sich durch den Wert 2 beim `DmaDetectionLevel� erzwingen. Besitzer von Boards mit Nicht-Intel-Chips�tzen sind derzeit darauf angewiesen, da� der Hersteller ihres Boards einen Busmaster-Treiber mitliefert. Wenn dies nicht der Fall ist, hilft unter Umst�nden die Website http://www.bmdrivers.com

Zwei grosse Nachteile von EIDE bleiben nach wie vor. Erstens das nicht vorhande Command-Queueing. H�ngen zwei Ger�te als Master und Slave an einem gemeinsamen IDE-Kanal, so kann der Rechner sie nur abwechselnd ansprechen. Bei vielen Boards blockieren zwei IDE-Ger�te einander selbst dann, wenn sie an zwei verschiedenen Kan�len angeschlossen sind, da prim�rer und sekund�rer Kanal sich dieselben Datenleitungen teilen. Das zweite Problem ist, dass der Bus immer nur so schnell betrieben wird, wie das langsamste angeschlossene Ger�t. Wenn z.B. eine schnelle Festplatte mit Ultra-DMA 2 und ein CDROM mit PIO 2 an einen Kanal geh�ngt werden, bricht die Leistung der Platte ein, aber vor allem steigt die Belastung der CPU, da mit PIO 2 dieser jedes Byte selber hin und her schaufeln muss.

 

SCSI

Im Gegensatz zu IDE verwenden die verschiedenen Hersteller von SCSI-Hostadaptern schon seit jeher eigene Treiber um die Sektoren auf den Disks absolut anzusprechen. Deshalb ist es fast immer n�tig die Platte LowLevel zu formatieren, wenn sie an einem Adapter eines anderen Hersteller betrieben werden soll. Zum Booten sind aber auch SCSI-Disks auf das BIOS angewiesen. Als die Disks gr�sser wurden, wurde deshalb auch bei SCSI die Geometrieumsetzung in den Hostadaptern eingef�hrt. Zu Beginn wurde z.B. von Adaptec 32H/63S verwendet, heute werden f�r diese sogenannten Drive-Mappings nur noch 256H/63S mit variabler Zylinderzahl verwendet.

Aktuelle SCSI-Adapter arbeiten alle als PCI-Busmaster (siehe oben). Der SCSI-Bus war von Anfang an f�r den quasi-gleichzeitigen Betrieb mehrerer Ger�te konzipiert. Ein Ger�t kann seine Daten�bertragungsphase unterbrechen und den Bus f�r andere Teilnehmer freigeben (disconnect), um sie dann sp�ter wieder aufzunehmen (reconnect). W�hrend eine Festplatte gerade ihren Puffer mit Daten f�llt, kann eine andere Daten zum Host �bertragen und umgekehrt. Unter g�nstigen Umst�nden erreicht der Gesamtdurchsatz des Systems die Summe der �bertragungsleistungen aller Einzelplatten. Er wird nat�rlich durch die H�chstgeschwindigkeit der verwendeten SCSI-Variante begrenzt.

Wer zwei Hochleistungsplatten � 18 MByte/s gleichzeitig mit vollem Durchsatz betreiben will, braucht dazu mindestens Wide Ultra SCSI. Umgekehrt gen�gt selbst f�r die schnellste derzeit erh�ltliche SCSI-Platte noch ein 8bittiger Ultra-SCSI-Hostadapter, wenn sie als einzige am Bus h�ngt. Die Mehrkosten, die ein Wide-Ultra-SCSI-Adapter direkt und indirekt (teurere Kabel, Platten und Adapterstecker) verursacht, kann man sich f�r einen Arbeitsplatzrechner mit nur einer Festplatte also getrost sparen.

Grosse Vorteile von SCSI sind die Abw�rtskompatibilit�t und die Universalit�t der Schnittstelle. SCSI-Ger�te k�nnen (korrekte Verkabelung vorausgesetzt) miteinander am gleichen Hostadapter ohne Leistungseinbusse betrieben werden. Dabei wird jedes Ger�t mit der entsprechenden Geschwindigkeit angesteuert. Dies gilt nicht f�r die neuesten LVD (Low Voltage Differential) Platten, diese fallen auf Ultra Wide SCSI zur�ck wenn sie mit Nicht-LVD-Ger�ten gemixt werden.

Aufteilung einer PC-Festplatte (Partitionierung)

Eine Festplatte in einem INTEL basierenden PC kann max. 4 sogennante prim�re Partitions enthalten. M�ssen mehr als 4 Partitions auf einer Platte untergebracht werden, muss eine prim�re durch eine sogenannte Extended Partion ersetzt werden. In dieser k�nnen dann weitere Unterpartitions (logische Laufwerke in Microsoft Sprache) angelegt werden. Dabei wird mit der sogenannten PartitionID gleich auch das zu verwendende Dateisystem festgelegt. Nebenstehend eine Auswahl der gebr�uchlichsten Dateisysteme. Unter: http://www.win.tue.nl/~aeb/partitions/partition_types-1.html findet man alle Partitionentypen aufgelistet.

F�r das Erstellen von Partitions gibt es eine Menge von Software. Bei DOS und Win9x basierenden Betriebsystemen kommt normalerweise das Tool fdisk zum Einsatz. Die neueste Version ab Win95 OSR 2 k�nnen die neuen FAT32 (mit oder ohne die IN13 Erweiterung zu verwenden) erstellen. Unter WindowsNT werden Partitons entweder mit dem Setup (NTFS maximal 4GB �ber den Umweg FAT) oder mit dem Tool windisk erstellt. Um Festplatten mit verschiedendsten Dateisystemen zu partionieren, wird aber meistens spezielle Software wie z.B. Partiton Magic notwendig. Diese ist auch n�tig um ohne installiertes WindowsNT, NTFS-Partitions �ber 4 GB Gr�sse zu erstellen.

 

Das FAT Dateisystem

Dieses Dateisystem wurde mit MS-DOS eingef�hrt. FAT steht f�r File Allocation Table. Weil es urspr�nglich nur als 12Bit System ausgelegt wurde, stiess es sehr schnell an seine Grenzen. Der erste Nachfolger war FAT16, dies war nur von kurzer Dauer, weil es wie FAT12 ebenfalls maximal 32 MB grosse Partitions zuliess, kurz danach wurde mit DOS 3.31 vor �ber 10 Jahren das FAT16 BIGDOS Format eingef�hrt, das bis zu 2 GB grosse Partitions zul�sst. Dies wurde mit dem Nachteil von bis zu 64 kB grossen Clustern (kleinste, logische Einheit) erkauft. Mit Windows95 wurden dann mittels eines Kunstgriffes auf dem bestehenden Format endlich auch lange Dateinamen m�glich.

Mit MS-DOS und dem FAT System wurde auch die heute noch g�ltige Partitiontabelle im Master Bootrecord mit seinen maximal 4 Eintr�gen eingef�hrt. Deshalb wurde die sogenannte Extended Partition eingef�hrt, in der eine weitere Partitiontabelle mit beliebig vielen Eintr�gen liegt.

Erst 1997 wurde dann mit Windows95 OSR 2 die FAT32 Partition aktuell. Diese unterst�tzt als erste die INT13 Erweiterungen direkt. Weitere angenehme Neuerungen sind die Clustergr�sse von 4 kB und die Unterst�tzung von Unicode Zeichens�tzen. Siehe MS-Kb Q154997

FAT ist ein einfaches schnelles Dateisystem ohne grossen Overhead. Mehre bedeutende Nachteile m�ssen dabei erw�hnt werden. Der wichtigste ist designbedingt: Alle Dateien und Verzeichnisse werden in einer einzigen Tabelle (der FAT) am physikalischen Anfang der Partition gehalten. Als Sicherheit wird st�ndig eine Kopie dieser Tabelle mitgef�hrt, leider liegt diese aber auf der Platte gleich anschliessend an die erste FAT. Durch die nicht vorhandenen Sicherheitsfunktionen hat das Betriebssystem sehr direkten Zugang zu diesem Dateisystem. Dabei kann es passieren, dass bei einem Absturz, Stromunterbruch oder sonstigen unvorhergesehenen Problemen, mit Schreiboperationen, die f�r Datenbereiche bestimmt waren, auf die FAT geschrieben wird. Weil nun aber beide FAT’s gleich hintereinander liegen, sind in so einem Fall schnell beide Tabelllen �berschrieben. Damit wird eine solche Partition unbrauchbar, obwohl noch alle Daten enthalten sind, nur kann man nicht mehr erkennen wie diese organisiert sind.

Ein weiterer Nachteil sind die nur sehr rudiment�r vorhandenen Sicherheitsmechanismen. Eine Datei oder ein Verzeichnis kann nur mit den Attributen Archiv, System, versteckt und schreibgesch�tzt versehen werden. Auf Benutzerstufe besteht �berhaupt keine Zugriffsrechte.

 

Das NTFS Dateisystem

Mit WindowsNT wurde vom Microsoft versucht, die Probleme die man sich mit FAT eingehandelt hatte nicht zu wiederholen. Dies scheint aus heutiger Sicht auch gelungen zu sein, was allerdings einiges an Leistung bedarf. Wie beim neuen FAT32 System verwendet NTFS kleinere logische Einheiten, sogenannte Clusters. Diese k�nnen beim formatieren des Laufwerks mit:

format x: /FS:NTFS /A:<clusterg�sse> festgelegt werden. Man sollte aber bedenken, dass Clustergr�ssen �ber 4 KB bedeutende Nachteile aufweisen. So kann eine so formatierte Partition von Defragmentierungs-Software nicht mehr defragmentieren. Weiter kann die NTFS-Dateikompression nicht mehr verwendet werden.

Im Gegensatz zu anderen Filesystemen werden bei NTFS alle Verwaltungsdaten in sogenannten Metafiles gehalten. Nebenstehend ein Auszug dieser Dateien.
Diese k�nnen mit dem Kommando: dir /ah <Dateiname> angesehen werden. Im ganzen sind 11 dieser Dateien vorhanden. Mit dieser Technik ist es m�glich, bei Problemen wie bei einer professionellen Datenbank, einen genau definierten Ausgangszustand wiederherzustellen. Mehr �ber das NTFS-Dateisystem findet man unter folgenden Links:
http://www.winnetmag.com/Articles/Index.cfm?ArticleID=118
http://www.winnetmag.com/Articles/Index.cfm?ArticleID=3455
http://www.winnetmag.com/Articles/Index.cfm?ArticleID=4538
http://www.winnetmag.com/Articles/Index.cfm?ArticleID=4711
http://www.winnetmag.com/Articles/Index.cfm?ArticleID=4875
http://www.winnetmag.com/Articles/Index.cfm?ArticleID=478
http://www.winnetmag.com/Articles/Index.cfm?ArticleID=3864  Inside the Cache Manager

Nachfolgend eine Beschreibung einiger Metadaten Files:

 

Die Master File Table

Die Master File Table ist die Kommandozentrale von NTFS. Sie enth�lt alle Angaben �ber die Dateien und Verzeichnisse in einem Laufwerk, inklusive der Metafiles. Die MFT ist in mehrere logische Einheiten, die als Records bezeichnet werden, aufgeteilt. Darin sind Angaben wie Sicherheitseinstellungen, Attribute und nat�rlich der Ort, an welchem die Datei oder das Verzeichnis auf der Platte abgelegt ist. Die MFT verwaltet sich selber auch als Datei, dadurch kann die Gr�sse leicht den Erfordernissen angepasst werden.

Die $MFTMIRR Datei ist eine Sicherheitsmassnahme. Sie enth�lt eine Kopie der ersten 16 Records der MFT, sie wird von NTFS in der Mitte der Disk gespeichert. Die MFT dagegen liegt in der N�he des Laufwerkanfangs.

Der Zugriff auf die MFT spielt eine entscheidende Rolle in der Zugriffszeit bei einem NTFS Laufwerk. Da die MFT selber eine Datei ist, kann sie wie alle anderen Dateien auch, fragmentiert werden. Um dies zu Verhindern, wird bei einem neuen NTFS Laufwerk eine gewisse Anzahl Clusters (Standard: 12,5 %) um die MFT herum freigehalten. Dies funktioniert aber nur solange die Disk nicht bis an die Grenzen voll ist, dann werden diese Clusters vom System quasi wieder eingezogen. Auch wenn extrem viele Dateien gespeichert werden und diese Zone nicht mehr f�r alle MFT-Eintr�ge reicht, entsteht Fragmentierung, da diese Eintr�ge in anderen Bereichen des Laufwerks gespeichert werden m�ssen.

Ungl�cklicherweise l�sst NTFS keine Defragmentierungs-Software an die Meta Files heran. Die einzige M�glichkeit diese zu defragmentieren scheint aus heutiger Sicht das Imaging des ganzen Laufwerks mit einer Software wie Norton Ghost oder Winimage zu sein, die ihre Images auf Dateibasis erstellen. Die nachstehenden Bilder zeigen links eine Disk die mehrmals mit Diskeeper Version 3 defragmentiert wurde! Rechts das Resultat nach einem Image und dem zur�ck spielen mit Ghost Version 5.1c SP1. Ghost scheint die weitaus effektivere Defragmentierung zu sein, hat aber offensichtlich auch einen wichtigen Nachteil: Der freigehaltene Platz f�r die MFT ist verschwunden. Daraus folgt, dass wenn geklont wird, dieses regelm�ssig wiederholt werden sollte. Dieses Verhalten von Ghost wird noch n�her untersucht.

 Eine andere L�sung w�re ein regul�res Backup mit dem Formatieren des Laufwerks!

 

Verzeichnisse

Offenbar werden unter NTFS Verzeichnisse �hnlich wie Files abgelegt. Das beeinflusst die Leistung von NTFS ebenfalls. Wie auf den obigen Bildern ersichtlich, sind die Verzeichnis-Eintr�ge schnell �ber die ganze Disk verteilt. Diese Problematik scheint momentan nur mit Diskeeper in der Version 4 (wird noch untersucht) in den Griff zu kriegen sein. Unter: winntmag wird eine L�sung mit kopieren vorgeschlagen, dies scheint aber sehr umst�ndlich zu sein.

 

NTFS Logfile

In der Datei $LOGFILE, die je nach Partitiongr�sse 2 – 4 MB gross ist, werden alle �nderungen an Dateien und Verzeichnissen laufend protokolliert. Die Eintr�ge in dieser Datei enthalten sogenannte redo und undo Information. Wenn ein Absturz passiert oder sonst eine Inkonsistenz auftaucht, benutzt das chkdsk Programm diese Datei um einen definierten Zustand herbei zu f�hren. Da WindowsNT mit einem Schreibcache arbeitet ist diese Information sehr wichtig.