Benötigte Pakete
Wenn noch nicht vorhanden, muss lvm installiert werden:
aptitude install lvm2
Wie ihr ein Logical Volume nachträglich verkleinert, könnt ihr hier nachlesen.
Logical Volume hinzufügen
Ich beschreibe hier das nachträgliche Hinzufügen einer lvm-Partition für den Ordner /var/backups unter Debian Squeeze, um eine bereits vorhandene volle Festplatte zu entlasten.
Ausgangslage
Eine Ausgabe von fdisk -l und df -h schafft einen Überblick über die Ausgangslage
root# fdisk -l Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00081015 Device Boot Start End Blocks Id System /dev/sda1 * 1 993 7976241 83 Linux /dev/sda2 994 1044 409657+ 5 Extended /dev/sda5 994 1044 409626 82 Linux swap / Solaris Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x380b6e17 Device Boot Start End Blocks Id System /dev/sdb1 1 1044 8385898+ 8e Linux LVM Disk /dev/sdc: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xfeb5b445 Device Boot Start End Blocks Id System /dev/sdc1 1 1305 10482381 8e Linux LVM
root# df -h Dateisystem Size Used Avail Use% Eingehängt auf /dev/sda1 7,5G 5,5G 1,7G 78% / tmpfs 506M 0 506M 0% /lib/init/rw udev 501M 104K 501M 1% /dev tmpfs 506M 0 506M 0% /dev/shm
Wie zu erkennen ist, ist die einzig vorhandene Partion schon recht voll, so dass ich diese, durch Auslagern des Orderns /var/backups entlasten will. Zudem sind bereits zwei Festplatten zu sehen, auf den jeweils eine primäre Partition mit lvm als Partitionierungssystem eingerichtet sind.
PV, VG und LV einrichten…
…bedeutet nix anderes, als eine Partition für lvm zu aktivieren (Physical Volume erstellen).
root# pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created
Darauf wird dann eine Volume Group eingerichtet, die als Pool mehrere Physical Volumes aufnehmen kann. So kann man z.B. mehrere Festplatten innerhalb einer Volume Group verwenden. Hier sollte ein nicht all zu langer Name vergeben werden.
root# # vgcreate vg1 /dev/sdc1 Volume group "vg1" successfully created
Mit vgdisplay kann man sich dann die Einzelheiten zu der gerade eingerichteten Volume Group anschauen. Interessant ist dabei der Wert „Free PE“, der die Physikalischen Einheiten angibt, die noch für Logical Volumes zur Verfügung stehen.
# vgdisplay --- Volume group --- VG Name vg1 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 10,00 GiB PE Size 4,00 MiB Total PE 2559 Alloc PE / Size 0 / 0 Free PE / Size 2559 / 10,00 GiB VG UUID GcAW6r-L2Lp-DCkA-k3P3-al0Q-kCRf-5UXYFu
Danach erstelle ich noch ein Logical Volume (LV) mit der maximalen Anzahl (2559) von freien Physikalischen Einheiten (siehe oben). Würde man hier beim erstellen die angezeigten 10G angeben, bekäme man eine Fehlermeldung, dass nicht genügend freier Speicherplatz in der Volume Group vorhanden ist.
# lvcreate -l 2559 -n backups vg1 Logical volume "backup" created
Dateisystem einrichten
Jetzt muss das Dateisystem auf der neuen Partition noch eingerichtet werden. Ich wähle dazu hier ext3.
root# mkfs.ext3 /dev/vg1/backups mke2fs 1.41.12 (17-May-2010) Dateisystem-Label= OS-Typ: Linux Blockgröße=4096 (log=2) Fragmentgröße=4096 (log=2) Stride=0 Blöcke, Stripebreite=0 Blöcke 655360 Inodes, 2620416 Blöcke 131020 Blöcke (5.00%) reserviert für den Superuser Erster Datenblock=0 Maximale Dateisystem-Blöcke=2684354560 80 Blockgruppen 32768 Blöcke pro Gruppe, 32768 Fragmente pro Gruppe 8192 Inodes pro Gruppe Superblock-Sicherungskopien gespeichert in den Blöcken: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Schreibe Inode-Tabellen: erledigt Erstelle Journal (32768 Blöcke): erledigt Schreibe Superblöcke und Dateisystem-Accountinginformationen: erledigt Das Dateisystem wird automatisch nach jeweils 31 Einhäng-Vorgängen bzw. alle 180 Tage überprüft, je nachdem, was zuerst eintritt. Dies kann durch tune2fs -c oder -i geändert werden.
Mounten und Datenübernahme
Zuerst muss die erstellte Partition temporär gemountet werden, damit die alten Daten übernommen werden können:
root# mkdir /mnt/backups root# mount -t ext3 /dev/mapper/vg1-backups /mnt/backups
Wie zu erkennen ist, habe ich die Verknüpfung über den Device-Mapper genutzt. Jetzt können die Daten verschoben werden. ACHTUNG: Die Dateien dürfen sich nicht im Zugriff befinden!
root# mv /var/backups/* /mnt/backups/ root# ls -alh /var/backups/ insgesamt 0
Danach kann die Partion aus dem temporären Speicherort ausgehängt und in den endgültigen Speicherort eingehängt werden:
root# umount /mnt/backups root# mount -t ext3 /dev/mapper/vg1-backups /var/backups
Bitte nach Beendigung der Arbeit die Anpassungen in der /etc/fstab nicht vergessen!
Wie ihr ein Logical Volume nachträglich verkleinert, könnt ihr hier nachlesen.