如何改变 libvirt VM 镜像的默认位置

发布于 2024-11-07 14:15:20 字数 2748 浏览 6 评论 0

提问 : 我使用 libvirt 和 virt-manager 在我的 Linux 系统上创建虚拟机。我注意到虚拟机镜像位于/var/lib/libvirt/images 目录。有没有办法改变虚拟机镜像的默认路径?

libvirt 和它的 GUI 前端 virt-manager 可以使用不同的虚拟机管理程序创建和管理 VM,例如 LVM 和 Xen。默认上所有的虚拟机镜像通过 libvirt 创建到/var/lib/libvirt/images 目录。然而,这有时并不是我们希望的。比如 /var/lib/libvirt/images 此处的磁盘分区大小有限。或者你想要存储所有的虚拟机镜像到一个特定的用于管理的仓库中。

实际上,你可以非常容易地改变 libvirt 镜像的默认目录,或者称之为“存储池”。

有两种方法可以改变默认存储池。

方法一: Virt-Manager GUI

如果你正在使用 virt-manager GUI 程序,改变默认存储池非常容易。

进入 virt-manager 的菜单 GUI “编辑” -> "连接细节"。

你可以看到如下所是的默认存储池。在窗口的左下角,点击叉形按钮,将会停止默认的存储池。存储池一旦停止后,点击右边的垃圾桶,将会删除存储池。 注意这个动作不会删除池中的镜像。

现在点击左边的加号增加一个新的存储池。

输入新的存储池的名字(比如:default),并且选择存储池的类型。本例中,因为我们只是改变存储池目录所以选择“文件系统目录”。

输入新的存储池路径(比如,/storage)。

这时,新的存储池应该启动了,并且自动在你创建一个新的虚拟机的时候使用。

方法二: Virsh 命令行

另外一个改变默认存储池目录的方法是使用来自 libvirt 包的 virsh 命令行工具。

首先,运行下面的命令来导出默认存储池的 XML 定义。

 $ virsh pool-dumpxml default > pool.xml 

用文本编辑器打开 XML 文件,并且改变节点中的/var/lib/libvirt/images 改成新的地址。

<pool type='dir'>
  <name>default</name>
  <uuid>0ec0e393-28a2-e975-feec-0c7356f38d08</uuid>
  <capacity unit='bytes'>975762788352</capacity>
  <allocation unit='bytes'>530052247552</allocation>
  <available unit='bytes'>445710540800</available>
  <source>
  </source>
  <target>
    <path>/var/lib/libvirt/images</path>
    <permissions>
      <mode>0711</mode>
      <owner>-1</owner>
      <group>-1</group>
    </permissions>
  </target>
</pool>

移除现在的默认池。

$ virsh pool-destroy default 

Pool default destroyed

现在创建一个基于更新后的 XML 文件的新存储池。

$ virsh pool-create pool.xml 

Pool default created from pool.xml

这时,默认池已经改变到新的地址了,并且可以使用了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
609 人气
更多

推荐作者

安静被遗忘

文章 0 评论 0

喔爱吃橙子

文章 0 评论 0

草莓味的萝莉

文章 0 评论 0

梦里兽

文章 0 评论 0

mb_83J3Cyxa

文章 0 评论 0

时间海

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文