libvirt:公开 LVM 逻辑卷与 libvirt 存储池的区别

libvirt:公开 LVM 逻辑卷与 libvirt 存储池的区别

我开始学习如何使用 libvirt 创建良好的虚拟化堆栈。我创建了一个 LVM 卷组,它公开了一个由 Linux RAID 组成的设备块。我的想法是为每个虚拟机提供一个逻辑卷,但有人建议我改用存储池,比如

<pool type='logical'>
  <name>VG_foo</name>
  <uuid>foo</uuid>
  <capacity unit='bytes'>0</capacity>
  <allocation unit='bytes'>0</allocation>
  <available unit='bytes'>0</available>
  <source>
    <device path='/dev/md2'/>
    <name>vg_foo</name>
    <format type='lvm2'/>
  </source>
  <target>
    <path>/dev/vg_foo</path>
    <permissions>
      <mode>0755</mode>
      <owner>-1</owner>
      <group>-1</group>
    </permissions>
  </target>
</pool>

我读过了libvirt 存储文档但我不明白区别

答案1

这两种方式的效果是一样的,但是在一种情况下你需要手动完成所有事情,而在另一种情况下,libvirt 能够为您完成所有事情。

定义存储池后,libvirt 便能够在该池中创建和管理卷。如果没有定义存储池,则必须在 libvirt 之外手动创建和管理卷。

请注意,块设备不是必须是存储池的一部分,以便 libvirt 管理的虚拟机可以使用它。但如果不是,那么你必须自己管理它。

答案2

如上所述,它们非常相似,存储池基本上是一个卷组,libvirt 管理创建的逻辑卷。

而您需要手动创建卷组并手动创建磁盘,然后将其添加到虚拟机。

只需添加存储池并在创建虚拟机时创建磁盘。

相关内容