我已经为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创buildRAW图像文件:
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虚拟机,但是当我尝试启动它:
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
虚拟机的存储文件不断改变所有者的根: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,它是导致configuration不正确的virt-manager工具 – 罪魁祸首是因为某些原因添加到磁盘规格(我已经使用virt-manager在ZFS卷上定义原始磁盘)。 我在磁盘映像上得到了间歇性的'权限被拒绝'错误,所以我认为这是一个权限问题。 如果你在virt-manager设置了磁盘映像中的所有可用选项,那么会发生什么情况,显然每个人virt-manager默认值。