Bents Blog

 

Ein IT Blog mit Themen aus dem Windows Server Umfeld.

Windows Server FAQ – effektive Konfiguration und Partitionierung von Datenträgern

Mein heutiger Beitrag soll sich als eine Art „Best Practices„-Artikel verstehen und ist dem Thema der Konfiguration von Volumes und deren Partitionierung gewidmet. Dabei fließen meine Erfahrungen aus der Konfiguration unterschiedlichster Systeme ein. Diese stellen ganz sicher nicht das absolute Non-Plus-Ultra (gibt es das überhaupt?) dar, sollen aber als Hilfestellung und zum besseren Verständnis des Lesers dienen. Obwohl ich versuche, dass Thema von Seiten der Hardware so allgemein wie nur möglich zu beleuchten, beschränke ich mich bei den Betriebssystemen auf die Serverversionen 2003, 2008 und 2008 R2.

Hardware

Wird ein neuer Server beschafft, so steht vorher fest (zumindest sollte es so sein), für welchen Einsatz das Gerät genutzt werden soll. Je nach dem, ob das System als bspw. Domänencontroller, Datenbank-, Mail- oder Kommunikations-, Backup-, Fileserver oder Virtualisierungshost verwendet wird, ergeben sich unterschiedliche Anforderungen an die Geschwindigkeit, Kapazität und Sicherheit der verwendeten Speichersysteme. In größeren Umgebungen stellt sich außerdem der Frage nach dem Speicherort der Bewegungsdaten, fast immer kommen hier zentrale Lösungen (SAN = Storage Area Network) anstelle der lokalen, dezentralen Datenspeicherung zum Einsatz. Allerdings kommt bei beiden Szenarien, egal ob in Speichersystemen im SAN oder lokalen Festplatten im Server, eine seit mehr als 15 Jahren existierende, bewährte Technologie zur Schaffung von Redundanzen und/oder Performance zum Einsatz:

RAID-Technologie

Hinter der Abkürzung verbirgt sich Redundant Array of Independent Disks, also ein Verbund unabhängiger Laufwerke zum Zwecke der Erhöhung der Datensicherheit bei möglichem Ausfall eines (oder mehrerer) Laufwerk(e). Die Umsetzung der Technologie erfolgt durch den Einsatz eines Controllers (im Storage wie auch im Server), welcher im Prinzip eine Art Virtualisierung für die nächst höhere Schicht darstellt. An einen RAID-Controller können immer mehrere Festplatten angeschlossen werden (direkt via SATA, SCSI, SAS oder über sogenannte Enclosures), die von selbigem genutzt, verwaltet und überwacht werden. Der Verbund der angeschlossenen Platten wird wiederum als logisches Laufwerk (LUN = Logical Unit Number) präsentiert, auf das ein System Daten lesen und schreiben kann. Der Controller verteilt dabei die zu schreibenden Datenblöcke durch Nutzung unterschiedlicher Mechanismen (auch in Kombination) auf die angeschlossenen Platten. Diese Mechanismen werden als RAID-Level bezeichnet, die bei Wikipedia sehr detailliert erklärt werden. Moderne RAID-Controller bieten eine Fülle an Funktionen, die für eine zusätzliche Sicherheit der Daten und höhere Perfomance sorgen:

  • Batterie-gepufferter Cache (BBU – Battery Backup Unit): höhere Schreibleistung (Write Through vs. Write Back), da der Cache-Inhalt auch bei Stromausfall bestehen bleibt
  • Online-RAID-Level-Migration: setzt einen BBU voraus, ermöglicht im Betrieb des Servers einen Wechsel des RAID-Levels
  • HotSpare: Definition von Reservelaufwerken, die bei Ausfall einer Festplatte automatisch im Verbund benutzt werden
  • HotSwap: Austausch von Festplatten im Betrieb des Servers
  • Monitoring: Überwachung der Festplatten mit Warnungen (SNMP, SMTP) bei (möglichen) Ausfällen

