[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

KVM - virtio und Partitionierung



Hallo Liste,

ich setze mich derzeit verstärkt mit KVM auseinander, derzeit noch
komplett unter Debian Lenny, bisher bin ich eigentlich davon ganz
begeistert, allerdiengs habe ich noch ein Problem und könnte vielleicht
noch eine Idee gebrauchen.

1)
Als erstes zum Problem. Ich nutze KVM mit den libvirt Tools, daher das
Stoppen/Starten der VMs läuft über die libvirt Tools. Jede VM bekommt
hier ja eine eigene Konfig Datei unter "/etc/libvirt/qemu" spendiert.
Nun habe ich auf mein Host System LVM und habe den Gast Systemen jeweils
immer eine LVM Partition als Festplatte durchgereicht. Als Treiber nutze
ich die virtio Treiber. Die Paravirtualisiserten Treiber sollen hier ja
eine deutlich höhere Performance haben. Soweit ich aber noch
recherschiert habe sollte man, wenn direkt eine LVM Partition
durchreicht noch den cache deaktivieren. Weil sonst der cache doppelt
geschrieben wird, und das eher Performance einbussen hat. Diese
empfehlung kann man generell hier finden:

http://www.linux-kvm.org/page/Tuning_KVM

Das Problem ist jetzt lediglich das ich immer nur Anleitungen finde wie
ich das ganze mit einem direkten aufruf von qemu starte, aber nicht wie
ich das entsprechend in der Konfigurationsdatei eintragen muss, so das
dass ganze auch über libvirt geht. Ich möchte ja nicht jedesmal für
jeden Host einen Befehl eingeben sondern schon die
verwaltungsfähigkeiten der libvirt nutzen.

Bei meiner suche bin ich nur soweit gekommen das ich hier die
beschreibung der Konfig steht:

http://libvirt.org/formatdomain.html#elementsDisks

Hier steht das es pro disk ein "driver" tag gibt bei den man dann den
cache deaktivieren kann. Hier habe ich schon folgendes ausprobiert und
hinzugefügt.

<driver cache="none" />

bei dem entpsrechenden virtio disk, hab die VM neu gestartet bei den
Prozessen kann ich allerdiengs sehen das beim entsprechenden kvm aufruf
immer noch kein "cache=off" erscheint. Ansonsten schaut es aus das für
den driver tag zumindest das "name" attribut notwendig ist. In der Doku
steht nur das man hier einen hypervisor backend treiber angeben kann,
sofern dieser mehrere unterstützt. Allerdiengs ist mir nicht ganz klar
welche kvm hier überhaupt unterstützt und was man letztendlich dort
genau angeben kann.

Hatte glaube ich irgendwo bei meinen recherschen gefunden das man
type="qemu" angeben kann. Hatte das einmal ausprobiert, hat aber
ebenfalls keine auswirkung gezeigt.

Kann mir irgendjemand vielleicht sagen wie man den cache für eine Gast
maschiene über die libvirt Konfig Dateien deaktivieren kann?


2)
Ansonsten zur zweiten sache. Hat jemand eine Idee wie man vernünftig den
Festplattenspeicher verwalten kann so das er auch in Zukunft erweiterbar
ist?

Auf den Host nutze ich sowieso schon LVM, so das für jeden Gast eine
eigene LVM Partition existiert.

Hier hatte ich nun die überlegung im Gast System wieder LVM zu nutzen.
Und nun gibt es dann wohl zwei Möglichkeiten.

Entweder die Guest LVM Partition im Host System vergrößern, dadurch wird
die Festplatte im Guest größer, den zuätzlichen Platz kann man dann in
dem Gast System einfach partitionieren und dann als PV nutzen und dort
LVM hinzufügen.

Oder der zweite weg wäre immer wieder neue LVM partitionen auf dem Host
erzeugen und diese dan als neue Festplatte dem Gast System verfügbar
machen, so das diese dann die neue Disk als PV nutzen kann.


Beide wege finde ich aber irgendwie suboptimal, ständig vergrößern und
neue Partition erzeugen finde ich irgendwie etwas unschön. Ansonsten
müsste man auch hier zumindest eine Logische Partition erzeugen sonst
wäre man auf 4 Partitionen begrenzt oder besser gesagt auf dreimal
vergrößern. Ob es jetzt eine begrenzung der anzahl für logische
Partitionen gibt habe ich nicht geschaut, wenn ja würde dies das aber
ebenfalls begrenzen.

Ständig neue Disk hinzuzufügen ist auch unschon weil man dann auf dem
host System für ein System zig LVs erstellt, oder zumindest gesagt für
jedesmal vergrößern, eine LV für jedes System finde ich hier besser.
Ansonsten hatte ich testweise mal eine IDE und SCSI Disk hinzugefügt,
default hatte ich schon eine Virtio disk. Mir ist dann aufgefallen das
nach dem hinzufügen ich das System nicht mehr booten konnte. Zumindest
im virt-manager kann man nur den Typ (HDD, CDROM, ...) auswählen wovon
gebootet werden soll, aber nicht direkt die disk an sich. Beim
hinzufügen hat er dann also wohl eine leere Disk genommen. Ansonsten
hatte ich noch gelesen das KVM auf 4 IDE Disk begrenzt ist pro Gast
System. Ob das jetzt nun speziell nur für IDE gilt, oder ob das nun
generell für alle Disk SCSI, Virtio etc. habe ich noch nicht ausprobiert
aber auch das wäre irgendwie nachteilig.


Von daher stellt sich letztendlich die frage ob sonst noch jemand eine
Idee hat den Festplattenspeicher einer Guest HDD zu verwalten so das er
auch in zukunft erweiterbar ist?


Reply to: