lvm

Dies ist eine alte Version des Dokuments!


LVM

Abstraktionsschicht, um Partitionen flexibel über mehrere physische Devices zu bilden. Fasst eine oder mehrere Disks zu einem Logical Volume zusammen. Mehrere Physical Volumes (Platten) bilden eine Volume Group. In der Volume Group werden Logical Volumes gebildet. In den LV werden die Dateisysteme angelegt.

Dateisystem

^^

Logical Volume (LV)

^^

Volume Group (VG)

^^

Physical Volume (PV, HDD1 -- HDD2)

pvdisplay zeigt alle LVM Volumes und die darin zusammengefassten physischen Devices

root@tarapiroe /mnt # pvdisplay
  --- Physical volume ---
  PV Name               /dev/md3
  VG Name               data1
  PV Size               <2,66 TiB / not usable 2,31 MiB
  Allocatable           yes
  PE Size               4,00 MiB
  Total PE              696964
  Free PE               364164
  Allocated PE          332800
  PV UUID               JGWU94-FLRS-zV60-ZAzg-gRvE-ifmR-qLIdMs

  --- Physical volume ---
  PV Name               /dev/nbd0p5
  VG Name               ffes-vg
  PV Size               19,52 GiB / not usable 2,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              4997
  Free PE               0
  Allocated PE          4997
  PV UUID               jqhYf1-VhUf-ApgM-vPtW-alD3-EFkZ-etDGgz

vgdisplay zeigt die Volume Groups

root@tarapiroe /mnt # pvdisplay
  --- Physical volume ---
  PV Name               /dev/md3
  VG Name               data1
  PV Size               <2,66 TiB / not usable 2,31 MiB
  Allocatable           yes
  PE Size               4,00 MiB
  Total PE              696964
  Free PE               364164
  Allocated PE          332800
  PV UUID               JGWU94-FLRS-zV60-ZAzg-gRvE-ifmR-qLIdMs

  --- Physical volume ---
  PV Name               /dev/nbd0p5
  VG Name               ffes-vg
  PV Size               19,52 GiB / not usable 2,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              4997
  Free PE               0
  Allocated PE          4997
  PV UUID               jqhYf1-VhUf-ApgM-vPtW-alD3-EFkZ-etDGgz

lvddisplay zeigt die logical volumes

root@tarapiroe /mnt # lvdisplay
  --- Logical volume ---
  LV Path                /dev/data1/VMs
  LV Name                VMs
  VG Name                data1
  LV UUID                ccDAJ2-sN1H-lRYL-fQFf-q11k-FtSB-7nSSQO
  LV Write Access        read/write
  LV Creation host, time ,
  LV Status              available
  # open                 1
  LV Size                300,00 GiB
  Current LE             76800
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/data1/Backup
  LV Name                Backup
  VG Name                data1
  LV UUID                2aABCv-Dwp0-W9Wu-0SpK-Xrwy-fHVF-pDEpge
  LV Write Access        read/write
  LV Creation host, time ,
  LV Status              available
  # open                 1
  LV Size                1000,00 GiB
  Current LE             256000
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/ffes-vg/root
  LV Name                root
  VG Name                ffes-vg
  LV UUID                A9CTeG-Da3f-CtnJ-Hgkd-Yp6r-NpJ0-yaiwlT
  LV Write Access        read/write
  LV Creation host, time ffes, 2017-11-22 10:33:21 +0100
  LV Status              available
  # open                 0
  LV Size                <17,52 GiB
  Current LE             4485
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Logical volume ---
  LV Path                /dev/ffes-vg/swap_1
  LV Name                swap_1
  VG Name                ffes-vg
  LV UUID                tTYpH9-jJsi-0HsE-twF2-3UtO-NZQB-UWepLj
  LV Write Access        read/write
  LV Creation host, time ffes, 2017-11-22 10:33:21 +0100
  LV Status              available
  # open                 0
  LV Size                2,00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

xxx

xxx

xxx

===========================

Virtualbox

Alle Kommandozeilen Befehle als User "vbox" (mit sudo) durchführen, nicht als root. Grund: Beim Starten einer vm als Root werden VM-Daten mit root Rechten angelegt, die anschliessend für den vbox User nicht mehr editierbar sind. Das führt zu Fehlermeldungen und nicht startbaren VMs, u.a. in der phpvirtualbox Oberfläche.

Laufende VMs und Platten auflisten

vboxmanage list vms voxmanage list runningvms

Details einer bestimmten VM zeigen:

vboxmanage showvminfo www.netzwissen.de

Festplatten auflisten (über alle VMs)

VBoxManage list hdds

Details einer bestimmten HDD auflisten:

vbox@tarapiroe:/mnt/vbox/VirtualBox VMs/miteinander-esslingen.de$

