Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:virtualisierung:kvm:kvm_storage]] 

Storage für den Server unter KVM

Am Beispiel der Virtualisierung des Servers kann man das Zusammenspiel zwischen Storage auf dem VM-Host und auf einem VM-Client kennenlernen. Hier wird gezeigt, wie man die 100GB .vmdk Datei der zum Download angebotenen VA in ein LVM importiert, danach neu partitioniert und verkleinert. Mit diesem Wissen ist es auch möglich die VA in ein größeres LVM zu importieren und dann das Dateisystem zu vergrößern und/oder anders zu partitionieren.

Änderungen an der vorgefertigten VA

Der Auslieferungszustand der VA virtualappliance des Servers ist z.B. eine Festplatte mit Root und Swappartition, deren Größe ermittelt werden kann:

# qemu-img info lmn61-server-disk1.vmdk 
image: lmn61-server-disk1.vmdk
file format: vmdk
virtual size: 100G (107374182400 bytes)
...

Wird diese in eine LVM-Partition (oder RAW-Datei) konvertiert:

$ sudo lvcreate -L 107374182400b -n server-test vhost-vg
  Logical volume "server-test" created
$ sudo qemu-img convert lmn61-server-disk1.vmdk -O raw /dev/vhost-vg/server-test 

so kann man anschließend die Plattenstruktur mit kpartx aufschließen und mit Hilfe von gparted bearbeiten:

$ sudo kpartx -va /dev/vhost-vg/server-test 
add map vhost--vg-server--test1 (254:11): 0 205520896 linear /dev/vhost-vg/server-test 2048
add map vhost--vg-server--test2 (254:12): 0 2 linear /dev/vhost-vg/server-test 205524990
add map vhost--vg-server--test5 : 0 4188160 linear /dev/vhost-vg/server-test 205524992
$ sudo gparted /dev/mapper/vhost--vg-server--test

Partitionierung auf dem VM-Host mit gparted ändern

Änderungen an der Partition mit Hilfe einer Ubuntu-Live-CD

Wenn auf dem VM-Host keine Grafikkarte vorhanden ist, oder gparted nicht remote gestartet werden kann, kann natürlich auch noch ein VM-Manager wie „virt-manager“ über eine Remote-Verbindung verwendet werden. Man legt virtuell eine Live-CD ein (hier: Ubuntu Desktop 14.04) und startet „gparted“. Ubuntu Live-CD 14.04 gparted start

Verkleinerung der Root-Partition

In dieser Anleitung wird die Root-Partition verkleinert, die Swap-Partition erstellt und eine Partition für /var/spool/cups erstellt. /var und /home dagegen werden im nächsten Abschnitt als eigene LVM-Partitionen (oder Dateien) angelegt.

Man löscht die gegenbenen Partition und möchte die Partition /dev/vda1 verkleinern, Löschen und Anlegen von Paritionen

Man schrumpft /dev/vda1 auf eine 20GB Partition 
Verkleinern auf eine 20GB Partition

Man legt eine neue logische Partition und zwei weitere Partition für swap und /var/spool/cups Neue erweiterte Partition anlegen Neue Swappartition anlegen Neue ''/var/spool/cups'' anlegen Zum Schluss wählt man im Menü „Apply all Operations“ Partitionen akzeptieren und anlegen lassen.

Nach einer Weile enden die Operationen und es ergibt sich folgendes Bild

Verkleinerung des LVM-Containers

Wenn man ordentlich genau herausliest, welche maximale Größe die neue letzte Partition hat, kann man das LVM-Volume danach bis zu diesem Byte verkleinern man beachte das „b“ hinter der Menge in Byte.

# lvresize -L 31458328576b /dev/vhost-vg/server 
  Rounding size to boundary between physical extents: 29,30 GiB
  WARNING: Reducing active logical volume to 29,30 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce server? [y/n]: y
  Size of logical volume vhost-vg/server changed from 100,00 GiB (25600 extents) to 29,30 GiB (7501 extents).
  Logical volume server successfully resized

Nacharbeiten: Anpassen der fstab

Im obigen Beispiel wurde die SWAP-Partition gelöscht und neu angelegt. In der Server-VA muss man diese noch neu zuweisen (und eventuelle andere Partitionen formatieren). Hinweis: gparted übernimmt einem diese Aufgabe schon.

# mkswap /dev/vda5 
Swapbereich Version 1 wird angelegt, Größe = 2047996 KiB
kein Label, UUID=95eee7b0-48f9-4e47-8649-7c3374935ab1

# mkfs.ext4 -L var+spool+cups /dev/vda6

Für eine Produktivumgebung aus einer vorkonfigurierten VA sollte man noch /home und /var adäquat bemessen anlegen. In diesem Fall werden zwei neue LVM-Container angelegt, diese der VA des Servers hinzugefügt und in der VM diese direkt formatiert:

Auf dem VM-Host:
$ sudo lvcreate vhost-vg -L 500G -n server-var
$ sudo lvcreate vhost-vg -L 500G -n server-home
In der VM des servers:
# mkfs.ext4 -L home /dev/vdb
# mkfs.ext4 -L var /dev/vdc

Der Befehl blkid schafft einen Überblick über die zu verwendenden UUIDs in der /etc/fstab

# blkid 
/dev/vda1: LABEL="root" UUID="8a02c085-0ed6-48a2-8e44-9544fce933d8" TYPE="ext4" 
/dev/vda5: LABEL="swap" UUID="95eee7b0-48f9-4e47-8649-7c3374935ab1" TYPE="swap"
/dev/vda6: LABEL="var+spool+cups" UUID="c9761e99-74fb-4eaa-b987-68ff3a23a4fb" TYPE="ext4" 
/dev/vdb: LABEL="home" UUID="2b4aa10f-4286-4768-94f8-3ce45edc85a6" TYPE="ext4" 
/dev/vdc: LABEL="var" UUID="28223da6-658d-4b69-a8c3-160d94c59add" TYPE="ext4"

Diese UUIDs werde in die /etc/fstab neu eingetragen. Ebenso kann der Vollständigkeit halber die SWAP-UUID noch in /etc/initramfs-tools/conf.d/resume eingetragen werden.

Quota An dieser Stelle ist es sinnvoll, die usrquota,grpquota-Optionen nur den Partitionen /home und /var/spool/cups zu geben und z.B: von der /-Partition wieder zu entfernen.

Nach einem reboot kann man die Dateien

/aquota.user
/aquota.group 

löschen, da / nicht mehr quota-fähig ist. Die entsprechenden aquota.*-Dateien unterhalb der quotierten Partitionen werden automatisch neu erstellt.

Beispielhafte /etc/fstab für eine Produktivumgebung aus einer vorkonfigurierten VA

/etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda1 during installation
UUID=8a02c085-0ed6-48a2-8e44-9544fce933d8 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=95eee7b0-48f9-4e47-8649-7c3374935ab1        none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
 
UUID=2b4aa10f-4286-4768-94f8-3ce45edc85a6       /home   ext4    usrquota,grpquota       0       1
UUID=28223da6-658d-4b69-a8c3-160d94c59add       /var    ext4    defaults        0       1
UUID=c9761e99-74fb-4eaa-b987-68ff3a23a4fb       /var/spool/cups ext4    usrquota,grpquota       0       1

Nun muss man nur noch die Daten unter /home, /var und /var/spool/cups vom Root-System auf die Partitionen verteilen. Dies geht am besten im Single-user-Modus: # init 1.
Eine ausführliche Anleitung zum „Umziehen“ des home-Verzeichnisses (analog für var) gibt es hier https://wiki.ubuntuusers.de/Home_umziehen.

 [[anwenderwiki:virtualisierung:kvm:kvm_storage]] anwenderwiki/virtualisierung/kvm/kvm_storage.txt · Zuletzt geändert: 2015/07/23 21:27 von 127.0.0.1