Höhere Festplattengeometrie

Die Exchange-Datenbank

Exchange Server speichert seine Daten in einem oder mehreren Postfachspeichern. Sie bestehen in letzter Instanz aus sehr großen Dateien, die auf der oder den Festplatten abgelegt werden müssen. Auf Grund ihrer Größe sind sie besonders von Fragmentierung betroffen, da sie allein von der Größe her nicht auf eine einzelne Spur passen. Durch fortwährendes Einfügen und Löschen schlängeln sie sich trotz aller softwarearchitektonischer Vorkehrungen sehr schnell quer über die vorhandenen Platten. Allerdings führt dies nicht zu derartigen Leistungseinbußen, wie man das vielleicht auf Grund des Gesagten erwarten würde. Eine Defragmentierung führt zwar zu einer gewissen Leistungsverbesserung, aber der Gewinn hält sich in Grenzen.

Der Grund hierfür liegt in der Architektur und Arbeitsweise der zugrunde liegenden Jet-Datenbank. Ein Postfachspeicher, der nichts anderes ist als eine Jet-Datenbankinstanz, ist viel zu groß, um als Ganzes verarbeitet zu werden. Stattdessen weiß Jet, wo in der Datei bestimmte Informationen zu finden sind, und liest und schreibt immer nur kleine Teile innerhalb der Datei. Zu diesem Zweck sind sämtliche Daten in 4 KByte große Fragmente zerlegt. Jet liest die Daten in diesen Fragmenten.

In einer Umgebung mit vielen parallel zugreifenden Benutzern muss Exchange mehr oder weniger willkürlich auf die verschiedensten Teile der Datei und damit der Festplatte zugreifen. Die festplatteneigenen Optimierungen wie Defragmentierung oder der eingebaute Chipcache stoßen dabei sehr schnell an ihre Grenzen. Exchange und Jet weisen deshalb eigene Strategien auf, um die Festplattenverwendung zu optimieren.

Trotzdem sollte man nicht auf Defragmentierung verzichten. Auch wenn Exchange ganz gut mit einer fragmentierten Platte zurechtkommt, gilt das weniger für das darunter liegende Betriebssystem. Eine gelegentliche Defragmentierung ist aber ausreichend.

Sectoralignment

Ein weiterer die Leistung beeinflussender Faktor im Bereich Festplattengeometrie ist das so genannte Sectoralignment. Aus historischen Gründen adressieren Festplatten auch heute noch 63 Sektoren auf jeder Spur. Eine derartige virtuelle Adressierung wird dann intern von der Festplattensteuerlogik auf die reale Geometrie umgesetzt. Die erste Spur war ursprünglich für den Master Boot Record vorgesehen, der die Festplattenaufteilung und Bootcode für das Betriebssystem enthält.

Festplattengeometrien arbeiten allerdings heute in ganz anderen Dimensionen als diese virtuelle Adressierung. Der MBR nimmt deshalb nicht mehr genau eine Spur ein. In der Realität bedeutet dies heute nur, dass die ersten 63 Sektoren der ersten Spur für den MBR reserviert sind. Das Sectoralignment soll dafür sorgen, dass die Grenzen der Datenblöcke, die üblicherweise vom Betriebssystem gelesen werden, und die realen Spurgrenzen aufeinander fallen. Andernfalls müsste in regelmäßigen Abständen zum Lesen eines Datenblocks auf zwei verschiedene Spuren zugegriffen werden. Hierzu wird eine Anzahl von Sektoren größer als 63 am Anfang der Platte für den MBR reserviert, der Rest bleibt entsprechend ungenutzt.

Exchange und Jet verwenden, wie gesagt, eine Blockgröße von 4 KByte. Das Dateisystem NTFS erlaubt die Festlegung der verwendeten Blockgröße. Der Standardwert liegt aber, nicht ganz zufällig, ebenfalls bei 4 KByte. Die normale Größe eines Sektors beträgt 512 Byte. Wenn jetzt beispielsweise eine Festplatte real 128 Sektoren pro Spur hat, dann müsste das Betriebssystem bei jedem sechzehnten Zugriff doppelte Arbeit verrichten, weil jeder sechzehnte Block über die Spurgrenze kippt.

Allgemein gilt von den meisten Herstellern die Empfehlung, 64 Sektoren für den MBR zu reservieren, da üblicherweise mit Zweierpotenzen als Anzahl von Sektoren pro Spur gearbeitet wird. Allerdings werden heute beim Design von Festplatten viele Tricks angewandt. Da beispielsweise bei einer gleichmäßigen Verteilung von Sektoren außen viel mehr Moleküle als notwendig zur Speicherung genützt würden, zerfällt eine Spur beim so genannten Zoned Bit Recording außen in mehr Sektoren als innen. Der Wert muss dann für alle verwendeten Sektorzahlen passen.

Im Einzelfall sollte die reale Plattengeometrie anhand der Produktdokumentation oder durch eine Anfrage beim Hersteller abgeklärt werden. Häufig werden in größeren Umgebungen spezialisierte Speicherlösungen verwendet, die gerade auch im Hinblick auf den Einsatz mit Exchange entwickelt wurden. In diesen Fällen gibt es häufig vom Hersteller bereits eine ausführlichere Dokumentation zum Thema.

Schließlich hat man auch noch die pragmatische Möglichkeit, verschiedene Konfigurationen an einem Testsystem mit repräsentativer Hardware zu testen und Leistungsmessungen beispielsweise mit JetStress durchzuführen. JetStress ist ein spezialisiertes Hilfsprogramm von Microsoft zur Leistungsmessung der Exchange-Datenbank. Es kann von Microsofts Exchange-Seiten heruntergeladen werden.