VBoxManage showmediuminfo disk fluechtlinge-esslingen.de2b.vdi UUID: 252b4e07-1eb4-4f41-b256-7655b2b37788 Parent UUID: base State: created Type: normal (base) Location: /mnt/vbox/VirtualBox VMs/miteinander-esslingen.de/fluechtlinge-esslingen.de2b.vdi Storage format: VDI Format variant: dynamic default Capacity: 20480 MBytes Size on disk: 13590 MBytes Encryption: disabled In use by VMs: miteinander-esslingen.de (UUID: a884b3e1-ee26-4122-9738-de3c8ee7008a)

Festplatten Registrierung aufheben

VBoxManage closemedium [disk|dvd|floppy] [uuid@filename] Mit –delete wird die Datei gelöscht

'

'

vboxmanage controlvm [vm name] savestate

VBoxManage controlvm <vm> pause

VBoxManage controlvm <vm> resume

VBoxManage controlvm <vm> reset ==== Normaler Shutdown (echtes Runterfahren ohne savestate)

==== VBoxManage controlvm <vm> acpipowerbutton ==== Harter Shutdown (Strom weg): ====

VBoxManage controlvm <vm> poweroff

vboxmanage startvm [vm name] –type headless

vboxmanage modifyvm TestVM –autostart-enabled on

*.vdi mounten siehe auch https://www.schnatterente.net/software/virtualbox-vdi-image-in-linux-mounten Wir brauchen ein VirtualBox Disk Image (VDI), fdisk, QEMU und einen Linux-Kernel, der Network Block Devices (NBD) sowie Virtualisierung (Kernel-based Virtual Machine = KVM) unterstützt. Ggf. QEMU nachinstallieren mit apt install qemu-system-x86 Modul in den Kernel landen laden modprobe nbd Danach das vdi Image reinladen qemu-nbd -c /dev/nbd0 /mnt/vbox/VirtualBox VMs/www.netzwissen.de/www.netzwissen.de.vdi Mit fdisk sieht man die Partitionstabelle # fdisk -l /dev/nbd0 Wir sehen, dass fdisk alle vorhandenen Partitionen auflistet und ihnen auch ein Gerät zuordnet. Das Verwirrende ist nun, dass es die Geräte-Dateien /dev/nbd0pX nicht gibt. Wir haben nur Zugriff auf /dev/nbd0. Um dennoch eine Partition einhängen zu können, behelfen wir uns daher mit einem Trick. Wir geben beim Mounten den Beginn der jeweiligen Partition als Offset an und benutzen als Gerät einfach die Festplatte /dev/nbd0 (und eben nicht die spezifische Partition). mount -o offset=1048576 /dev/nbd0 /mnt/vdi/ Damit ist die erste Partition der Festplatte in /mnt/vdi/ eingehängt. Nun fragt ihr euch sicher, woher die Zahl 1048576 kommt. Dabei handelt es sich um das Produkt der Blockgröße (512 Byte) und des Anfangs der zu mountenden Partition auf der Festplatte (2048). Man muss also den Offset richtig setzen: fdisk -l /dev/nbd0 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x000e0051 Device Boot Start End Sectors Size Id Type /dev/nbd0p1 * 2048 499711 497664 243M 83 Linux /dev/nbd0p2 501758 117438463 116936706 55.8G 5 Extended /dev/nbd0p5 501760 117438463 116936704 55.8G 8e Linux LVM Mount z.B. für die dritte Partition mit -o (512 x 501760) : mount -o offset=256901120 -t ext4 /dev/nbd0 /mnt/vdi1/ Nach Abschluss aller Arbeiten über das Block Device dieses wieder abmelden: root@tarapiroe /mnt # qemu-nbd -d /dev/nbd0 /dev/nbd0 disconnected root@tarapiroe /mnt # qemu-nbd -d /dev/nbd1 /dev/nbd1 disconnected ====== Mounten einer LVM Partition ====== Mit pvs die Volume Groups anzeigen: root@tarapiroe /home/thommie # pvs PV VG Fmt Attr PSize PFree /dev/loop1 www2 lvm2 a– 194.00g 138.24g /dev/md3 data1 lvm2 a– 2.66t 1.39t Danach mit lvdisplay den Namen des logical volumes ermitteln: root@tarapiroe /home/thommie # lvdisplay /dev/www2 — Logical volume — LV Path /dev/www2/root LV Name root VG Name www2 LV UUID EuK1p3-7Q76-URFe-v6eX-HS8M-02xc-TTNCqR LV Write Access read/write LV Creation host, time , LV Status available # open 0 LV Size 54.76 GiB Current LE 14018 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:2 — Logical volume — LV Path /dev/www2/swap_1 LV Name swap_1 VG Name www2 LV UUID NwcGd9-f1Ng-MIqE-bXTC-x0dd-K69j-nVpQ3q LV Write Access read/write LV Creation host, time , LV Status available # open 0 LV Size 1.00 GiB Current LE 256 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:3 Daraus bildet sich der Mount Befehl: root@tarapiroe /home/thommie # mount /dev/www2/root /mnt/vdi1 Danach mit umount /mnt/vdi wieder unmounten und das VDI abmelden mit # qemu-nbd -d /dev/nbd0 Umwandeln einer *.vdi Platte ins RAW Format VBoxManage clonehd –format RAW /mnt/backup/vbox/vboxsnapshot/VirtualBox VMs/miteinander-esslingen.de/fluechtlinge-esslingen.de.vdi /home/thommie/miteinander-esslingen.img Achtung: ggf. voher die Originalgrösse mit VBoxManage showhdinfo [your vdi file] prüfen. Danach mounten mount -t ext3 -o loop,rw ./ubuntu.img /mnt Virtuelle Platten verkleinern & vergrößern

