Xen + ZFS in a box performance

Leider musste ich immer wieder feststellen, dass ZFS sehr (und ich meine sehr) Performance hungrig ist. Dies führt immer wieder dazu, dass die Performance der VMs die im xVM laufen beeinträchtigt wird. Workaround: PIN der Dom0 CPU auf einen Core und Nutzung der verbleibenden Cores für die VMs. Dies geht im laufenden Betrieb so:


xm vcpu-set Domain-0 1 # Nur eine vCPU für die Dom0
xm vcpu-pin Domain-0 0 0 # Diese eine vCPU soll nur auf Core 0 laufen
xm vcpu-pin VM all 1-3 # Die vCPU(s) der VM sollen nur Cords 1-3 nutzen

Erfreulicherweise bekommt die libvirt dies auch gleich mit und fügt ein <vcpu cpuset='1-3'>1</vcpu> in die XML Config mit ein.

Damit die Dom0 nach einem Reboot mit einer vCPU und nur auf Core 0 läuft müssen dem Hypervisor die Optionen dom0_vcpus_pin=true dom0_max_vcpus=1 mitgegeben werden.

OpenSolaris is dead! (Aber noch nicht ganz)

Aufgrund eines Hardwareproblems bin ich unverhofft dazu gekommen meine OpenSolaris Virtualisierungsumgebung noch einmal zu aktualisieren. Somit läuft das ganze nun auf snv_134 mit Xen/xVM 3.4. Bisher läuft alles stabil wie auch zuvor, aber mit einigen neueren Features. Zuvor (2009.06) gab es nur Xen/xVM 3.0, was dazu führte, dass man nur eine Linux Distribution mit xen Kernel paravirtualisiert laufen lassen konnte. Leider sind diese Kernel bei den Distributionen zwischenzeitlich eine Seltenheit. Bei Ubuntu war 8.10 das letzte Release, was einen passenden Kernel mitgebracht hat. Seither gibt es nur noch Kernel mit Support für pvops. Dank der neuen Xen Version kann ich diese nun auch nutzen und bekomme Support für z.B. Ubuntu 10.04 LTS. Hurray! Weiterhin gibt es einige neue ZFS Features, unter anderen Deduplication. Eigentlich schon schade, dass diese Distribution nun sterben muss. Man kann nur hoffen, dass die Jungs von Illumos Gas geben und daraus eine freie Alternative zu Solaris 11 entsteht. Ich hoffe auch das der xVM Support erhalten bleibt, da die einzige Alternative in Sachen Virtualisierung mit ZFS Support eigentlich nur in FreeBSD mit ZFS und VirtualBox besteht. Diese Lösung muss allerdings erst zeigen ob sie genau so schnell und stabil ist wie Xen.

Wer übrigens sein OpenSolaris auf eines der letzten Releases von Oracle aktualisieren möchte, kann hierzu ein Repository von Illumos nutzen und somit nochmal auf svn_145 aktualisieren. Leider ist hier aber der xVM Support kaputt. Der xend stürzt beim Starten mit einer python Fehlermeldung ab. Wer es dennoch probieren möchte, hier der Link:
http://www.illumos.org/projects/illumos-gate/wiki/How_To_Build_Illumos

Fazit: OpenSolaris ist tot! Aber noch nicht ganz und hoffentlich gibt es eine Wiedergeburt mit Illumos

floek goes OpenSolaris: Boot from USB mirror

Booten von Festplatten? Warum eigentlich? Wenn ich meine 5x 500GB Platten zu einem großen Array zusammenbauen möchte, kann ich nicht davon booten. Außerdem braucht es für ein Betriebssystem ja nicht so viel Platz. Also: Zwei 8 GB USB Sticks gekauft, einen Mirror (RAID-1) drüber gemacht und davon gebootet. Los gehts:
Continue reading

floek goes OpenSolaris: Updates

Aktuell experimentiere ich mit OpenSolaris herum. Heute: Updates. Updates für z.B. Solaris 10 sind ja ziemlich übel. Man muss sich erst mal ein Programm aus dem Internet ziehen und damit kann man dann Updates machen. Dieses Manko wurde bei OpenSolaris behoben. Es gibt keine Patches, sondern nur neue Paketversionen, wie es z.B. auch Debian macht. Das Tool der Wahl ist pkg. Allerdings arbeitet OpenSolaris dann ZFS hier ziemlich intelligent. Aktualisiert man sein Betriebssystem mit pkg image-update -v werden die aktuellen Paketversionen installiert. Nach Abschluss erhält man folgende Meldung:

Ein Klon von opensolaris existiert und ist aktualisiert und aktiviert worden.
Beim nächsten Start wird die Startumgebung opensolaris-1 auf '/' geladen.
Starten Sie neu, wenn Sie zum Wechsel auf diese aktualisierte SU bereit sind.

Möglicherweise funktioniert ein reboot nun erst mal nicht. Hintergrund: OpenSolaris klont die aktuelle Boot Umgebung per Snapshot und installiert die Patches nur in diesem Klon. Dadurch kann man bei Problemen immer wieder in den alten Zustand vor der Aktualisierung zurückkehren. Der Klon verbraucht auch nur Speicherplatz für die Änderungen gegenüber der alten Version. Im Grub gibt es einen neuen Eintrag, welcher standardmäßig ausgewählt wird. Falls sich dieser nicht booten läßt sollte man den Eintrag händisch auswählen, der vor dem patchen gebootet wurde. Dann hilft es sich mit beadm list alle Boot Umgebungen anzuzeigen und die neu erstelle mit beadm mount /mnt in das System einzubinden. Anschließend braucht es noch /mnt/boot/solaris/bin/update_grub -R /mnt um grub auf der neuen Umgebung zu installieren. Funktioniert die neue Boot Umgebung problemlos, kann man die alte(n) mit beadm destroy wieder löschen.