Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Logical Volume Manager

Der Logical Volume Manager (LVM) ist ein hauptsächlich im Unix- und Linux-Umfeld verbreitetes Partitionsschema, das eine Abstraktionsebene zwischen …

Inhalt5 Abschnitte
  1. 1. Grundprinzip und Aufbau
  2. 2. LVM und RAID im Vergleich
  3. 3. Extents und Snapshots
  4. 4. Unterstützte Betriebssysteme
  5. 5. Weitere Lösungen und Entwicklung

Grundprinzip und Aufbau

Der Logical Volume Manager (LVM) ist ein vor allem im Unix- und Linux-Umfeld verbreitetes Partitionsschema. Er bildet eine Abstraktionsebene zwischen Festplatten beziehungsweise Partitionen und Dateisystemen. Dadurch können virtuelle Datenträger, sogenannte Logical Volumes (LV), dynamisch angelegt und verändert werden. Ein LV darf sich über mehrere Festplatten erstrecken, und seine Größe kann auch nach dem Anlegen eines Dateisystems noch geändert werden, selbst wenn bereits Daten gespeichert sind.

Der LVM besteht im Wesentlichen aus zwei Komponenten: einer Verwaltungsebene mit Befehlszeilen- und/oder grafischer Oberfläche sowie einem in den Kernel integrierten Treiber, der die eigentliche Umsetzung übernimmt. Festplatten oder Partitionen werden als Physical Volumes (PV) bezeichnet. Mehrere PVs werden zu einem Speicherpool, der Volume Group (VG), zusammengefasst. Aus diesem Pool werden Logical Volumes angefordert; auf ihnen werden die Dateisysteme angelegt.

Eine VG kann durch zusätzliche PVs erweitert werden. Ein LV kann innerhalb einer VG über mehrere PVs verteilt sein und dadurch um ein Vielfaches größer werden als die größte einzelne Festplatte im System. Der LVM verteilt die Daten grundsätzlich automatisch. Bei leistungskritischen Anwendungen kann die Verteilung so gesteuert werden, dass gleichzeitige Zugriffe auf verschiedene PVs entfallen oder gezielt auf mehrere PVs verteilt werden. In der Praxis wird außerdem häufig vermieden, ein LV über zu viele PVs zu verteilen, damit ein Festplattenausfall weniger Auswirkungen hat. Die Verteilung kann mit entsprechenden Befehlen im laufenden Betrieb geprüft und verändert werden.

Der wichtigste Vorteil gegenüber statischer Partitionierung ist die nachträgliche Erweiterbarkeit. Zuerst wird die VG durch zusätzliche Festplatten beziehungsweise PVs vergrößert. Der freie Platz kann anschließend einem LV zugewiesen werden. Danach muss auch das darauf liegende Dateisystem erweitert werden; das ist nicht bei jedem Dateisystem problemlos möglich. Unter den meisten Betriebssystemen können LV und Dateisystem online, also während des laufenden Betriebs, vergrößert werden, ohne laufende Anwendungen zu beeinträchtigen.

LVM und RAID im Vergleich

LVM und RAID erfüllen unterschiedliche Aufgaben, auch wenn sie häufig gemeinsam verwendet werden. Ein LVM bildet physische Volumes auf logische Volumes ab. Er erzeugt grundsätzlich keine zusätzlichen Datenströme, besitzt keine eigene RAID-Engine und bietet daher allein keine Redundanz. Sein Rechenaufwand ist normalerweise minimal, sodass er praktisch keinen Einfluss auf die Leistung hat. Seine Arbeitsweise ähnelt am ehesten der einer MMU, die Datenströme auf die zugehörigen physischen Datenträger abbildet.

Ein echtes RAID-System erzeugt dagegen – außer bei RAID 0 – immer Redundanz und benötigt dafür eine RAID-Engine. Bei RAID 1 werden Daten dupliziert und gespiegelt. Bei RAID 5 und den meisten anderen Verfahren wird unter anderem eine XOR-Bildung zur Paritätsberechnung verwendet. Dadurch entstehen zusätzliche Datenströme; der Datendurchsatz der RAID-Engine ist deshalb ein wichtiger Leistungsfaktor. RAID 0 verwendet Striping, also eine Verteilung von Daten, schützt aber nicht vor Plattenausfällen.

Viele LVM-Implementierungen können Logical Volumes als Software-RAID organisieren. Typischerweise werden RAID 0 und RAID 1 unterstützt, bei fortgeschritteneren Implementierungen auch RAID 5. RAID 5 benötigt nennenswert Rechenkapazität und kommt daher nur auf ausreichend ausgestatteten Systemen infrage. Je nach System arbeiten LVM und Software-RAID unabhängig voneinander und können getrennt installiert und genutzt werden; Hersteller lizenzieren Volume-Management und RAID deshalb teilweise separat.

Solaris mit ZFS und das freie btrfs verfolgen einen integrierten Ansatz: Dateisystem, LVM und Software-RAID werden in einem System verbunden. Das integrierte RAID kann zwischen belegten und freien Datenblöcken unterscheiden. Bei der Rekonstruktion eines RAID-Volumes müssen dadurch nur belegte Bereiche gespiegelt werden, was besonders bei wenig gefüllten Dateisystemen viel Zeit sparen kann. Einige Systeme besitzen außerdem in den LVM integrierte RAID-0-Erweiterungen.

Extents und Snapshots

Ein Physical Extent (PE), je nach Implementierung auch Physical Partition genannt, ist eine Speichereinheit, in der die Daten einer Volume Group organisiert werden. Die Größe eines Logical Volume ist immer ein ganzzahliges Vielfaches der PE-Größe innerhalb der betreffenden VG.

Ein Logical Extent (LE), je nach Implementierung auch Logical Partition genannt, beschreibt bei LVMs mit Spiegelungsunterstützung die zusammengehörige Einheit einschließlich der Spiegel. Bei zwei Spiegelhälften entspricht ein LE zwei PEs. Unterstützt eine LVM-Implementierung keine Spiegelung, entspricht ein LE immer genau einem PE.

Einige LVMs unterstützen Snapshots. Ein Snapshot ist ein Logical Volume, das an ein anderes LV angehängt wird. Bevor eine Änderung in das ursprüngliche LV geschrieben wird, wird eine Kopie der betroffenen Datei im Snapshot-LV angelegt. Erst danach wird die Änderung im eigentlichen LV durchgeführt. Dadurch können Änderungen an Dateien leicht rückgängig gemacht werden.

Ist man mit einer Änderung zufrieden, wird die Kopie im Snapshot-LV gelöscht. Ein Snapshot kann jederzeit gelöscht werden. Mit dem Befehl „lvconvert --merge“ lassen sich die beiden Logical Volumes wieder zusammenfassen; manchmal ist dafür ein Neustart erforderlich. Snapshots können die Systemleistung deutlich verringern. In einem Testsystem sank die Schreibgeschwindigkeit um 80 Prozent. Sie eignen sich deshalb besonders für Experimente mit Layouts, verursachen aber einen messbaren Leistungsaufwand.

Unterstützte Betriebssysteme

AIX, HP-UX und Tru64 UNIX bieten vollständige LVM-Unterstützung mit Spiegelung und Online-Vergrößerung von Logical Volumes. Bei HP-UX sind MirrorDisk UX und OnlineJFS, bei Tru64 AdvFS und LSM für diese Funktionen zusätzlich lizenzpflichtig.

Für Linux existieren LVM-Implementierungen seit 1997. Die von Heinz Mauelshagen 1998 geschriebene Implementierung orientiert sich bei der Bedienung stark an HP-UX. Logical Volumes können gespiegelt werden, unabhängig vom verwendeten Dateisystem. Eine Online-Vergrößerung ist unter anderem mit ext2, ext3, ext4, JFS, ReiserFS v3 und XFS möglich. Neben der Implementierung von Red Hat, ehemals Sistina, gab es mit EVMS eine IBM-Implementierung, die zusätzlich Partitionierung, RAID und Dateisystemverwaltung unterstützte. Seit Kernel 2.6 basiert LVM auf dem Device Mapper.

Bei Solaris wurde die 1991 für SunOS vorgestellte Online DiskSuite später in Solstice DiskSuite und ab Solaris 8 in Solaris Volume Manager (SVM) umbenannt; seitdem gehört SVM zum Betriebssystem. Ab Solaris 10 kann auch ZFS Pooled Storage verwendet werden. Dabei werden Platten oder Plattenbereiche einem dynamisch erweiterbaren Storage Pool zugeordnet, in dem die ebenfalls dynamisch erweiterbaren ZFS-Dateisysteme direkt angelegt werden.

IRIX wird mit dem alten XLV und dem neuen XVM ausgeliefert. Zum Einrichten von Spiegeln ist dort eine zusätzliche Plexing Licence erforderlich. Mit der Einführung von JFS im Jahr 2000 erhielt OS/2 beziehungsweise eComStation zugleich einen LVM, der über CLI oder GUI verwaltet werden kann; die OS/2-Portierung von JFS war die Grundlage für JFS2.

Windows 2000 und neuere Versionen besitzen eine ungefähr vergleichbare Verwaltung dynamischer Datenträger. Das integrierte logische Volume Management setzt NTFS voraus und unterstützt Spiegelung sowie die Online-Vergrößerung von Logical Volumes, die dort abweichend als Dynamische Datenträger bezeichnet werden.

FreeBSD, NetBSD und OpenBSD verwenden Vinum beziehungsweise Gvinum, einen vom Veritas Volume Manager inspirierten LVM. Unterstützt werden RAID 0, 1 und 5 sowie JBOD. macOS besitzt seit Mac OS X Lion den LVM CoreStorage. Zunächst unterstützte er vor allem FileVault 2 zur vollständigen Festplattenverschlüsselung. Für OS X Mountain Lion kam Tiering hinzu: Apples Fusion Drive verbindet dabei eine SSD und eine Festplatte zu einem logischen Laufwerk, wobei die SSD als Pufferspeicher dient.

Weitere Lösungen und Entwicklung

Der Veritas Volume Manager unterstützt HP-UX, Linux, Solaris und Windows und bietet sowohl eine kommandozeilenorientierte als auch eine grafische Oberfläche. Der zusätzlich angebotene Cluster Volume Manager ermöglicht logisches Volume Management in Clustern. Beide Volume Manager sind lizenzpflichtig.

Oracle Automatic Storage Management (ASM) unterstützt Logical Volumes für Oracle-Datenbanken und bietet Disk Striping sowie Mirroring. Die Verteilung in Stripes richtet sich nicht nach der Datenmenge, sondern nach der I/O-Last. Diese Last wird im Automatic Workload Repository (AWR) gespeichert und ausgewertet. ASM wird kostenfrei mit der Oracle-Datenbanksoftware bereitgestellt.

Der Name und die Implementierung des LVM gehen ursprünglich auf AIX zurück. Später wurde LVM Teil von OSF/1 und von weiteren Systemen übernommen. Für Linux gab es ab 1997 Implementierungen; als Vorlage für das erste Linux-LVM von Heinz Mauelshagen diente HP-Unix. Seit 2002 gibt es LVM2 mit einem neuen Metadatenformat und zugehörigen neuen Kommandozeilenprogrammen. Während der frühen Entwicklung des Kernel-Versionszweigs 2.5 existierten LVM2 und IBMs Enterprise Volume Management System (EVMS) als konkurrierende Implementierungen. Für Kernel 2.6 wurde LVM2 übernommen. EVMS bot weiterhin zusätzliche Funktionen und bestand danach ohne eigene Kernel-Bestandteile als Benutzeroberfläche für LVM2 fort, wurde aber 2006 aufgegeben.

Weiterlesen