virsh - pool-define-as 和 pool-create-as 之间的区别

virsh - difference between pool-define-as and pool-create-as

不确定这是否是正确的论坛。 libvirt 页面链接在这里。如果这需要张贴在不同的地方请让我知道。

virsh pool-define-as 和 create-as 有什么区别?阅读 virsh 的手册页,您似乎在使用 create-as 时避免了 运行 池构建和池启动。这是唯一的区别吗?我的测试表明两者都将现有文件(在池类型 dir 的情况下)作为卷。我是不是漏了什么。

谢谢, 阿肖克

libvirt 中的对象可以是瞬态的或持久的。瞬态对象仅在 运行 期间存在,而持久对象一直存在。本质上,对于持久对象,XML 配置由 libvirt 保存在 /etc/libvirt.

所以在存储池的情况下,如果您使用 'virsh pool-define-as',将为持久存储池创建一个配置文件。您可以稍后使用 'virsh pool-start' 启动此存储池,使用 'virsh pool-destroy' 停止它并稍后再次启动它,甚至可以将其设置为在主机启动时自动启动。

如果您想要一个临时存储池,您可以使用 'virsh pool-create-as' 它将立即启动一个存储池,而不会将其配置保存在磁盘上。当您执行 'virsh pool-destory' 时,这个存储池将完全消失(虽然实际存储仍然存在,但 libvirt 根本不知道它)。使用临时存储池,您显然不能让它在启动时自动启动,因为 libvirt 不知道它的配置。

作为一般规则,大多数 people/apps 都希望使用持久池。