Siduction unter der Kontrolle des Logical Volume Manager installieren

Aus Siduction Wiki DE
Wechseln zu: Navigation, Suche

Begriffserklärungen

Der Logical Volume Manager, kurz LVM genannt, ist eine logische Schicht zwischen der Hardware (Festplatte), der Partition und dem Dateisystem. Logische Volumes, mit den darin enthaltenen Dateisystemen, können sich über mehrere physikalische Festplatten erstrecken. Eine nachträgliche Größenänderung ist im laufenden Betrieb durchführbar.


Im folgenden stößt man auf die Begriffe

  • PhysicalVolume (PV), die logische Einheit die die Disk aufnimmt
  • VolumeGroup (VG), der Container für alle Logical Volumes
  • LogicalVolume (LV), der Container für die Aufnahme des Dateisystems (z.B. ext3, ext4, reiserfs usw.)


Eine Volumegruppe enthält Physical Volumes (physikalische Disk) und kann durch hinzufügen einer neuen Disk erweitert werden. In einer Volumegruppe sind die dynamischen Logical Volumes enthalten. Im LV kann wiederum ein Dateisystem angelegt werden oder ein Swapdevice.


Sollzustand nach der LVM Installation

In diesem Artikel wird die Einrichtung bei einer Neuinstalltion von siduction dokumentiert. Ein nachträglicher Umbau ist mit sehr viel Mehraufwand verbunden. Ziel soll sein die gesamte Festplatte unter der Kontrolle LVM zu bringen und darin verschiedene Dateisysteme anzulegen.

Hier zwei Varianten eines LVM-System, eine die alle wichtigen Systemverzeichnisse in eigene Dateisysteme auslagert und zweite die stark vereinfacht wurde. Die Systemverzeichnisse sind hier alle in einem Logical Volume LVroot, desweiteren /home im LVhome und ein Datenverzeichnis /data im LVdata sind jeweils eigene Dateisysteme. Im weiteren Verlauf dieses Artikels beziehe ich mich auf die Variante 1.


Variante 1
Einhängepunkt LV-Name LV-Größe
/ LVroot 1 GB
/boot LVboot 256 MB
/home LVhome 5 GB
/opt LVopt 1 GB
/tmp LVtmp 256 MB
/usr LVusr 4 GB
/var LVvar 3 GB
Swap LVswap 1 GB
Variante 2
Einhängepunkt LV-Name LV-Größe
/ LVroot 20 GB
/home LVhome 25 GB
/data LVdata 200 GB
Swap LVswap 1 GB
     
     
     
     


Bei der Benennung der Volumegruppe hat sich das Namensschema VG plus eine freie Bezeichnung bewährt, z.B VGsystem für die System-Volumegruppe oder VGbackup für eine Volumegruppe die nur Backupdaten enthalten soll.

Bei der Benennung der LV's stellt man besten das Kürzel LV voran und danach den Namen des Einhängepunkt für das LV (z.B. LVhome in dem das Dateisystem /home enthalten ist). Das erleichtert die eindeutige Zuordnung von LV zu Dateisystem.

Vorteile einer LVM Installation

  • sparsame Einteilung der Festplatten-Ressource
  • sehr flexible Handhabung des Plattenplatzes, keine starren Partitionsgrenzen mehr
  • Sicherung aller Daten durch sogenannte Snapshots, auch der Rootpartition, im laufenden Betrieb möglich
  • seit GRUB2 ist auch ein Booten von einem Dateisystem, das innerhalb des LVM läuft, möglich


Vorarbeiten zur LVM Installation

Man startet wie einer Standardinstallation die aktuelle Live-CD von siduction und öffnet eine Konsole. Alle nachfolgenden Arbeiten werden als root durchgeführt, also mit dem Kommando su zu root werden. siduction hat den LVM standardmäßig installiert (Paketname lvm2) und braucht somit nicht nachinstalliert werden.

In der Konsole müssen wir als root nun noch die Partitionierung der Festplatte erledigen. Dazu öffnen wir fdisk oder cfdisk und legen eine primäre Partition sda1 an. Der Typ der Partition ist wichtig und muss mit Linux LVM (ID: 8e) bezeichnet werden. Die Platte bleibt vorerst unformatiert. Die Einstellungen abspeichern und das Partitionierungstool verlassen.


LVM Installation

Konfiguration und Einrichtung des LVM Systems

In der Konsole führe wir als root folgende Kommandos aus um den LVM zu initialisieren für die weiteren Arbeiten.

# vgscan
# vgchange -a y


Im nächsten Schritt wollen wir die physikalische Disk (hier: /dev/sda1) dem LVM bekannt machen.

# pvcreate /dev/sda1


Nun erzeugen wir den Container (VG) für die Aufnahme der Logical Volume's (LV) mit dem Namen VGsystem.

# vgcreate VGsystem /dev/sda1


Nun die LV's anlegen, dazu nutzen wir den Befehl lvcreate. Für jedes später zu erzeugende Dateisystem wird ein LV angelegt. Das Swap LV wird ebenso wie die anderen angelegt.

# lvcreate -L 1G -n LVroot /dev/VGsystem
# lvcreate -L 256M -n LVboot /dev/VGsystem
# lvcreate -L 5G -n LVhome /dev/VGsystem
# lvcreate -L 256M -n LVtmp /dev/VGsystem
# lvcreate -L 4G -n LVusr /dev/VGsystem
# lvcreate -L 4G -n LVvar /dev/VGsystem
# lvcreate -L 1G -n LVswap /dev/VGsystem
# lvcreate -l 100%FREE -n LVopt /dev/VGsystem

Die letzte Methode reservierte den restlichen Platz für LVopt.

Zur Kontrolle und zu Detailinformationen können wir uns PV, VG und LV mit folgenden Kommandos ansehen.

Listet alle angelegten PV's auf.

# pvdisplay

Listet alle angelegten VG's auf.

# vgdisplay

Listet alle angelegten LV's auf.

# lvdisplay


Nun sind die Voraussetzungen für das anlegen der Dateisysteme gelegt die wir nun per mkfs erzeugen können. Alle Dateisysteme werden so formatiert.

# mkfs.ext4 /dev/VGsystem/LVroot
# mkfs.ext4 /dev/VGsystem/LVboot
# mkfs.ext4 /dev/VGsystem/LVhome
# mkfs.ext4 /dev/VGsystem/LVopt
# mkfs.ext4 /dev/VGsystem/LVtmp
# mkfs.ext4 /dev/VGsystem/LVusr
# mkfs.ext4 /dev/VGsystem/LVvar


Das Swapdevice wird wie gewöhlich mit dem mkswap Kommando angelegt.

# mkswap /dev/VGsystem/LVswap


Das war die ganze Installation und Konfiguration des LVM und nun kann man mit dem siduction-Installer die Installation von der Live-CD anstoßen.

Standardinstallation fortführen

Man startet über das Icon auf dem Desktop den Festplatten-Installer. Die Partitionierung haben wir bereits bei der LVM-Installation erledigt und kann im Installer übersprungen werden. Bei der Auswahl der Rootpartition muss in der Liste der Dateisyteme das /dev/VGsystem/LVroot dem Einhängepunt (Mountpoint) "/" zugeordnet werden (untere Liste der Dateisysteme im Installer). Ebenso muss mit den übrigen Einhängepunkten verfahren werden. Hier nochmals die Zuordnung zur Verdeutlichung.


Devicepfad Einhängepunkt
/dev/VGsystem/LVroot /
/dev/VGsystem/LVboot /boot
/dev/VGsystem/LVhome /home
/dev/VGsystem/LVopt /opt
/dev/VGsystem/LVtmp /tmp
/dev/VGsystem/LVusr /usr
/dev/VGsystem/LVvar /var


Den Haken beim Feld formatieren mit entfernen, da wir das Root-Dateisystem schon per Hand formatiert haben. Ansonsten kann auf diesen Reiter alles auf den Standardeinstellungen bleiben. Alle anderen Angaben in den restlichen Reitern sind wie bei einer normalen Installation auszufüllen.

Abschluss der Installation

Nun kann das Live-System heruntergefahren werden, die Live-CD aus dem Laufwerk genommen und das soben installiert LVM-System gestartet werden. Wenn das System hochgefahren ist können wir uns über den Zusatnd des LVM in einer Konsole informieren.

Mit dem df Kommando sehen wir die einzelnen Filesysteme. Hier im Beispiel mein System.


# df -h
Dateisystem           Size  Used Avail Use% Eingehängt auf
/dev/mapper/VGsystem-LVroot
                    1008M  320M  638M  34% /
tmpfs                 1,9G  8,0K  1,9G   1% /lib/init/rw
udev                  1,9G  248K  1,9G   1% /dev
tmpfs                 1,9G  152K  1,9G   1% /dev/shm
/dev/mapper/VGsystem-LVboot
                     248M   46M  190M  20% /boot
/dev/mapper/VGsystem-LVhome
                     5,0G  3,5G  1,5G  71% /home
/dev/mapper/VGsystem-LVopt
                    1008M  179M  829M  18% /opt
/dev/mapper/VGsystem-LVtmp
                     504M   17M  488M   4% /tmp
/dev/mapper/VGsystem-LVusr
                     4,0G  2,7G  1,4G  67% /usr
/dev/mapper/VGsystem-LVvar
                     3,0G  1,3G  1,8G  42% /var


Fehlerbehebung beim Mounten des Rootdateisystem

Sollte beim Booten eine Fehlermeldung des mount Kommandos angezeigt werden, die allerdings keine Auswirkungen hat, ist in der Datei /etc/fstab eine Änderung durchzuführen. Statt der UUID des Rootdevices muss der Devicepfad angegeben werden.


Statt dieser Zeile mit einer UUID...

