Linux

Debian KVM 和 vm 映像的位置不同於 /var/lib/libvirt/images

  • January 4, 2014

我在 ZFS 上為 VM 定義了儲存池:

virsh # pool-dumpxml zfs
<pool type='dir'>
 <name>zfs</name>
 <uuid>b2fba550-467f-8133-dee8-44ada7d0a807</uuid>
 <capacity unit='bytes'>210316853248</capacity>
 <allocation unit='bytes'>32768</allocation>
 <available unit='bytes'>210316820480</available>
 <source>
 </source>
 <target>
   <path>/winvm/win1</path>
   <permissions>
     <mode>0700</mode>
     <owner>4294967295</owner>
     <group>4294967295</group>
   </permissions>
 </target>
</pool>

為 vms 創建 RAW 圖像文件:

host /winvm/win1 % l
total 3.5K
drwxrwxr-x. 2 root         root           3 Jan  3 14:03 .
drwxr-xr-x  3 libvirt-qemu libvirt-qemu   3 Dec 30 13:45 ..
-rw-------. 1 libvirt-qemu libvirt-qemu 20G Jan  3 14:03 t1.raw

定義了 t1 VM,但是當我嘗試啟動它時:

host /winvm/win1 % virsh start t1
error: Failed to start domain t1
error: internal error process exited while connecting to monitor: char device redirected to /dev/pts/13
kvm: -drive file=/winvm/win1/t1.raw,if=none,id=drive-sata0-0-0,format=raw,cache=none: could not open disk image /winvm/win1/t1.raw: Invalid argument

VM的儲存文件不斷將所有者更改為root:root:

host /winvm/win1 % ls -l
total 1
-rw-------. 1 root root 21474836480 Jan  3 14:03 t1.raw

我在那台機器上禁用了 SELinux:

host /winvm/win1 % sestatus
SELinux status:                 disabled

甚至更改了使用者和上下文:

host /winvm/win1 % chcon -t virt_image_t -u libvirt-qemu t1.raw

而且我仍然不斷收到上面的錯誤。為什麼?SELinux 禁用後如何影響文件訪問?

這不是 ZFS,而是virt-manager導致配置不正確的實用程序 -if=none出於某種原因將罪魁禍首添加到磁碟規範中(我曾經virt-manager在 ZFS 卷上定義原始磁碟)。我在磁碟映像上遇到間歇性的“權限被拒絕”錯誤,所以我認為這是權限問題。如果您在 中設置磁碟映像上的所有可用選項,就會發生這種情況virt-manager,顯然每個人都只是保留預設值。

引用自:https://serverfault.com/questions/564854