Das gesamte Speichermanagement, inklusive des root-Dateisystems, wird von LVM2 (Local Volume Manager) abgewickelt. Dieser ist seit einiger Zeit Bestandteil von Linux. Der LVM hat den Vorteil, dass er eine sehr flexible und dynamische Verwaltung für Festplatten, Volumegruppen und Partitionen erlaubt, ohne dass er an ältere Partitionsformate gebunden ist. Ausführlichere Hintergrundinformationen zum LVM finden Sie unter: de.wikipedia.org/wiki/Logical_Volume_Manager. Die Funktionalität ähnelt dem Volumemanagement von IBM AIX oder Oracle Solaris ZFS.
Da der LVM sehr leistungsfähig ist, gibt es viele Verwaltungstools. Dafür hat HELIOS den HELIOS Configuration Assistant entwickelt, der dazu dient, sämtliche interaktive Aufgaben rund um die Speicherverwaltung zu erledigen. Siehe 4.2.3 „Storage setup (data volumes)“.
Die HELIOS Virtual Server Appliance nutzt grundsätzlich zwei Volumegruppen:
rootvg („Root Volume Group“) für Betriebssystem und Speicherauslagerung („Swap“). „rootvg“ ist ebenfalls LVM-basiert, nur mit einer zusätzlichen ext3-Partition („/dev/sda1“), die für den GRUB-Bootloader verwendet wird. Der LVM handhabt die Systempartition („/dev/sda2“) wie ein physikalisches Volume.
datavg („Data Volume Group“) für sämtliche Anwenderdaten, die getrennt vom Betriebssystem gehalten werden, damit das Betriebssystem aktualisiert werden kann, ohne die Anwenderdaten dabei zu verändern. Der LVM verwaltet die Festplatten in der Volumegruppe „datavg“ direkt und ohne herkömmliche Partitionstabellen.
Dieser Abschnitt beschreibt besondere Merkmale der einzelnen Komponenten des LVM-Speichermanagements. Sie erhalten eine Übersicht des HELIOS Standard-Speichermanagements. Ein Beispiel finden Sie in der unten stehenden Abbildung:
Es gibt keinen Grund, physikalische Volumes, Volumegruppen oder logische Volumes manuell zu bearbeiten, da Ihnen der HELIOS Configuration Assistant diese Arbeit abnimmt.
Physikalische Volumes sind Festplatten, die einer Volumegruppe zugewiesen wurden. Der LVM verwaltet sämtliche Festplatten und RAID-Systeme. Festplatten heißen physikalisches Volumes, wenn sie von einem LVM genutzt werden. Wir verwenden für Festplatten weder eine DOS- noch eine GUID-Partitionstabelle (GPT), damit es keine Einschränkungen hinsichtlich Größe und Größenänderung gibt. LVM verwendet jede Festplatte direkt als physikalisches Volume, um diese Einschränkung zu umgehen und um eine Vergrößerung bestehender Festplatten zu ermöglichen, die im Hypervisor des virtuellen Servers vorgenommen werden kann. Eine weitere Möglichkeit besteht darin, den Hypervisor mit zusätzlichen Festplatten auszustatten, die dann automatisch verwendet werden.
Herkömmliche Tools zur Partitionierung, wie z. B. „fdisk“ oder „parted“ bzw. „GParted“, erkennen ohne Partitionstabelle keine Festplatten und zeigen deshalb die LVM-Festplatte ohne Inhalt an. Diese Festplatten dürfen auf keinen Fall partitioniert werden!
Festplatten lassen sich mit dem Configuration Assistant (siehe „Show physical disk overview“ im Abschnitt Manage other volume groups (Advanced storage setup)) oder über den LVM-Befehl „lvmdiskscan“ scannen.
Physikalische Volumes lassen sich im Configuration Assistant (siehe List physical volumes (disks used)) oder über die LVM-Befehle „pvs“, „pvdisplay“, „pvscan“ auflisten.
Bei einer Volumegruppe (z. B. „datavg“) handelt es sich um einen Container, der mehrere physikalische Volumes miteinander verbindet. Festplatten lassen sich einer Volumegruppe hinzufügen oder aus dieser entfernen, vorausgesetzt, es ist genügend Speicherplatz vorhanden. Volumegruppen verbinden physikalische Volumes und stellen logische Volumes (Partitionen mit Dateisystemen) mit Speicherblöcken zur Verfügung.
Volumegruppen lassen sich im Configuration Assistant (siehe „List volume groups and volumes“ in Abschnitt Manage other volume groups (Advanced storage setup)) oder über die LVM-Befehle „vgs“, „vgdisplay“ auflisten.
Logische Volumes werden in einer Volumegruppe erzeugt und
stellen ein sogenanntes Block Device dar, das mit einem
Dateisystem genutzt werden kann. LVM unterstützt Snapshots von logischen
Volumes. Die HELIOS Virtual Server Appliance verwendet
ext4-basierte Dateisysteme, die mit dem Befehl mkfs.ext4
auf dem Block Device erzeugt werden. Ein Block Device lässt sich vergrößern,
weshalb das Dateisystem konvertiert werden muss, um die neue Größe zu
unterstützen. Der HELIOS Configuration Assistant nimmt diese Umwandlung
automatisch vor und verwaltet den Speicherplatz auf sichere Art und Weise.
Logische Volumes lassen sich im Configuration Assistant (siehe List logical volumes) oder über den LVM-Befehle „lvs“, „lvdisplay“, „lvscan“ auflisten.
Werden Festplatten erst einmal vom LVM verwaltet, stehen sie in keiner Konfigurationsdatei, da LVM die Festplatten direkt verwaltet indem alle Geräte gescannt werden und dadurch physikalische Volumes, Volumegruppen sowie logische Volumes aktiviert werden. Dies geschieht ebenfalls unabhängig vom Slot, in dem die Festplatten sitzen oder von ihrer SCSI-ID. Dadurch wird eine sehr hohe Flexibilität verglichen mit einer statischen Konfiguration erreicht.
Die Datensicherheit (RAID oder Mirroring) wird vom LVM nicht gewährleistet, was bedeutet, dass – wenn mehrere Festplatten einer Volumegruppe hinzugefügt wurden – eine fehlerhafte Festplatte die gesamte Volumegruppe unbrauchbar machen kann. Deshalb ist eine Hardware-Spiegelung oder eine RAID-Lösung erforderlich, um die Datensicherheit bei Verwendung eines LVM zu gewährleisten. Eine weitere Möglichkeit besteht darin, eine Volumegruppe mit seinen logischen Volumes neu zu initialisieren und alle Daten aus einem Backup wieder herzustellen.
Snapshots erlauben im laufenden Betrieb Kopien von logischen Volumes – entweder mit Lese- oder mit Lese- und Schreibberechtigung – aus denen Backups erstellt werden können. Der Configuration Assistant erzeugt ausschließlich Snapshots mit Lese- und Schreibberechtigung. Ein Snapshot spiegelt den Status eines logischen Volumes zu einem bestimmten Zeitpunkt wieder.
LVM unterstützt mehrere Snapshots pro logischem Volume.
Wird ein Snapshot angelegt, können die Originaldaten weiter bearbeitet werden, ohne dass die Snapshot-Daten davon betroffen sind. Ein Snapshot dient als temporäre Datensicherung und lässt sich als Ausgangspunkt für die Erstellung eines vollständigen Dateisystem-Backups nutzen. Während dieses Prozesses können Sie an den Originaldaten weiterarbeiten und diese modifizieren.
Wurde ein vollständiges Backup erstellt, können Sie den Snapshot löschen.
Ein Snapshot erfordert freien Festplattenspeicherplatz in der Volumegruppe, in der sich das logische Volume befindet. Im Snapshot werden nur die Abweichungen zum logischen Quellvolume gespeichert, weshalb bei einem erneuten Snapshot nicht die gesamte Größe des logischen Volumes benötigt wird. Stattdessen wird die Maximalgröße der Abweichungen als Snapshotgröße definiert. Wir empfehlen mindestens einen Wert von 10% der Größe des Quellvolumes. Dies bedeutet, dass 10% des logischen Volumes geändert werden können, bevor der Speicherplatz für den Snapshot aufgebraucht ist und dieser deaktiviert wird.
Der Snapshot „data1-snap1“ vom logischen Volume „data1“ aus der Volumegruppe „datavg“ sichert während des Snapshots alle Daten, die in „data1“ geändert wurden.
Der Snapshot selbst enthält die Abweichungen („undo information“) der in „data1“ vorgenommenen Dateiänderungen. Mit dieser „undo information“ lassen sich alle Dateiänderungen, -ergänzungen und -löschungen, die nach Anlegen des Snapshots vorgenommen wurden, rückgängig machen und zeigen deshalb nur den Dateistatus zu dem Zeitpunkt, als der Snapshot erzeugt wurde.
Die Verwaltung von Snapshots ist eine einfache Angelegenheit, die in wenigen Sekunden erledigt ist. Snapshots lassen sich mit dem HELIOS Configuration Assistant anlegen und löschen (siehe Manage other volume groups (Advanced storage setup) in Kapitel 4.2.3 „Storage setup (data volumes)“).
Wird der Speicherplatz für den laufenden Snapshot überschritten, funktioniert der Snapshot (Snapshot-Dateisystem) nicht mehr und kann nicht mehr verwendet werden, da er falsche Daten enthält. Das Originaldateisystem funktioniert dagegen weiterhin einwandfrei.
Snapshots haben einen negativen Effekt auf die Schreib- und Lesegeschwindigkeit von Festplatten und machen das System erheblich langsamer. Das kommt daher, dass sämtliche Dateiänderungen, je nach Anzahl der Snapshots, mehrmals gesichert werden müssen; einmal im Originaldateisystem und dazu noch einmal in den undo-Daten in der Snapshot-Partition.
Werden Volumegruppen von Hand aktiviert, oder automatisch beim Systemstart, werden alle bestehenden Snapshots initialisiert. Dabei müssen sämtliche Snapshot-Daten eingelesen werden, um die interne Struktur des LVM anzulegen. Je nach Geschwindigkeit der Festplatte oder des RAIDs kann dies einige Zeit in Anspruch nehmen, bei mehreren hundert Gigabytes geänderter Daten seit dem Erstellen des Snapshots auch bis zu mehreren Stunden.
Aus diesem Grund möchten wir Ihnen dringend raten, Snapshots nur temporär anzulegen, z. B. zum Erzeugen von Backups. Werden sie nicht mehr benötigt, sollten die Snapshots gelöscht werden, damit das System nicht gebremst wird bzw. der Systemstart nicht zu lange dauert.
Standardmäßig werden sämtliche Snapshots in „/snapshots“ gemountet, z. B. „/snapshots/data1-snap1“. Da die Snapshots sowohl Lese- als auch Schreibberechtigung aufweisen, lässt sich ein HELIOS Volume anlegen, das auf die Snapshotkopie des Dateisystems zeigt. Das Volume könnte bestimmten Benutzern verfügbar gemacht werden, damit diese Zugriff auf ältere Datenversionen, also zu dem Zeitpunkt als der Snapshot erzeugt wurde, haben.
Die unten stehende Abbildung zeigt drei Beispiel-Snapshots des Dateisystems „/data1“ in der Volumegruppe „datavg“.
Wie in der Abbildung zu sehen ist, können Snapshots von Dateisystemen eine leistungsfähige Lösung zur Erstellung von stabilen Backups aus dem laufenden System, d. h. während das System noch Daten bearbeitet, sein. Ein weiterer Punkt ist, dass Sie mithilfe von Snapshots auf Daten von einem früheren Zeitpunkt zugreifen können, z. B. auf Daten von heute 11:00 Uhr (siehe „Snapshot 1“ in der Abbildung oben).
Die Abbildung unten zeigt ein RAID 5 (mit Ausfallschutz für Festplatten), das als physikalisches Volume in die Volumegruppe „datavg“ eingebunden ist, sowie auf der rechten Seite die Dateisysteme „/data1“ … „/data4“, die den Speicherplatz von „datavg“ nutzen.
Festplatten lassen sich ohne Serverunterbrechung austauschen. Dies kann beispielsweise dann erforderlich sein, wenn ein Upgrade auf größere Festplatten oder ein größeres RAID-System erforderlich ist.
Um auf ein komplett neues RAID-System umzustellen, muss das neue RAID der
Volumegruppe „datavg“ hinzugefügt werden. Dies lässt sich am besten mithilfe
des Menüs Storage setup
im HELIOS Configuration Assistant
bewerkstelligen (siehe 4.2.3 „Storage setup (data volumes)“).
Verbinden Sie das neue RAID-System mit dem Hypervisor, der genutzt wird, um das RAID der VSA zuzuweisen.
Wählen Sie im Configuration Assistant den Punkt Create or extend data
pool (add disks)
aus, wodurch das neue RAID (im folgenden „Festplatte“
genannt) erkannt wird.
Wählen Sie die gewünschte Festplatte durch Eingabe des Gerätenamens aus (wenn Sie sich nicht sicher sind, welche Festplatte die richtige ist, vergleichen Sie die SCSI-ID mit der Konfiguration Ihres Hypervisors!).
Der Configuration Assistant fügt jetzt die Festplatte(n) der Volumegruppe „datavg“ hinzu.
Zurück im Menü Storage setup
wählen Sie den Menüpunkt
Reduce data pool (remove disks)
aus.
Geben Sie den Gerätenamen der Festplatte des alten RAIDs ein und bestätigen Sie das Entfernen.
Dieser Vorgang dauert eine Weile, da sämtliche belegt Blöcke in das neue RAID-System verschoben werden, um das alte RAID freizugeben.
Trennen Sie das alte RAID vom Hypervisor.
Das Wechseln einer oder mehrerer Festplatten im RAID-System (z. B. um die Speicherkapazität zu erhöhen) funktioniert ähnlich der Beschreibung in 7.7.1 „Upgrade auf ein neues RAID-System“. Reicht die Speicherkapazität der übrig gebliebenen Festplatten nicht aus, um die gesamten RAID-Daten übergangsweise zu speichern, benötigen Sie eine temporäre Festplatte oder ein temporäres RAID-System. Dies kann beispielsweise eine USB-Festplatte oder ein beliebiges anderes Festplattensystem sein.
Verbinden Sie die temporäre Festplatte so mit dem Hypervisor, wie Sie ein neues RAID anschließen würden (wie in 7.7.1 „Upgrade auf ein neues RAID-System“ beschrieben).
Entfernen Sie über den Menüpunkt Reduce data pool (remove
disks)
die alte Festplatte aus der Volumegruppe.
Entfernen Sie nun die alte physikalische Festplatte vom RAID-System und ersetzen Sie sie durch die neue Festplatte.
Fügen Sie dem System die neue Festplatte mithilfe des Menüpunkts
Create or extend data pool (add disks)
hinzu.
Entfernen Sie über den Menüpunkt Reduce data pool (remove
disks)
die temporäre Festplatte aus der Volumegruppe.
Entfernen Sie abschließend die temporäre Festplatte vom Hypervisor.
Bevor Sie diese Operation durchführen, ist es unabdingbar ein Backup der gesamten Serverdaten zu erstellen. Auch wenn wir davon ausgehen, dass Sie dieses Backup niemals brauchen werden, sollte jeder Anwender Backups all seiner Serverdaten haben, um sicherzustellen, dass er eine Wiederherstellungsmöglichkeit hat, falls etwas nicht wie geplant verläuft.
Es gibt zwei Möglichkeiten, den Speicherplatz einer Volumegruppe zu vergrößern:
Durch Hinzufügen einer weiteren Festplatte zur Volumegruppe
Durch Vergrößern des Speicherplatzes auf einer bestehenden Festplatte
Die im Folgenden beschriebenen Maßnahmen lassen sich innerhalb einer Minute umsetzen.
Legen Sie in der Konfiguration des Hypervisors eine neue virtuelle Festplatte an. Das kann ein Image sein oder eine mit dem Hypervisor verbundene Hardware-Festplatte.
Vergrößern Sie in der Konfiguration des Hypervisors das Image eines der physikalischen Volumes, die der Volumegruppe zugewiesen sind.
Unter VMware ESX Server ist es möglich, die Festplattengröße im laufenden Betrieb ohne Dienstunterbrechungen der HELIOS Virtual Server Appliance zu vergrößern. Der HELIOS Configuration Assistant erkennt dann automatisch die vergrößerten Festplatten und aktualisiert das entsprechende physikalische Volume und die zugrundeliegende Volumegruppe. Manche Hypervisoren erfordern allerdings ein Herunterfahren der VM, bevor die Festplatte vergrößert werden kann. In diesem Fall müssen Sie die VM herunterfahren, bevor Sie Änderungen an den Images vornehmen.
Sie können ein Image nur vergrößern, wenn die Festplatte nicht partitioniert ist, d. h. vollständig als physikalisches Volume des LVM verwendet wird. Siehe auch 7.2 „Physikalische Volumes“. Dies bedeutet, dass Sie, wenn Sie den Speicherplatz der Volumegruppe „rootvg“ vergrößern möchten, nicht die Festplatte „/dev/sda“ vergrößern, sondern der Volumegruppe stattdessen eine neue virtuelle Festplatte hinzufügen sollten.
Verkleinern Sie niemals die Festplatte auf dem Host, da dadurch sämtliche Daten zerstört werden!
Wählen Sie im Menü Storage setup
des Configuration Assistant
den Menüpunkt Create or extend data pool
aus.
Der Configuration Assistant sucht nach neuen oder vergrößerten Festplatten und bietet an, der Volumegruppe den zusätzlichen Speicherplatz hinzuzufügen. Es lassen sich gleichzeitig sowohl neue als auch vergrößerte Festplatten hinzufügen.
Manche Installationen erfordern eine gespiegelte Systemfestplatte. Über diese Funktionalität verfügt die HELIOS Virtual Server Appliance nicht. Das Spiegeln von Systemfestplatten muss über ein Hardware-RAID-System erfolgen. Diese Art von RAID heißt RAID 1 (Mirroring ohne auf Block-Level verteilte Paritätsinformationen) und wird von den meisten RAID-Controllern unterstützt. Wir empfehlen Ihnen, das Image der Systemfestplatte auf einem getrennten physikalischen Laufwerk abzulegen, um so das Betriebssystem von den Anwenderdaten zu isolieren. Dadurch wird vieles vereinfacht, falls es einmal zu Problemen kommen sollte und macht darüber hinaus die Geschwindigkeit der Systemfestplatte unabhängig von der Leistung der Datenfestplatte (RAID).
übersetzt aus: http://en.wikipedia.org/wiki/RAID
Ein RAID 5 (Block-Level-Striping mit verteilten Paritätsinformationen)
verteilt die Paritätsinformationen zusammen mit den Daten, wobei alle
Festplatten bis auf eine einsatzbereit sein müssen; das Array wird beim
Ausfall einer Festplatte nicht zerstört. Tritt an einer Festplatte ein
Fehler auf, können alle folgenden Leseprozesse so aus den verteilten
Paritätsinformationen errechnet werden, dass der Anwender den Fehler
gar nicht bemerkt. Allerdings bewirkt der Ausfall einer Festplatte eine
verminderte Leistung des gesamten Arrays bis die fehlerhafte Festplatte
durch eine intakte ersetzt worden ist und die betreffenden Daten
wiederhergestellt wurden. … Ein RAID 5 benötigt mindestens drei Festplatten.
Tritt an der Systemfestplatte ein Fehler auf, kann das Image der HELIOS Virtual Server Appliance neu importiert und als neue Systemfestplatte verwendet werden. In diesem Fall müssen folgende Dateien/Verzeichnisse aus einem Backup wiederhergestellt werden:
– „/etc/fstab“
– „/etc/passwd“
– „/etc/shadow“
– „/usr/local/helios/var/“
– „/home/“
Zusätzlich müssen auch die eigenen Konfigurationseinstellungen, wie z. B. Datum/Uhrzeit und die Netzwerkeinstellungen mit dem HELIOS Configuration Assistant neu vorgenommen werden.
Wir raten Ihnen, die Home-Verzeichnisse aller Benutzer in einem logischen Volume auf „datavg“ zu definieren. Der Vorteil dabei ist, dass „rootvg“ nicht mit einer variablen Menge an Daten in den Home-Verzeichnissen belastet wird. Dies reduziert die variablen Daten in „rootvg“ auf ein paar MB, die sich schnell und einfach sichern bzw. wiederherstellen lassen.
Sämtliche Volumegruppen sowie die mit ihnen verbundenen logischen Volumes (Partitionen), z. B. „/data1“ aus der Volumegruppe „datavg“, werden beim Einbinden einer neuen Systemfestplatte oder beim Hinzufügen bestehender Festplatten in einen neuen Server automatisch erkannt. Beim Booten des Systems trägt Linux die Geräte mit den passenden Namen in „/dev/mapper“ ein, z. B.: „datavg-data1“. Werden Einträge in „/etc/fstab“ gemacht – falls diese noch nicht vorhanden sind – können diese bestehenden Dateisysteme gemountet werden.
Mit dem HELIOS Configuration Assistant lässt sich LVM sehr einfach verwalten. Der Vorteil von LVM ist, dass Festplatten, Volumegruppen und Partitionen (logische Volumes) sehr flexibel und effizient verwaltet werden. Der Anwender spart auf diese Weise beim Hinzufügen, Ändern oder Bearbeiten des Speicherplatzbedarfs eine Menge Zeit, denn diese Aufgaben sind in ein paar Stunden oder sogar nur Minuten erledigt. Eine manuelle Verwaltung von LVM würde dagegen eine Arbeit von mehreren Tagen bedeuten.