答案1
我先回答 2):如果您将虚拟机设置为包含 2 个虚拟磁盘,则可以将操作系统和任何可升级组件放在一个磁盘上,将所有用户数据放在另一个磁盘上。要在保留用户数据的同时进行升级,只需发送操作系统磁盘的更新即可。
对于 1):如果您遵循我对 2 的建议,您需要寻找一种可以轻松单独更换虚拟磁盘的格式。您可以使用 qemu/kvm 来实现这一点,例如 qcow2 映像,但可能还有其他格式,其中一些格式可能比 qemu/kvm 更容易为用户启动。如果您使用像 OpenNebula 这样的云堆栈来运行虚拟机,而不是要求用户自己启动虚拟机,那么使用 1) 的 qemu-kvm 应该是非常可行的。