GNU/Linux >> Znalost Linux >  >> Linux

Nastavte sdílenou složku mezi hostitelem KVM a hostem

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.


Linux
  1. Jak nainstalovat a nastavit Debian 8 minimalistický Docker Host

  2. Rozdíl mezi firewallem se sdíleným hardwarem a firewallem pro vyhrazený hardware

  3. Windows – sdílená složka mezi hostem Qemu Windows a hostitelem Linuxu?

  1. Linux – sdílení souborů mezi hostitelem Linuxu a hostem Windows?

  2. Rozdíl mezi Qemu a KVM

  3. Použití Samby ke sdílení složky od hosta Linuxu s hostitelem Windows ve VirtualBoxu

  1. Rozdíl mezi [[ $a ==Z* ]] a [ $a ==Z* ]?

  2. Kopírování a vkládání mezi hostem Hyper-V a hostitelem

  3. skript pro sledování nových souborů ve sdílené složce (hostitel systému Windows, host linux)