Připojení CD-ROM virtuálnímu serveru v prostředí KVM

Článek detailně popisuje technický postup připojení mechaniky CD-RVirtualizace KVMOM do virtuálního stroje v prostředí virtualizace KVM z příkazového řádku.

Virtuální stroj bez definované CD-ROM

Velice jednoduchý je tento postup na virtuálním stroji, kde žádná CD-ROM mechanika zatím není definována. U takového virtuálního stroje fyzickou mechaniku na hostiteli připojíme za běhu následujícím příkazem:

# virsh attach-disk WidleSRV12 /dev/sr0 hdc --type cdrom

Pokud již definovaný CD-ROM máte jako zařízení, například /dev/sr0, můžete použít pro nahrazení zařízení soubor s ISO obrazem disku. Například:

# virsh attach-disk WidleSRV12 /var/lib/libvirt/isos/widleSRV12-install.iso hdc --type cdrom

Druhou možností je použít příkaz virsh update-device. Potřebujeme k tomu nejprve připravit definici zařízení CD-ROM v souboru cdrom.xml:

<disk type='block' device='cdrom'>
  <driver name='qemu' type='raw'/>
  <source dev='/dev/sr0'/>
  <target dev='hdc' bus='ide'/>
  <readonly/>
</disk>

Poté použijte příkaz:

# virsh update-device WidleSRV12 /var/lib/libvirt/isos/cdrom.xml

Virtuální stroj s CD-ROM

Pokud již je nějaká mechanika CD-ROM definována, zjistíme o jaké se jedná zařízením příkazem:

# virsh qemu-monitor-command WidleSRV12 --hmp --cmd "info block"

Výpis bude vypadat nějak následovně:

drive-ide0-0-0: type=hd removable=0 file=/var/lib/libvirt/images/WidleSRV12.qcow2 ro=0 drv=raw encrypted=0 
drive-ide0-1-0: type=cdrom removable=1 locked=0 file=/var/lib/libvirt/isos/Install_Windows_SRV12.iso ro=1 drv=raw encrypted=0

Pomocí následujícího příkazu nejprve virtuálně vysuneme stávající CD-ROM. Dalším příkazem připojíme nové virtuální CD do viruálního stroje.

# virsh qemu-monitor-command mirage --hmp --cmd "eject drive-ide0-1-0"
# virsh qemu-monitor-command mirage --hmp --cmd "change drive-ide0-1-0 /var/lib/libvirt/isos/Nove_CD.iso"

Poznámka k zabezpečení pomocí SELinuxu

Pokud na hostiteli máte zapnutý SELinux, je nutné si dát pozor na správné umístění příslušného diskového obrazu v souladu s jeho bezpečnostním kontextem. Příkladem je základní nastavení kontextu pro datový typ virt_content_t v prostředí OS CentOS 6:

# semanage fcontext -l |grep virt_content_t
...
/var/lib/libvirt/isos(/.*)? all files system_u:object_r:virt_content_t:s0
...
#

Jak vidíte z příslušného řádku výstupu příkazu semanage, v základním nastavení bezpečnostní kontext povoluje práci s ISO obrazy m.j. v adresáři /var/lib/libvirt/isos

Pokud se pokusíte připojit ISO obraz z jiného adresáře, připojení se nezdaří. Máte například uložené diskové obrazy ISO v adresáři /mnt/ISO/. Jejich připojení umožníte úpravou bezpečnostního kontextu SELinuxu pomocí následujícho příkazu:

# semanage fcontext -a -f "" -s system_u -t virt_content_t "/mnt/ISO(/.*)?"

To je prozatím vše. Pokud vám v článku něco chybí nebo máte máte nápad, jak jej doplnit, dejte mi vědět protřednictvím komentáře.

 

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.