Alle Operationen nur mit hart abgeschalteter VM (acpipowerbutton), savestate reicht nicht.

Achtung: resize geht nur, wenn die virtuelle vdi Datei in format variant "dynamic default" ist. Falls es eine "fixed variant" ist, erst mit clonehd umkopieren:

vboxmanage clonehd fluechtlinge-esslingen.de.vdi fluechtlinge-esslingen.deb.vdi

Verkleinern

Virtuelle Platten mit dynamischer Grösse werden mit der Zeit grösser. Aber es gibt keinen Mechanismus, um Plattenplatz, der innerhalb der der VM gelöscht wurde, wieder an den Host zurück zu geben. Unterm Strich sind die virtuellen Platten real größer als innerhalb der VM. Mit diesem Mechanismus lässt sich eine virtuelle Platte wieder verkleinern:

zerofree in der VM installieren in der VM die Partition mit read only mounten, z.B.:

mount -n -o remount,ro -t ext4 /dev/sdb1 /

Dann mit zerofree -v /dev/sdb1 unbenutzte Bereiche der Platte mit Nullen beschreiben VM wieder runterfahren und auf dem Host die reale Plattendatei (*.vdi) verkleinern

VBoxManage modifyhd –compact /path/to/virtualboximage.vdi

Für die Root Partition die VM neu starten und den Rescue Mode wählen (um die Root Partition freizugeben). Danach wie oben. Vergrößern

VM mit acpipowerbutton runterfahren, dann aktuellen Status der Platte zeigen lassen vboxmanage showhdinfo /mnt/vbox/VirtualBox VMs/www.netzwissen.de/www.netzwissen.de2.vdi

…. zeigt die Informationen zu einer virtuellen Platte vbox@tarapiroe:/home/thommie$ vboxmanage showhdinfo /mnt/vbox/VirtualBox VMs/www.netzwissen.de/www.netzwissen.de2.vdi UUID: ce28b063-c7f7-429f-9c81-6163489c913a Parent UUID: base State: created Type: normal (base) Location: /mnt/vbox/VirtualBox VMs/www.netzwissen.de/www.netzwissen.de2.vdi Storage format: VDI Format variant: dynamic default Capacity: 61440 MBytes Size on disk: 40804 MBytes Encryption: disabled In use by VMs: www.netzwissen.de (UUID: 9eb328b0-ff15-4453-b17e-fad1e10029c7)

Platte umkopieren, falls "format variant = fixed"

vbox@tarapiroe:/mnt/vbox/VirtualBox VMs/miteinander-esslingen.de$ vboxmanage clonehd fluechtlinge-esslingen.de.vdi fluechtlinge-esslingen.dec.vdi

Jetzt sollte es einen vergrößerbare variant sein:

Location: /mnt/vbox/VirtualBox VMs/miteinander-esslingen.de/fluechtlinge-esslingen.dec.vdi Storage format: VDI Format variant: dynamic default

Dann resize der *.vdi, wobei die Größe in MB angegeben wird, 15G = 15,360MB vboxmanage modifymedium /mnt/vbox/VirtualBox VMs/www.netzwissen.de/www.netzwissen.de2.vdi –resize 61440

Je nach Partitionierung müssen Partitionen zuerst verschoben werden, bevor man sie vergrößern kann. werden. Beispiel hier:

https://www.netzgewitter.com/2011/08/resizing-linux-partition/ Vergrössern einer virtuellen Root Partition

Loop Device auf dem Host anlegen modprobe nbd qemu-nbd -c /dev/nbd0 fluechtlinge-esslingen.deb.vdi parted /dev/nbd0

Doku zu parted: https://www.gnu.org/software/parted/manual/parted.html

Partitionstabelle zeigen mit p. Mit "unit cyl" sieht man, wo die Partitionen genau liegen. (parted) p Model: Unknown (unknown) Disk /dev/nbd0: 12.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 6442MB 6441MB primary ext4 boot 2 6443MB 8589MB 2145MB extended 5 6443MB 8589MB 2145MB logical linux-swap(v1) (parted) unit cyl (parted) p Model: Unknown (unknown) Disk /dev/nbd0: 1566cyl Sector size (logical/physical): 512B/512B BIOS cylinder,head,sector geometry: 1566,255,63. Each cylinder is 8225kB. Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 0cyl 783cyl 783cyl primary ext4 boot 2 783cyl 1044cyl 260cyl extended 5 783cyl 1044cyl 260cyl logical linux-swap(v1)

Mir rm 2 löscht man die extended Partition, dann ist auch as logical volume für den swap space weg. Dann legt man den Swap am Ende der Platte neu an.

Syntax mkpart part-type [fs-type] start end, also legt mkpart extended -61 -1 ''mkpart logical linux-swap -61 -1

eine Swap Partiton mit 61 x 8225kB = 492 MB an Model: Unknown (unknown) Disk /dev/nbd0: 12885MB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1.05MB 6442MB 6441MB primary ext4 boot 2 12384MB 12877MB 493MB extended lba 5 12385MB 12877MB 492MB logical linux-swap(v1) lba

print free zeigt freien Platz an (parted) print free Model: Unknown (unknown) Disk /dev/nbd0: 12.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 32.3kB 1049kB 1016kB Free Space 1 1049kB 12.8GB 12.8GB primary ext4 boot 12.8GB 12.9GB 60.8MB Free Space

Nach Änderung der Partitionstabelle muss aus dem Host heraus das Filesystem vergrößert und der gelöschte Swapspace neu angelegt werden: resize2fs /dev/nbd0p1

Für Swap root@tarapiroe /mnt/vbox/VirtualBox VMs/miteinander-esslingen.de # mkswap /dev/nbd1p5 Setting up swapspace version 1, size = 469 MiB (491778048 bytes) no label, UUID=f6929655-4ba7-4548-95e3-a1a32250d473 Installation Virtualbox auf Ubuntu

Virtualbox repository und key hinzufügen vi /etc/apt/sources.list: – append: – deb http://download.virtualbox.org/virtualbox/debian precise contrib —- wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add - sudo apt-get update sudo apt-get install dkms sudo apt-get install virtualbox-4.1 –no-install-recommends VBoxManage -v ⇒ 4.1.22r80657 Extension Pack

Auflisten

sudo vboxmanage list extpacks

Download sudo wget http://download.virtualbox.org/virtualbox/4.1.22/Oracle_VM_VirtualBox_Extension_Pack-4.1.22-80657.vbox-extpack

Als vbox: alles VMs runterfahren. Danach als root: Alte Version rauswerfen sudo VBoxManage extpack uninstall "Oracle VM VirtualBox Extension_Pack"

Als root: neue Version installieren sudo VBoxManage extpack install [Dateiname]

Danach vms wieder starten

Bei erster Installation: sudo groupadd vboxusers sudo useradd -m vbox -G vboxusers sudo passwd vbox xxxxxxxxxxxxx echo "VBOXWEB_USER=vbox"> /etc/default/virtualbox sudo service vboxweb-service start sudo update-rc.d vboxweb-service defaults PHP Virtualbox Update sudo wget `wget -q -O - http://phpvirtualbox.googlecode.com/files/LATEST.txt` -O phpvirtualbox-latest.zip sudo unzip phpvirtualbox-*.zip sudo rm phpvirtualbox-*.zip sudo mv phpvirtualbox-* vbox sudo mv /var/www/vbox/config.php-example /var/www/vbox/config.php sudo vi /var/www/vbox/config.php – change: – var $username = 'vbox'; var $password = 'xxxxxxxxxxxxxxx'; var $location = 'http://127.0.0.1:18083/'; — chown -R www-data:www-data vbox

In /etc/init.d/vboxautostart-service bei Stop ergänzt: stop() { [ -z "$VBOXAUTOSTART_DB" ] && exit 0 [ -z "$VBOXAUTOSTART_CONFIG" ] && exit 0

Damit uns die Kiste nicht ungesichert runterfaellt: VBM="/usr/bin/sudo -i -u vbox /usr/bin/vboxmanage" $VBM list runningvms | sed -r 's/"(.+)".*/1/' | while read R do echo "$R is sent to savestate!" $VBM controlvm "$R" savestate done exit 0

xxx

  • lvm.1557591928.txt.gz
  • Zuletzt geändert: 05/03/2024 - 10:52
  • (Externe Bearbeitung)