我正在尝试在 KVM 上使用不同的存储池来存储我的虚拟机的虚拟磁盘以及我正在使用的操作系统的 ISO。
例如:我想使用/media/work/kvm
挂载的目录/dev/sda5
,作为未来所有情况的默认存储池
要配置、创建和启动一个新的存储池,这很容易,但至少在 Ubuntu 中,如果我从不同的存储池中选择 ISO 并不重要,Virtual Machine Manager总是将我指向默认存储池 ( /var/cache/libvirt
) 作为将创建来自我的 VM 的虚拟磁盘的存储。
我怎样才能避免这种情况?
在执行这些步骤之前,请确保您以普通用户身份运行这些命令并且您的用户属于该组
libvirtd
(在某些系统上libvirt
)。以下是我使用的以下命令:
列出当前池:
破坏池:
取消定义池:
创建一个目录来托管新池(如果它不存在):
定义一个名为“default”的新池:
设置在 libvirt 守护进程启动时启动的池:
启动池:
检查池状态:
从现在开始,在创建虚拟机时,Virtual Machine Manager 会通知您 *.img 文件(您的 VM 的虚拟磁盘)将保存在 /media/work/kvm。
如果您只想更改映像路径,还可以
default
通过运行以下命令编辑池中的存储路径:default
上面的命令将在编辑器(vim/nano)中打开池 xml,现在:libvirt
服务除了上面的回复显示如何从命令行进行操作之外,您还可以直接从 virt-manager 更改它。在 virt-manager 主窗口中,转到菜单“编辑 -> 主机详细信息”。在出现的对话框中,切换到“存储”选项卡。您现在可以删除“默认”存储池并创建一个新存储池来替换它。
从 GUI 看来,如果没有现有的 VM,似乎没有办法做到这一点。
从命令行,由 ivanleoncz 描述的过程应该可以工作,但您需要运行命令
sudo
以virsh
显示任何池。更新:显然是设计使您无法获得没有
sudo
. 根据virsh 手册页: