Die Verwaltung durch logische Volumes (in Englisch, Logical Volume Management oder LVM ) ist gleichzeitig ein Verfahren und eine Software zur Verwaltung der Nutzung der Speicherplätze eines Computers. Es ermöglicht eine flexible Verwaltung, Sicherheit und Optimierung von Online - Speicherplatz in UNIX- Typ Betriebssystemen .
Wir sprechen auch auf Englisch von Volume Manager .
Die Festplatten , Partitionen Festplatten, Volumes RAID oder LUNs aus einem SAN bilden "physikalische Volumes" ( physikalisches Volume oder PV ).
Diese physischen Datenträger werden in " Volume-Gruppen " ( Volume Groups oder VG ) verkettet .
Diese VGs entsprechen Pseudo-Festplatten.
"Logische Volumes" ( Logical Volume oder LV ) werden dann aus der Volume-Gruppe ausgeschnitten, dann formatiert und in Dateisysteme gemountet oder als Raw-Devices verwendet .
LVs sind äquivalent zu Pseudo-Partitionen.
Logical Volumes werden kann „ gestreift “ über eine Reihe von physischen Volumen, ähnlich wie RAID 0 .
Diese Technik wird verwendet, um die Leistung zu verbessern, macht sie jedoch anfälliger für Festplattenfehler.
Logische Volumes können auch gespiegelt werden , wie RAID 1 .
Diese Technik wird verwendet, um vor einem Ausfall einer Festplatte zu schützen.
Extents sind die kleinsten LVM-Speichereinheiten, die Extents-Größe ist für jeden logischen Datenträger in derselben Datenträgergruppe gleich. Ungenutzte Erweiterungen können verwendet werden, um die Größe einer Volume-Gruppe zu erhöhen.
Es gibt zwei Arten von Erweiterungen:
Die Snapshots sind logische Datenträger zum Durchführen einer konsistenten Sicherung eines anderen logischen Datenträgers in derselben Datenträgergruppe.
Die Erstellung eines Snapshots besteht darin, ein „Foto“ aufzunehmen, einen Snapshot des logischen Zielvolumes (was fast sofort erfolgt) und wir beginnen dann, die am logischen Zielvolume vorgenommenen Änderungen zu speichern.
Vorteil von Schnappschüssen Sie können als Backup-Methode verwendet werden. Sie ermöglichen Ihnen, ein statisches Image eines logischen Datenträgers zu einem bestimmten Zeitpunkt zu speichern. Anschließend können Sie eine Bandsicherung des Snapshots durchführen , die die Daten enthält, die beim Erstellen des Snapshots auf dem Zieldatenträger vorhanden waren . Snapshot- Limit Sie sind keine vollständige Sicherung eines logischen Datenträgers, sie zeichnen nur Änderungen auf, die am Zieldatenträger vorgenommen wurden, sie enthalten keine Daten vom Zieldatenträger; außerdem sind sie nicht persistent, dh sie verschwinden, wenn die Maschine neu gestartet wird. [Korrigieren oder löschen, da für einige Volume-Manager wahr, aber für den unter Linux allgemein verwendeten falsch.] Snapshot- Größe Es wird allgemein angenommen, dass die Größe eines Snapshots ungefähr 15-20% der Größe des logischen Zielvolumens betragen sollte. Diese Annäherungen sind völlig unbegründet, da die für einen Snapshot erforderliche Größe von der Schreibaktivität auf dem logischen Zielvolume während der Lebensdauer dieses Snapshots abhängt . Das Löschen aller Daten auf dem logischen Zieldatenträger erfordert beispielsweise eine Momentaufnahme mit einer Größe, die mindestens der Größe des logischen Zieldatenträgers entspricht. Die Größe eines Snapshots sollte daher auf der Grundlage des geschätzten Datenvolumens berechnet werden, das während der Dauer Ihres Backups auf das Ziellaufwerk geschrieben wird. In den meisten Fällen werden dafür deutlich unter 15 % benötigt. Ein sehr wichtiger Faktor bei der Berechnung des für den Snapshot verfügbaren Speicherplatzes ist außerdem die Anzahl der Schreibvorgänge pro Sekunde. Ein vollständiges Löschen des angeschlossenen logischen Volumes erfordert effektiv 100 % freien Speicherplatz, kann jedoch mehrere Tage dauern, während die Verwendung eines Snapshots zum Externalisieren eines Backups, während das primäre Volume weiterhin verwendet wird, den Speicherplatz möglicherweise sehr schnell füllt.Es ist auch möglich, sogenannte Thin-Provisioned Snapshots zu erstellen, für die die verfügbare Größe nicht vorher festgelegt wurde. Insbesondere ist es möglich, so viel Platz wie nötig einzunehmen, während das Gruppenvolumen selbst dem Platzbedarf entsprechend erweitert wird.
Partitionen und Dateisysteme sind nicht Bestandteil von LVM.
Eine Partition kann als physischer Datenträger verwendet werden, ein Dateisystem muss auf einem logischen Datenträger installiert sein, um gemountet und verwendet zu werden.
Es ist möglich, physische Datenträger im laufenden Betrieb zu Datenträgergruppen hinzuzufügen, aber ein physischer Datenträger muss nicht verwendet werden (keine Daten), um aus einer Datenträgergruppe entfernt zu werden.
Es ist möglich, logische Volumes zu erweitern oder zu verkleinern, aber darauf installierte Dateisysteme müssen diesen Vorgang unterstützen. Viele Dateisysteme unterstützen Vergrößerung und Hot-Reduction, andernfalls muss es ausgehängt werden (daher Dienstunterbrechung), um diese Operation durchzuführen.
Die Festplatten können lokal (an den Server angeschlossen) oder entfernt in einem SAN ( Storage Area Network ) oder einem DAS ( Direct Attach Storage ) in Form von logischen Einheiten (mit denen LUNs, Logical Unit Number verknüpft wurden ) sein.
Der Vorteil von LVM besteht darin, dass Sie die Größe logischer Volumes ohne Datenverlust ändern können (auch heiß bei einer Erweiterung auf JFS2 , ext2 , ext3 , ext4 und reiserFS ). Für ext2 und ext3 wird weiterhin die vorherige Demontage empfohlen .
Bei JFS2 und reiserFS ist Schrumpfen auch im heißen Zustand möglich.
Beispiele für Volume Manager sind die freie Software LVM1, LVM2 und EVMS (en) unter Linux, wie die proprietäre Software LVM von IBM , HP-UX oder Veritas Enterprise (VxVM) unter HP-UX und Solaris .
Bevor Sie LVM verwenden, müssen Sie die Festplatten (siehe Partitionierungstools ) im LVM-Typ partitionieren .
Dann,
Ihr Linux-Server enthält zwei Festplatten, die sich ein gemeinsames Gruppen-Volume teilen, das hier henryvg (LVM) genannt wird: eine namens A, 40 GB nativ beim Kauf des PCs, die andere, B, 80 GB aus Platzbedarf gekauft. Durch den Kauf dieser neuen Festplatte haben Sie mindestens eine große Partition vom Typ "8. - Verwaltung durch logische Volumes" erstellt; lass /dev/hdb6 sein Name sein. Wie die Partition /dev/hda6 auf Laufwerk A wurde diese hdb6-Partition (beim Kauf des zweiten Laufwerks) in die Gruppe henryvg volume eingebunden .
Eines der beiden Laufwerke weist Anzeichen eines Fehlers auf und ein Befehl hat fsckwiederholt eine verlorene + gefundene Datei auf einem oder mehreren logischen Volumes erstellt. Eine Ihrer Festplatten ist daher defekt; der Kernel muss in einer Warnungsdatei (zB unter /var/log/kernel) angegeben haben, um welche Platte, hda oder hdb es sich handelt. Angenommen, es ist die Festplatte B, die durch eine mindestens gleich große Festplatte namens C ersetzt werden muss.
Der Vorteil des "Management by Logical Volumes" liegt darin, dass die Server-Trennzeiten minimal sein können . Das folgende Verfahren kann angewendet werden:
Mit den neuesten Linux-Kernels (mindestens 2.6.22) ist es möglich , die Größe eines Dateisystems aufzuwärmen , ohne es sogar auszuhängen (zumindest für einige Dateisysteme). Lassen Sie also ein logisches Volumen namens name /dev/henryvg/homelvauf /home. Der Befehl df( disk free ) gibt Ihnen die aktuelle Größe an:
df -BG /home Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur /dev/mapper/henryvg-homelv 25G 20G 3,7G 85% /homeBeachten Sie, dass es auf einigen Systemen üblich ist, dass ein Mapper /dev/henryvg/homelv zu /dev/mapper/henryvg-homelv neu zuordnet, aber dies sind die gleichen Namen. Wir wollen das Dateisystem von 25 GB auf 30 GB erhöhen . Wir überprüfen den verfügbaren Speicherplatz auf den Festplatten (in diesem Beispiel gibt es zwei physikalische 'PV'-Festplatten, aber nur eine 'VG'-Volumengruppe) mit einem der beiden komplementären Befehle:
# lvm2 pvs PV VG Fmt Attr PSize PFree /dev/sda6 henryvg lvm2 a-- 70,47g 41,63g /dev/sdb6 henryvg lvm2 a-- 70,47g 15,89g # lvm2 vgs VG #PV #LV #SN Attr VSize VFree henryvg 2 9 0 wz--n- 140,95g 57,52gSie müssen zuerst die Größe des logischen Volumes (LV) mit dem Befehl erhöhen:
lvm2 lvextend -L30G /dev/henryvg/homelvUnd zweitens erhöhen Sie die Größe des Dateisystems selbst. Wenn es sich um ein ext3-Dateisystem handelt , lautet der Befehl:
resize2fs -p /dev/henryvg/homelvund wenn es sich um ein XFS-Dateisystem handelt , muss die Partition gemountet werden (hier auf /home) und der Befehl lautet:
xfs_growfs /homeDie Größe wird automatisch an die des logischen Volumes angepasst.
Partition verkleinernSie müssen zuerst die Größe des Dateisystems vor dem logischen Datenträger reduzieren. Je nach Dateisystem müssen Sie dieses Dateisystem (Ext3) möglicherweise aushängen. Das ist manchmal nicht möglich , weil es besetzt durch Verfahren (Fall /, / usr). Im Allgemeinen ist es schneller, eine Linux-Bootdiskette wie Knoppix oder Mandriva zu verwenden (im letzteren Fall müssen Sie in die Phase einer Neuinstallation gehen und um manuelle Partitionierung bitten), die die lvm-Module lädt. . Nachdem dieses Dateisystem demontiert wurde und um ein logisches Volume /dev/henryvg/homelvvon 30 GB auf 25 GB zu reduzieren , müssen Sie den Befehl anwenden:
resize2fs -p /dev/henryvg/homelv 25GSie müssen vor der Reduzierung deaktivieren (vermeidet Datenverlust):
lvchange -an /dev/henryvg/homelvDann müssen Sie das logische Volume durch den Befehl reduzieren (beachten Sie, dass Sie die Größe angeben müssen):
lvm2 lvreduce -L25G /dev/henryvg/homelvUnd aktiviere:
lvchange -ay /dev/henryvg/homelvWenn alles gut geht, können wir die Partition mit dem Befehl mounten:
mount -t ext3 /dev/henryvg/homelv /homeNatürlich müssen Sie als Vorsichtsmaßnahme Sicherungskopien Ihrer Daten erstellen, bevor Sie mit dieser Art von Vorgang beginnen. Vorsichtshalber kann es manchmal sinnvoll sein, das Dateisystem weiter zu verkleinern (z. B. 24 G statt 25 G), das logische Volume zu verkleinern und das Dateisystem dann wieder auf die exakte Größe des neuen logischen Volumes zu erweitern Vermeiden Sie Platzinkonsistenzen zwischen den Dateisystemen und dem logischen Volumen.
Der Bezeichner einer Partition, die als physischer Datenträger verwendet wird, ist 0x8E (hexadezimal) auf Linux- und einigen UNIX-Systemen.