目录
前置条件
准备共享目录
编辑qemu.conf
前置条件
根据qemu官方文档,首先准备前置条件,测试条件为pve 7.1-10,omv 5.6.26-1/omv 6.0.19/debian 11/
首先确保guest的kernel中的9p options都设置正确了,kernel设置一般在/boot/config…中,可能会出现多个config文件,通过uname -r确认当前使用的内核,选择对应的config文件更改即可
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_NET_9P_DEBUG=y (Optional)
CONFIG_9P_FS=y
CONFIG_9P_FS_POSIX_ACL=y
CONFIG_PCI=y
CONFIG_VIRTIO_PCI=y
然后在/etc/modules中添加如下
loop
virtio
9p
9pnet
9pnet_virtio
准备共享目录
host准备想要共享给guest的目录,该目录的权限需要和vm的运行权限相同,我并没有在qemu.conf中找到权限描述。遂去找虚拟机运行的uid gid,首先ps aux|grep vmid找到虚拟机进程,再由cat /proc/pid/status 找出所属uid和gid。确认为root:root
mkdir /tank/omv
chown root:root /tank/omv
编辑qemu.conf
在host也就是pve上,设置目标guest的qemu.conf(具体的路径为/etc/pve/qemu-server/VMID.conf),如果host支持的话直接编辑xml会更省力
在qemu.conf中添加(此处我共享了多个文件,在网上死活找不到共享多个文件的教程,args这行参数就始终写不对,最后被我试出来了--|)
args:-fsdev local,path=/tank/omv,security_model=passthrough,id=fsdev0,writeout=immediate -device virtio-9p-pci,fsdev=fsdev0,mount_tag=omv -fsdev local,path=/mnt/pve/parity1_10T,security_model=passthrough,id=fsdev1,writeout=immediate -device virtio-9p-pci,fsdev=fsdev1,mount_tag=parity1 -fsdev local,path=/mnt/pve/da ta1_10T,security_model=passthrough,id=fsdev2,writeout=immediate -device virtio-9p-pci,fsdev=fsdev2,mount_tag=data1
guest中vi /etc/fstab
omv /mnt/omv 9p trans=virtio,version=9p2000.L,msize=1000000000 0 0
parity1 /mnt/parity1 9p trans=virtio,version=9p2000.L,msize=1000000000 0 0
data1 /mnt/data1 9p trans=virtio,version=9p2000.L,msize=1000000000 0 0
最后 关闭虚拟机,再开启(不是重启)
mount测试一下,不回显表示成功,可以写入/etc/fstab中了
mount -t 9p -o trans=virtio omv /mnt/zfs/
接下来就和OpenMediaVault:你的开源 NAS 系统 - 知乎中的操作一致了
参考:
[转载]VirtFS 虚拟化技术简介 - 知乎
qemu中device和driver的区别 使用9p文件系统_weixin_30741653的博客-CSDN博客