Po vytvoření nového virtuálního počítače můžete chtít sdílet soubory a složky mezi hostitelem KVM a virtuálním počítačem KVM. V tomto stručném průvodci uvidíme, jak nastavit sdílenou složku mezi hostitelem KVM a hostujícím virtuálním strojem pomocí Virt-manager v Linuxu.
Před konfigurací sdílené složky se ujistěte, že jste na svém hostiteli KVM nainstalovali Virt-manager.
- Jak spravovat virtuální počítače KVM pomocí nástroje Virt-Manager
Pokud jste již nainstalovali kompletní skupinu KVM Virtualization Package, nemusíte instalovat Virt-manager samostatně. Virt-manager je součástí skupiny virtualizačních balíčků KVM. V opačném případě jej možná budete muset nainstalovat, jak je znázorněno na výše uvedeném odkazu.
Vytvořte nový virtuální stroj z rozhraní Virt-manager. Je to velmi přímočaré a snadné! VM ještě nespouštějte. Potřebujeme vytvořit sdílenou složku v našem hostiteli KVM.
Vytvořte sdílené složky v hostiteli KVM
Vytvořte novou sdílenou složku ve vašem hostitelském systému KVM, kterou chcete sdílet na hostujících počítačích.
Pro účely této příručky jsem vytvořil sdílenou složku s názvem „KVM_Share
" v mém $HOME
adresář.
[[email protected] ~]$ mkdir ~/KVM_Share
Dále nastavte požadovaná oprávnění pro sdílenou složku. Chtěl jsem upravit a upravit obsah této sdílené složky ze svých hostujících virtuálních počítačů, a proto jsem sdílené složce udělil plná oprávnění.
[[email protected] ~]$ chmod 777 ~/KVM_Share
Dále nastavte správný typ SELinux pro sdílenou složku KVM:
$ sudo semanage fcontext -a -t svirt_image_t "/home/sk/KVM_Share(/.*)?"
Tento příkaz nastaví výchozí kontext souboru pro cokoli pod sdílenou složkou včetně, tj. /home/sk/KVM_Share
v našem případě.
Po spuštění výše uvedeného příkazu připojí řádek do /etc/selinux/targeted/contexts/files/file_contexts.local
soubor, díky kterému bude změna trvalá.
Připojený řádek může vypadat takto:
$ cat /etc/selinux/targeted/contexts/files/file_contexts.local This file is auto-generated by libsemanage Do not edit directly. /usr/lib/chromium-browser system_u:object_r:bin_t:s0 /usr/lib/chromium-browser/chromium-browser.sh system_u:object_r:bin_t:s0 /usr/lib/chrome-sandbox system_u:object_r:chrome_sandbox_exec_t:s0 /home/sk/KVM_Share(/.*)? system_u:object_r:svirt_image_t:s0
Dále spusťte následující příkaz a sdělte SELinuxu, aby obnovil kontexty souborů ve všem pod sdíleným adresářem na to, co máme jako výchozí (tj. co se změní správa).
$ sudo restorecon -vR /home/sk/KVM_Share
Pokud nenastavíte správný typ SELinux pro sdílenou složku KVM, při spouštění virtuálního počítače se setkáte s následující chybou.
Error starting domain: internal error: qemu unexpectedly closed the monitor: 2021-05-06T09:30:21.239353Z qemu-system-x86_64: -device virtio-9p-pci,id=fs0,fsdev=fsdev-fs0,mount_tag=/hostshare,bus=pci.5,addr=0x0: cannot initialize fsdev 'fsdev-fs0': failed to open '/home/sk/KVM_Share': Permission denied Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/asyncjob.py", line 65, in cb_wrapper callback(asyncjob, *args, *kwargs) File "/usr/share/virt-manager/virtManager/asyncjob.py", line 101, in tmpcb callback(args, **kwargs) File "/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 57, in newfn ret = fn(self, *args, **kwargs) File "/usr/share/virt-manager/virtManager/object/domain.py", line 1329, in startup self._backend.create() File "/usr/lib64/python3.9/site-packages/libvirt.py", line 1353, in create raise libvirtError('virDomainCreate() failed') libvirt.libvirtError: internal error: qemu unexpectedly closed the monitor: 2021-05-06T09:30:21.239353Z qemu-system-x86_64: -device virtio-9p-pci,id=fs0,fsdev=fsdev-fs0,mount_tag=/hostshare,bus=pci.5,addr=0x0: cannot initialize fsdev 'fsdev-fs0': failed to open '/home/sk/KVM_Share': Permission denied
Nyní je čas nakonfigurovat sdílenou složku ve Virt-manager.
Nastavte sdílenou složku mezi hostitelem KVM a hostem
Otevřete Virt-manager a ujistěte se, že je hostující systém vypnutý. Vyberte počítač hosta a klikněte na Otevřít na panelu nabídek zobrazíte konzolu virtuálního stroje a podrobnosti.
V dalším okně klikněte na Zobrazit podrobnosti o virtuálním hardwaru na panelu nabídek a klikněte na Přidat hardware v levém podokně.
Klikněte na záložku "Systém souborů" v levém podokně a do Source path zadejte umístění sdílené složky a do cílové cesty zadejte mount tag. Zde sdílím "~/KVM_Share"
adresář a moje značka připojení je /hostshare
. Můžete zadat název mount_tag, jak chcete. Vezměte prosím na vědomí, že mount_tag není cesta. mount_tag je pouze název používaný k identifikaci hostitelského sdílení. Klikněte na Dokončit a použít pro aktualizaci změn.
Poslední věc, kterou byste měli udělat, je vybrat správný režim přístupu pro přístup ke sdílené složce.
Existují tři možné hodnoty. Jsou passthrough
, mapped
a squash
.
- průchod - Určuje, že ke zdroji (tj. sdílené složce) se přistupuje s nastavením oprávnění uživatele, která jsou nastavena z virtuálního počítače hosta. tj. Soubory jsou uloženy pomocí stejných přihlašovacích údajů, jaké byly vytvořeny v hostovi. Toto je výchozí režim přístupu, pokud není zadán.
- mapováno - Určuje, že se ke zdroji přistupuje s nastavením oprávnění hypervizoru. Pokud chcete mít přístup pro čtení a zápis z hostujícího počítače, musíte zvolit tento režim.
- squash - Podobně jako u 'passthrough', výjimkou je selhání privilegovaných operací jako
chown
jsou ignorovány. Díky tomu je režim podobný průchodu použitelný pro lidi, kteří spouštějí hypervizor jako non-root.
Po výběru preferovaného režimu přístupu klikněte na tlačítko Použít. Nyní jsme nakonfigurovali sdílenou složku pro hostitelský a hostující systém KVM z Virt-manager.
Nyní zapněte hostující virtuální počítač a vytvořte na svém hostujícím počítači přípojný bod pro připojení sdílené složky hostitelského systému KVM:
[[email protected] ~]$ mkdir ~/hostfiles
Nakonec připojte sdílenou složku do hostujícího počítače pomocí příkazu:
[[email protected] ~]$ sudo mount -t 9p -o trans=virtio /hostshare hostfiles/
Sdílená složka ~/KVM_Share
je připojen k hostfiles
adresář ve vašem virtuálním počítači. Od této chvíle máte přístup k obsahu sdílené složky z vašeho hostujícího virtuálního počítače. Můžete také upravovat a mazat obsah sdílené složky na hostitelském i hostujícím systému KVM.
Chcete-li automaticky připojit sdílenou složku při každém spuštění, přidejte následující řádek do /etc/fstab
soubor ve vašem hostujícím systému:
/hostshare /hostfiles 9p trans=virtio,version=9p2000.L,rw 0 0
Doufám, že to pomůže.