UUID=82e9f46e-9067-487f-bb5a-1db23246d36f    /   ext4    defaults,noatime,errors=remount-ro,barrier=0  0 1


....gleicher Eintrag des Root-Dateisystem mit Pfadangabe des Devices.

/dev/mapper/VGsystem-LVroot                  /   ext4    defaults,noatime,errors=remount-ro,barrier=0  0 1

Routineaufgaben mit dem LVM erledigen

Mit welchen Befehlen kann man anstehende Probleme lösen bzw. wie bekommt man mehr Informationen über die Metadaten des LVM.


Detailinfos zu einer PV, VG oder LV anzeigen

Möchte man wissen welche physikalische Disk sich einer Voluemgruppe befindet kann man das Kommando pvdisplay oder pvs verwenden.

# pvdisplay
 --- Physical volume ---
 PV Name               /dev/sda1
 VG Name               VGsys
 PV Size               465,76 GiB / not usable 1,47 MiB
 Allocatable           yes 
 PE Size               4,00 MiB
 Total PE              119234
 Free PE               88066
 Allocated PE          31168
 PV UUID               fP891A-nJoX-7onC-G9Cl-0yMd-3Wzw-a0txQC


# pvs
 PV         VG        Fmt  Attr PSize   PFree  
 /dev/sda5  VGsystem  lvm2 a-   465,76g 344,01g


Infos zur Volumegruppe sind mit dem Befehl vgdisplay oder vgs zu bekommen.


# vgdisplay VGsystem
 --- Volume group ---
 VG Name               VGsystem
 System ID             
 Format                lvm2
 Metadata Areas        1
 Metadata Sequence No  249
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                11
 Open LV               11
 Max PV                0
 Cur PV                1
 Act PV                1
 VG Size               465,76 GiB
 PE Size               4,00 MiB
 Total PE              119234
 Alloc PE / Size       31168 / 121,75 GiB
 Free  PE / Size       88066 / 344,01 GiB
 VG UUID               h23cfN-fsHS-ccdT-gilk-DeMU-X2YM-JXZfQR


# vgs VGsystem
 VG       #PV #LV #SN Attr   VSize   VFree  
 VGsystem   1  11   0 wz--n- 465,76g 344,01g


Interessant sind die Details der einzelnen Logical Volumes.


# lvdisplay /dev/VGsystem/LVhome
 --- Logical volume ---
 LV Name                /dev/VGsystem/LVhome
 VG Name                VGsystem
 LV UUID                1HUebw-dSS2-6nqx-lAKv-WmPY-byLO-FZHCkd
 LV Write Access        read/write
 LV Status              available
 # open                 1
 LV Size                5,00 GiB
 Current LE             1280
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           254:4


# lvs /dev/VGsystem/LVhome
 LV     VG       Attr   LSize Origin Snap%  Move Log Copy%  Convert
 LVhome VGsystem -wi-ao 5,00g



Erweiterung eines bestehenden LV's

Eine Erweiterung des Dateisystem z.B. bei Platzmangel oder zu 100% belegten Füllgrad wird in zwei Schritten durchgeführt. Zuerst wird das LV vergrößert, danach das darin enthaltene Dateisystem vergrößert.

Im Beispiel wird das Dateisystem /home um 5GB erweitert.

# lvextend -L +5G /dev/VGystem/LVhome
# resize2fs /dev/VGystem/LVhome


Neuanlage eines LV mit den darin enthaltenen Dateisystems

Ein zusätzliches LV neu anzulegen ist ebenso leicht zu bewerkstelligen. Zuerst die Anlage des Logical Volume, dann das Dateisystem erzeugen und zu letzt das Dateisystem mounten und ggf. in die /etc/fstab eintragen.

Im Beispiel wird ein neues ext4-Dateisystem mit 20 GByte Größe unter dem Mountpoint /mnt/music für eine Musiksammlung benötigt.

# lvcreate -L 20G -n LVmusic /dev/VGsystem
# mkfs.ext4 /dev/VGsystem/LVmusic
# mount /dev/VGsystem/LVmusic /mnt/music

Nun noch die nachfolgende Zeile in die Datei /etc/fstab hinzufügen um das automatische Mounten beim Booten zu aktivieren. Die UUID ermittelt man mit dem Kommando tune2fs.

# tune2fs -l /dev/VGsystem/LVmusic | grep UUID
Filesystem UUID:          31b63204-cad9-421e-86b3-5815f21ff0b8

/etc/fstab:

UUID=31b63204-cad9-421e-86b3-5815f21ff0b8   /mnt/music   ext4    defaults,noatime,errors=remount-ro,barrier=0  0 2


Weiterführende Informationen

Wer mehr Informationen zum LVM braucht hier ein paar Links.


HowToForge: LVM - Anleitung für Anfänger

Uni Chemnitz: Volume-Management im Linux

RedHat: Logical Volume Manager Administration

Selflinux: Linux LVM-HOWTO