Selbstverständlich kann das nur ein Ausschnitt gängiger Methoden und Funktionen sein, da hier die Hersteller immer wieder neue Features hinzufügen.

    Unflexible Konfiguration

    Bei der initialen RAID-Konfiguration eines Servers begleiten den Administrator oftmals Assistenten, die leider in der automatischen Routine eine sehr unflexible LUN-Einrichtung vornehmen. Im folgenden Beispiel betrachten wir einen Server mit 3 physischen Platten, die in einem RAID 5 konfiguriert sind. Im Standardfall konfiguriert der Assistent ein logisches Laufwerk LUN 0:

    Dieses logische Laufwerk wird von Windows nun als ein Datenträger 0 erkannt und genutzt. Kein Problem, sofern auf diesem Datenträger auch nur eine Partition verwendet wird. Abhängig von der Serverrolle bzw. dessen Funktion ist es aber durchaus sinnvoll oder gar notwendig, unabhängig vom Performance-Bedarf, weitere Partitionen für Daten zu nutzen und diese von der Systempartition zu trennen. Eine solche Konfiguration erscheint dann in der Datenträgerverwaltung wie im folgenden Bild:

    Problematisch wird diese Konfiguration bei steigendem Speicherbedarf und einer damit verbundenen Erweiterung der Partitionen. Wird eine weitere Festplatte dem RAID-Verbund hinzugefügt, so vergrößert sich dessen Nettokapazität, die vorhandene LUN kann erweitert werden:

    In der Datenträgerverwaltung erscheint der vergrößerte Bereich des logischen Laufwerks als nicht zugeordneter Bereich, der für die Erweiterung der bestehenden Partitionen zur Verfügung steht:

    Das Problem wird schnell klar: In dieser Konstellation lässt sich zur Laufzeit nur die (letzte) Partition mit dem Laufwerksbuchstaben [D:] erweitern, um aber das Systemvolume [C:] zu erweitern, muss das System heruntergefahren und mit Hilfe von Werkzeugen von Drittanbietern die Datenpartition erst verschoben werden.

    Flexible Konfiguration

    Wesentlich effektiver ist es, bereits bei der Konfiguration des RAID Controllers die zukünftigen, benötigten Partitionen des Servers bei der Einrichtung der logischen Laufwerke zu beachten. Im Bezug auf die benötigte Performance der Anwendungen eines Servers ist es sogar notwendig unterschiedliche RAID-Level für einzelne logische Laufwerke zu definieren (bspw. Datenbankserver: Systemvolume RAID 1, Datenbankvolume RAID 5, Log-Volume, RAID 10). In meinem Beispiel bleibe ich bei der gleichen physischen Festplattenkonfiguration:

    Hier wurden für zwei benötigte Partitionen (System und Daten) jeweils eine LUN definiert, die sich nun in der Datenträgerverwaltung als Datenträger 0 und Datenträger 1 präsentieren:

    Erweitert man nun bei höherem Speicherplatzbedarf die Nettokapazität des RAID Verbundes durch Hinzufügen einer weiteren Festplatte, so kann dieser Speicher je nach Bedarf den einzelnen logischen Laufwerken hinzugefügt werden:

    Der Vorteil besteht nun darin, dass in der Datenträgerverwaltung die Partitionen auf den vergrößerten Datenträgern einzeln erweitert werden können:

    Sonderfall virtuelle Umgebungen

    Auch wenn in virtuellen Umgebungen für Virtuelle Hard Disks (VHD) keine RAID-Level definiert werden, so empfiehlt es sich, jede VHD als eine eigene LUN zu betrachten. Für das obige Beispiel sollten 2 virtuelle Disks definiert werden, eine für das Systemvolume, die zweite für das Datenvolume. Dadurch erreicht man nicht nur eine höhere Flexibilität bei der späteren Volumeverwaltung innerhalb der virtuellen Maschine, sondern kann im Bezug auf bessere Performance bspw. das VHD-File des Datenvolumes auf ein anderes, schnelleres Volume des Virtualisierungshosts verschieben.

    Software

    Die Verwendung der oben beschriebenen RAID-Technologie existiert seit geraumer Zeit auch als Softwarelösung innerhalb des Betriebssystems – und das durchaus Plattform-übergreifend. Microsoft bietet hier ebenfalls Möglichkeiten die Datensicherheit oder auch die Performance durch Software-Funktionen zu steigern. Dabei werden alle Vorgänge, die sonst der RAID-Controller verarbeitet, auf die Ebene des Betriebssystems und dadurch auf den Prozessor (CPU) verlagert. Der Vorteil des nicht benötigten (möglicherweise proprietären) Hardware-RAID-Controllers hebt sich durch die stärkere Belastung der System-Ressourcen (CPU, Speicher, Systembus) schnell auf. Die Software-RAID-Funktion wird nach meinen Erfahrungen im Windows-Umfeld in der Praxis so gut wie nie genutzt, erschwert sie doch die gesamte Datenträgerverwaltung zunehmend.

    Partitionierung der Datenträger

    Die Partitionierung der Datenträger ist für die hier betrachteten Betriebssystemvarianten (Windows Server 2003, 2008 und 2008 R2) nahezu identisch – lediglich die Begrifflichkeiten haben sich geändert. Wird in der Datenträgerverwaltung unter Windows Server 2003 noch von Partitionen gesprochen, werden selbige seit Windows Server 2008 als Volumes bezeichnet.

    Bereits bei der Installation von Windows sollte man einige Dinge beachten, da sich so unnötiger Aufwand vermeiden lässt. Die erste Partition, die bei der Installation benötigt und erstellt wird, ist das so genannte Systemvolume, eine primäre Partition, auf der Windows installiert wird. Dabei lassen sich Größe und Dateisystem frei definieren, wobei bei letzterer Wahl nur noch NTFS als Journal-Dateisystem in Frage kommen dürfte. Es empfiehlt sich, alle weiteren Partitionierungen nach der abgeschlossenen Installation durchzuführen, da es sonst zu ungewollten Konfigurationen wie erweiterten Partitionen mit logischen Laufwerken an Stelle primärer Partitionen (bei unflexibler LUN-Konfiguration und mehreren Partitionen) und ungewünschter Vergabe von Laufwerksbuchstaben kommen kann.

    Da Windows oftmals von einem Medium in einem optischen Laufwerk installiert wird, erhält selbiges nach der Installation den Laufwerksbuchstaben [D:]. Ich empfehle, dieses – als erste Aktion – auf den Buchstaben [Z:] zu ändern (Datenträgerverwaltung, Rechtsklick auf CD bzw. DVD, Laufwerksbuchstaben und -pfade ändern …) :

    Wer diese Änderung unter Windows Server 2003 vollständig transparent durchführen möchte, sollte anschließend auch den folgenden Wert in der Registry abändern:

    HKLM\Software\Microsoft\Windows NT\Currentversion
    SourcePath, REG_SZ , „Z:\I386“

    Unflexible Partitionierung

    Ähnlich wie bei der Konfiguration der Festplatten eines RAID-Controllers, kann auch die Partitionierung auf Betriebssystemebene unnötig kompliziert und unflexibel durchgeführt werden. Benötigt man bspw. mehrere Volumes (Partitionen) auf einem einzig verfügbaren Datenträger (LUN), so sollten besser primäre Partitionen (max. 4 pro Datenträger möglich) an Stelle logischer Laufwerke (nicht gemeint sind logische Laufwerke eines RAID-Controllers) erstellt werden. Für logische Laufwerke wird eine erweiterte Partition erstellt, in der max. 128 logische Laufwerke existieren können. Sollten in der Zukunft einmal Größenänderungen an einem dieser Laufwerke notwendig werden, gestaltet sich dieser Vorgang extrem aufwendig:

    Soll im obigen Bild bspw. das Volume 1 vergrößert werden, so müssen definitiv Volume 2 und Volume 3 entweder verschoben (mit Zusatzprogrammen im Offline-Modus) oder gesichert, gelöscht, neu angelegt und wiederhergestellt werden – sowohl als auch – ein umständlicher und zeitaufwändiger Vorgang.

    Flexible Partitionierung

    Wie schon im obigen Abschnitt erwähnt, sollte pro Datenträger nur eine primäre Partition genutzt werden. Diese Konfiguration erlaubt eine sehr flexible Volumeverwaltung im späteren Betrieb. Ausnahme bildet das Systemvolume von Windows Server 2008 R2, bei dem immer ein System-reserviertes Volume ohne Laufwerksbuchstaben existiert.

    Dieses Volume benötigt Windows Server 2008 R2 um direkt von VHD-Dateien (Virtual Hard Disks) starten zu können – ein Feature, welches seit 2008 R2 existiert.

    Verwaltung von Partitionen

    Bei der Verwaltung der bestehenden Partitionen eines Systems gibt es einige wesentliche Änderungen seit Windows Server 2008, weswegen hier Windows Server 2003 und Windows Server 2008 (R2) gesondert betrachtet werden.

    Windows Server 2003

    Die Datenträgerverwaltung von Windows Server 2003 erlaubt lediglich neue Partitionen zu erstellen, zu formatieren, Laufwerksbuchstaben hinzuzufügen, zu ändern oder zu löschen, sowie Partitionen zu löschen. Um eine Größenänderung eines Volumes vorzunehmen, muss hier das Kommandozeilen-Programm diskpart genutzt werden. Damit lassen sich mit Hilfe der im folgenden Bild gezeigten Befehle alle Volumes außer dem Systemvolume vergrößern, solange sich hinter dem betreffenden Volume freier Speicherplatz befindet:

    Mit dem Befehl list disk (alle Befehle lassen sich auf 3 Zeichen abkürzen) werden alle Datenträger angezeigt und mit select disk x der entsprechende ausgewählt. Der Befehl list volume zeigt dann alle Partitionen des gewählten Datenträgers, mittels select volume x wird die entsprechende Partition markiert. Der Befehl extend erweitert dann die gewählte Partition sofort zur Laufzeit und quittiert dies mit einer Meldung. Für alle anderen Partitionsänderungen wie Verkleinern, Verschieben oder auch das Vergrößern der Systempartition muss bei Windows Server 2003 mit Hilfe eines bootfähigen Mediums und darauf befindlichen Zusatzprogrammen gearbeitet werden.

    Windows Server 2008 (R2)

    Die Datenträgerverwaltung hat sich mit Windows Server 2008 entscheidend verbessert. Obwohl das Programm diskpart nach wie vor existiert (und natürlich auch funktioniert), können alle Änderungen an Partitionen über die MMC der Datenträgerverwaltung vorgenommen werden. Dabei gelten die folgenden, möglichen Optionen für alle Volumes, also einschließlich des Systemvolumes (einzig richtige Ausnahme: Löschen des Systemvolumes). An folgendem Auswahlmenü (beim Rechtsklick auf ein bestehendes Volume) sind die möglichen Optionen ersichtlich:

    Der wesentliche Vorteil dieser Funktionen besteht in der Änderung der Volumes (Verkleinern und Vergrößern) zur Laufzeit, also im Betrieb des Servers.

    Fazit

    Die Konfiguration der Speicheraufteilung eines Servers ist kein mühevoller Akt. Je mehr Randbedingungen bereits im Vorfeld beachtet werden, desto flexibler, einfacher und schneller sind spätere Änderungen möglich. Bei richtiger Konfiguration von Hard- und Softwarekomponenten kann so im Betrieb der IT-Landschaft schnell und unkompliziert Speicherplatz bereitgestellt oder geändert werden, ohne Systeme dafür neu starten zu müssen.

    Ich hoffe, ich konnte dem einen oder anderen das Thema ein wenig schmackhaft machen bzw. näher beleuchten. Bei Fragen oder Problemen nutzt bitte die Kommentar-Funktion. Wie bei allen meinen anderen Beiträgen gilt auch hier wieder: Für Tipps, Vorschläge sowie Fragen oder Kritiken bin ich stets offen.

    Einen Blog am Leben zu erhalten kostet Zeit und Geld. Da ich auf meiner Seite weder Werbung einbinde, noch andersweitige Zuwendungen erhalte, freue ich mich über jede kleine Spende. Einfach und unkompliziert geht das über PayPalMe. Du unterstützt damit diesen Blog. Vielen Dank.