virsh Configuratie: change add/remove hardware

  KVM (Kernel-based Virtual Machine)

Configuratie: change add/remove hardware

Via de command line kan je ook systemen aanmaken, aanpassen en verwijderen. Hoewel ik voor het aanmaken/wijzigen van virtual machines meestal andere tools gebruik, bv virt-install of de grafische versie virt-manager. is het soms handig om het via de command line te kunnen.

Change virtual machine disk type van raw naar qcow2

in het eerste voorbeeld passen we de disk aan. ik heb net een raw image geconverteerd naar een qcow2 formaat om deze disk nu te gebruiken moeten we de config aan passen. connect naar de hypervisior  en gebruik het commando edit gevolgd door de machine naam of het id. binnen virsh word er gebruik gemaakt van je default editor in mijn geval vi. zoek binnen de XML de disk config, pas de regels aan met de driver name, en uiteraard pas de source file aan.

virsh # edit Intrepid
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/Intrepid.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>

daarna gewoon afsluiten en opslaan, in geval van vi (esc wq!) start je virtual machine opnieuw op.

Verwijder harddisk van virtual machine

in het volgende voorbeeld verwijderen we een hardisk van een draaiende machine. je kan natuurlijk de config editen zoals hier boven beschreven maar er zijn ook commando’s die dat voor je doen. en als je het via de config doet moet je machine helemaal uit en dan willen we niet. bekijk eerst met domblklist welke disken er aan verbonden zijn wees er zeker van de de disken die je verwijderd niet meer door het OS in gebruik zijn. ook niet door de lvm. Om een disk te verwijderen gebruiken we detach-disk de volgende opties zijn beschikbaar.

  • –config          alleen de config word aangepast reboot nodig
  • –live               de disk word van een draaiend machine verwijderd blijft bestaan in de config
  • –persistent   zelfde als –config en –live in het zelfde commando.

we gaan 2 disken van dit systeem verwijderen vdb en vdc

virsh # domblklist Intrepid
Target     Source
------------------------------------------------
vda        /var/lib/libvirt/images/Intrepid.qcow2
vdb        /var/lib/libvirt/images/Intrepid-2.img
vdc        /var/lib/libvirt/images/Intrepid-3.img
hda        -

virsh # detach-disk Intrepid /var/lib/libvirt/images/Intrepid-3.img --persistent
Disk detached successfully

virsh # detach-disk Intrepid /var/lib/libvirt/images/Intrepid-2.img --config  --live
Disk detached successfully

virsh # domblklist Intrepid
Target     Source
------------------------------------------------
vda        /var/lib/libvirt/images/Intrepid.qcow2
hda        -

de disken zijn nu van een live systeem verwijderd en ook in de config. na een reboot komen ze dus ook niet meer terug.

toevoegen harddisk aan virtual machine

als we disken kunnen verwijderen willen we ze natuurlijk ook aanmaken en kunnen connecten. we gaan eerst een disk file aanmaken dit kan je het eenvoudigst doen vanaf de commandline met qemu-imag in het voorbeeld maak ik 1 disk aan van 50G van het type qcow2

$ sudo qemu-img create -f qcow2 /var/lib/libvirt/images/Intrepid-d1.qcow2 50G
Formatting '/var/lib/libvirt/images/Intrepid-d1.qcow2', fmt=qcow2 size=53687091200 cluster_size=65536 lazy_refcounts=off refcount_bits=16

start nu weer virsh op kijk naar de huidige disken en pak het eerste volgende device

virsh # domblklist --details  Intrepid
Type       Device     Target     Source
------------------------------------------------
file       disk       vda        /var/lib/libvirt/images/Intrepid.qcow2
file       cdrom      hda        -

virsh # attach-disk Intrepid /var/lib/libvirt/images/Intrepid-d1.qcow2 vdb --persistent --cache none --subdriver qcow2
Disk attached successfully

virsh # domblklist  Intrepid
Target     Source
------------------------------------------------
vda        /var/lib/libvirt/images/Intrepid.qcow2
vdb        /var/lib/libvirt/images/Intrepid-d1.qcow2
hda        -

je kan nu inloggen op de client en de disk gebruiken.