在我的(旧)Xen主机上,我能够直接向每个guest虚拟机提供LVM文件系统.这些文件系统实际上是在主机上创建和格式化的,并直接通过.例如,对于我的一个主机使用单独的tmp和交换分区,我定义了这样的存储:
disk = [
‘PHY是:/ dev / VG1 / guest1虚拟交换,SDA1,W’,
‘PHY是:/ dev / VG1 / guest1虚拟盘,SDA2,
‘PHY是:/ dev / VG1 / guest1虚拟-TMP,sda3的,
]
因此,guest1-swap格式化为交换分区,guest1-disk和guest1-tmp使用ext4格式化,从guest虚拟机的角度来看,它只是将它们视为/ dev / sda下的三个格式化分区.
(这可能听起来像很多工作,但是有一些配置脚本,比如很棒的xen-tools,可以自动化几乎所有东西).
这提供了一些非常有用的功能,其中两个我特别感兴趣的是找出KVM:
>从主机操作系统挂载客户机文件系统.即使guest虚拟机正在运行,我也可以随时对任何guest虚拟机文件系统进行只读安装.这样做的另一个好处是允许我在guest虚拟机运行时创建任何现有卷的LVM快照.通过这种方式,我可以在主机上集中备份所有来宾.
>在线音量调整大小.因为卷包含标准的Linux文件系统,所以我可以使用lvextend和resize2fs的组合来增加我的访客文件系统,同样在他们在线时.
我目前正在设置一个KVM主机,它将取代Xen主机.与Xen设置类似,我利用LVM提供直接文件系统访问,但KVM / qemu的行为不同,因为它总是为guest虚拟机创建映像文件,即使在LVM卷上也是如此.从客户的角度来看,它将此视为未分区的磁盘,由客户端应用分区标签,然后创建分区和文件系统.
从客户的角度来看,这很好,但从服务器/管理的角度来看,它似乎远没有我描述的Xen设置那么灵活.我还是KVM的新手,所以我可能(希望)遗漏了一些东西.
我试图在KVM主机上重新实现我以前的备份解决方案时遇到了这个问题,当我尝试挂载其中一个guest虚拟机的文件系统时,mount命令被阻塞了.所以,解决这个问题是我目前的担忧,但它也让我担心调整大小的事情,因为我确信这个问题也会在某些时候出现.
所以,这是我的问题:
>有没有办法让kvm / qemu直接使用LVM卷文件系统,就像我在Xen设置中所描述的那样?如果有所作为,我会使用libvirt进行管理.
>如果没有,我该怎么做才能在KVM下获得类似的安装/备份功能?我已经看过有关使用libguestfs w / FUSE的讨论,但这真的是最好的选择吗?如果可能的话,我宁愿坚持使用本机文件系统挂载.
>如果没有,是否可以在KVM下调整在线文件系统的大小?我已经找到了几个讨论/如何解决这个问题,但答案似乎已经到处都没有明确的,绝对没有直截了当的解决方案.
对不起,很长的帖子,只是想确保它很清楚.如果我能提供其他有用的信息,请告诉我.期待讨论.