Einer der vielen Vorteile der Virtualisierung ist, dass Administratoren bei der Änderung der (virtuellen) Hardware einer VM keine Servergehäuse aufschrauben oder Festplatten in Racks stecken müssen. Um zum Beispiel eine virtuelle KVM-Maschine auf Linux mit einer neuen Disk auszustatten, genügen ein paar einfache Schritte. Zuerst legen Sie mit "qemu-img" ein neues Image an:
qemu-img create disk2.img 50G
Nun binden Sie das Disk-File in die laufende virtuelle Maschine ein:
virsh attach-disk node2 /var/lib/libvirt/images/disk2.img vdb
Das letzte Argument ist der Device-Namen innerhalb der VM, der aber noch nicht belegt sein darf. Welche schon vergeben sind, stellen Sie auf dem Host-System beispielsweise so fest:
virsh dumpxml node2 | grep target
Alternativ zum obigen Aufruf bietet virsh auch das Kommando attach-device, das als Eingabe eine Beschreibung der Hardware im Libvirt-XML-Format erwartet, die etwa so aussieht:
<disk type='file' device='disk'> <driver name='qemu' type='raw'/> <source file='/var/lib/libvirt/images/disk2.img'/> <target dev='vdb' bus='virtio'/> </disk>
Hier sehen Sie auch den virtuellen Bus für die neu angeschlossene Disk, nämlich Virtio für den effizienten paravirtualisierten Treiber.
Die virsh-Befehle kennen zusätzlich noch einige Schalter, die das Verhalten beeinflussen: "--live" ändert eine laufende Domain (Hot-Plugging), "--config" macht die Änderungen dauerhaft. "--persistent" vereint bei laufenden Domains beides, während es bei ausgeschalteten VMs natürlich nur die Konfiguration ändert.