LVM Partition Resizing – Teil 2

Der erste Teil ist ja schon ziemlich alt. Aber jetzt muss ich doch mal den Teil 2 dazu verfassen. Der Teil ist aber nichts für schwache Nerven! Ich hatte das Problem, dass ich eine raw-Device einer KVM Maschine vergrößert hatte. Danach habe ich festgestellt, dass dort bereits 4 primäre Partitionen angelegt sind. Eine zweite Platte wollte ich aber nicht einhängen. Was nun?

Der „Trick“ ist einfach. Man löscht die letzte Partiton mit fdisk und legt sie mit dem identischen Start-Zylinder neu an. Unbedingt den identischen Start-Zylinder nehmen! Ansonsten war’s das mit den Daten! Danach kann man die entsprechende Partition mit pvresize vergrößern, dann das logical Volum mit lvextend und anschließend das Filesystem mit resizefs.

Also an 2 Stellen bei RAW-Devices aufpassen:

  1. Beim Vergrößern des Sparse Files die entgültige Größe angeben und nicht umwievil vergrößert wird. Und
  2. Beim Neuanlegen der Partition unbedingt den gleichen Start-Zylindern nehmen

Qemu Image mounten

Grr, hab mir mal wieder ein Qemu Image einer VM Platte mitgenommen und brauch jetzt Daten daraus. Was tun? Wie üblich habe ich keine Lust die ganze Platte zusammen mit der Systemkonfig über das Netz auf einen KVM Host zu kopieren und dort wieder zu booten. Daher hier der Weg, wie es sich lokal mounten lässt. Die einzige Voraussetzung ist dass man kpartx installiert hat. Also hier die Schritte:

  • Ohne LVM: Device-Maps erstellen
    sudo kpartx -l image.qemu

    Man bekommt dann sowas wie:

    loop0p1 : 0 401562 /dev/loop0 63
    loop0p2 : 0 39471705 /dev/loop0 401625
    loop0p3 : 0 2040255 /dev/loop0 39873330
    

    Das lässt sich dann einfach per mount einhängen.

  • Mit LVM:muss noch das LVM gescannt werden
    Nachdem die Partitionen in dem Qemu-Image bei mir ein LVM waren musste ich die erst mal lernen. Das geht wie folgt:

    sudo vgscan

    Was wiederum folgendes liefert:

    sudo lvs
      LV      VG   Attr   LSize  Origin Snap%  Move Log Copy%  Convert
      rootvol myvg -wi-a- 18,81g                                      
    

    Anschließend kann man das LVM ganz einfach mounten

     sudo mount /dev/myvg /mnt

BTW: Das geht natürlich auch mit Xen 😉

KVM auf paravirtualisierte Block-Devices umstellen (virtio)

Alte VMs sind oft ohne virtio installiert. Bei der Umstellung ändert sich bei der Netzwerkschnittstelle nur die Mac-Adresse (wenn es nicht konfiguriert ist), was eigentlich zu keinen Problemen führt, ausser dass man die Konfig innerhalb oder außerhalb der VM anpassen muss. Anders ist es beim Block-Device. Kennt der Kernel beim Booten kein virtio, so führt das schnell zur einer Kernelpanik. Verhindern lässt sich das indem man vor der Umstellung folgendes ausführt:

mkinitrd --with virtio_pci --with virtio_blk -f /boot/initrd-$(uname -r).img $(uname -r) 

Anschließend reicht es die KVM Konfig wie folgt zu ändern/ergänzen:

    
      
    
    
      
    

KVM Image vergrößern

Ich bin sehr konservativ was Plattenplatz betrifft. Lieber lege ich wenig an und erweitere dann, als s zu viel brach herum liegen lassen. Daher muss ich immer wieder Images vergrößern. Ich schreib mir hier mal die paar Schritte auf:

  1. Image sichern:
    cp kvm-image.img kvm-image.img.backup
    
  2. Typ der Partition ermitteln:
    qemu-img info kvm-image.img 
    
    image: kvm-image.img
    file format: raw
    virtual size: 4.0G (4294967296 bytes)
    disk size: 3.7G
    
  3. Gegebenenfalls Typ umwandeln:
    Ist das Image kein raw Format, so konvertiert man es erst mal ins raw Format

    qemu-img convert -f qcow2 kvm-image.img -O raw kvm-image.raw
    
  4. Image vergrößern:
    Hier z.B. wird das Image auf 10GB (10240*1MB) erweitert:

    dd if=/dev/zero of=kvm-image.raw bs=1M count=0 seek=10240
    

Anschließend ist Platz für eine neue Partition. Und diese kann etwa ein bestehendes LVM wie hier beschrieben vergrößern.

CentOS 5.4 ist da

Das ging mal wieder schneller. Nachdem am 2. September RHEL 5.4 erschienen ist, hat das CentOS dieses mal nicht so lange wie bei 5.3 auf sich warten lassen. Heute kam die Ankündigung, dass CentOS 5.4 fertig ist. Ich habe gleich einen ganzen Patzen Server aktualisiert. Hat wieder problemlos funktioniert. 5.4 unterstützt nun auch endlich offiziell KVM. Das war auch der Grund warum ich gleich viele Server auf einen Schlag wie folgt aktualisiert habe:

yum clean all
yum upgrade

Zusammen mit dem Reboot (wegen des neuen Kernels) war gar nicht mehr notwendig.

Änderungen zu 5.3:

  • Nach dem Update ist mir gleich aufgefallen, dass die Tastatur auf der KVM/VNC Konsole auch die ist, die man einstellt. Sehr gut!
  • Ein winzige Änderung musste ich nach der Aktualisierung per Hand machen. qemu-kvm liegt jetzt nicht mehr unter /usr/bin sondern unter /usr/libexec. Daher musste ich die KVM Configs dahingehend anpassen.

Ich nehme den Artikel mal und sammle mir hier alles was ich beim Updaten beachten muss.

Top 10

Toms Kommentar hat mich mal motiviert meine aktuellen Top 10 aus der [[FOSS]] hier auf zu schreiben.

  1. KVM
    Virtualisierung ist das Thema Nummer eins zur Zeit. Damit sind erst viele andere Sachen möglich. Aktuell lasse ich Dank KVM ein Centos 4.7 auf einer Centos 5.2 als VM laufen. Xen ist raus gefallen aus meiner Top 10 Liste. Es mag zwar sicherer sein aber wer es nicht schafft aktuell zu bleiben fliegt raus.
  2. OpenNMS
    OpenNMS ist wirklich super. Dank Autodiscover hat man super schnell sein Netzwerk integriert und überwacht. Die integrierten Collectoren und Monitore erlauben es auch ganz einfach eigene Test zu integrieren ohne dass man was programmieren muss. Nagios hat es leider nicht mir in die Liste geschafft. Die Nagios Entwicklung ist leider viel zu langsam und Nagios selbst fehlen viel zu viele Selbstverständlichkeiten. Der Zug ist abgefahren.
  3. HAProxy
    HAProxy ist endlich ein wirklicher HTTP(s) Loadbalancer mit allen Features die man braucht. In Minuten eingerichtet und performant ohne Ende. LVS mag zwar ganz nett sein für andere TCP Geschichten aber ehrlich gesagt hatte ich noch nie für etwas anderes wie HTTP(s) Bedarf.
  4. Heartbeat
    Heartbeat ist meine HA-Lösung und dass obwohl ich hier immer noch auf die Version 1! setze. Bei meinen Cluster laufen normalerweise die Resourcen sowieso auf beiden Nodes, so dass ich nur die IP schwenken muss. Trotzdem muss ich mir mal Pacemaker genauer ansehen um beim Ausfall einer Resource auch zu schwenken.
  5. Quagga
    Nichts ist schlimmer als den Überblick zu verlieren. Quagga ist der Routing Daemon unter Linux für mich. Dank der „Cisco“-like Konfiguration kommt man sofort damit zu recht. Perfekt!
  6. WordPress
    Dank WordPress dokumentieren ich endlich meine privaten IT Krempel und finde ihn auch wieder. Durch die Öffentlichkeit meines Blogs bekomme ich auch sehr viel Tipps und Anregungen.
  7. OpenVPN
    Bei OpenVPN fehlt mir nur noch der Client fürs Handy. Zusammen mit Quagga ist OpenVPN wirklich super.
  8. Apache Http Server
    Obwohl es zig andere leichtere Server gibt ist der Apache immer noch mein Arbeitspferd. Richtig konfiguriert ist er richtig schnell.
  9. Postfix
    Kein MTA Daemon ist für mich schneller und einfacher eingerichtet. Neben der Performance von Postfix schätze ich auch die leichte Erweiterbarkeit.
  10. Bacula
    Backups sind super wichtig. Bacula hat mir schon oft den Hintern gerettet. Danke!

Mal sehen wie sich die Statistik so weiter entwickelt. Vor einem halben Jahr oder früher hätte sie noch ganz anders ausgesehen (Xen, Nagios, Exim, dokuwiki, LVS, …)

ConVirt

Nachdem ich oVirt schon etwas beobachte aber es immer noch keine absehbare Xen Unterstützung gibt, muss ich mir doch mal die Alternativen ansehen. Am weitesten ist da sicher ConVirt. ConVirt kann Xen und KVM, also ideal für meine Zukunft. Blöd ist nur, dass der Status der „Web based administration“ in ConVirt noch to be done ist. Zur Zeit geht „nur“ die Gnome-Oberfläche. Sieht aber ziemlich gut aus.

oVirt oder da geht’s lang

ovirtVirtualisierung ist mit Sicherheit das Thema mit dem ich mich 2009 privat primär auseinander setzen werde. Bisher beschränkt sich meine Erfahrung auf VServer, Xen und VMWare. VServer nehme ich wenn’s einfach und schnell gehen muss. Xen war bisher die freie Alternative für komplexere Themen. VMWare ist die Profi Software.

VMware unterscheidet sich bisher von den freien Alternativen in der schieren Anzahl der Möglichkeiten. Meine VMs laufen auf meinem Notebook ganz simple unterwegs oder hochverfügbar mit VMotion auf einem ESX Cluster im RZ oder auch auf beliebiger Leihhardware an Veranstaltungen. Außerdem sind VMs unter VMware sehr sehr einfach ein zu richten. Man braucht etwa keine Linux Kenntnisse um eine neue Linux VM auf einem ESX Server hochverfügbar zum Laufen zu bringen. Alles geht über die sehr gute Administrationssoftware. Und genau da fehlt es noch bei den freien Alternativen. „oVirt oder da geht’s lang“ weiterlesen

VMImages shrinken

Egal ob VMware, Xen oder KVM gelegentlich will ich die Images sichern oder transportieren. Da ist es gut, wenn sie so klein wie nur irgend möglich sind. Bei VMware gibt’s zwar in der vmware-toolbox shrink. Das gibt aber keinen Speicherplatz zurück. Deswegen ist es am besten die leeren Blöcke zu löschen. Dazu einfach die Platte bis zum Anschlag wie folgt mit Nullen füllen:

dd if=/dev/zero of=/tmp/zero.dat bs=1024K count=1024 ; sync ; sleep 1 ; sync ; rm /tmp/zero.dat

Anschließend ist das Image komprimiert erheblich kleiner.