{{tag> }} ====== 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 [[dokumentation:handbuch:virtualisation: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 {{ :anwenderwiki:virtualisierung:kvm:partitioning_on_host.png?nolink |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". {{ :anwenderwiki:virtualisierung:kvm:partitioning_01.png?nolink |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, {{ :anwenderwiki:virtualisierung:kvm:partitioning_02.png?nolink |Löschen und Anlegen von Paritionen}} Man schrumpft ''/dev/vda1'' auf eine 20GB Partition {{ :anwenderwiki:virtualisierung:kvm:partitioning_03.png?nolink | Verkleinern auf eine 20GB Partition}} Man legt eine neue logische Partition und zwei weitere Partition für ''swap'' und ''/var/spool/cups'' {{ :anwenderwiki:virtualisierung:kvm:partitioning_04.png?nolink |Neue erweiterte Partition anlegen}} {{ :anwenderwiki:virtualisierung:kvm:partitioning_05.png?nolink |Neue Swappartition anlegen}} {{ :anwenderwiki:virtualisierung:kvm:partitioning_06.png?nolink |Neue ''/var/spool/cups'' anlegen}} Zum Schluss wählt man im Menü "Apply all Operations" {{ :anwenderwiki:virtualisierung:kvm:partitioning_07.png?nolink |Partitionen akzeptieren und anlegen lassen.}} Nach einer Weile enden die Operationen und es ergibt sich folgendes Bild {{ :anwenderwiki:virtualisierung:kvm:partitioning_08.png?nolink |}} ==== 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: 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). # # 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]].