我开始学习如何用libvirt创build一个好的虚拟化堆栈。 我创build了一个LVM卷组,它公开了一个由Linux RAID构成的设备块。 我的想法是给每个虚拟机一个逻辑卷,但一个人build议我使用存储池,而不是像
<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存储文件,但我不明白的区别
这两者的效果是一样的,但是在一种情况下,您正在手动完成所有的事情,而在另一种情况下,libvirt能够为您做所有事情。
通过定义存储池,libvirt能够创build和pipe理该池中的卷。 如果没有定义存储池,则必须手动创build和pipe理libvirt之外的卷。
请注意,块设备不必是存储池的一部分,以便由libvirtpipe理的虚拟机可以使用它。 但如果不是,那么你必须自己pipe理它。
正如上面所说的,它非常相似,一个存储池基本上是一个卷组,libvirtpipe理所创build的逻辑卷。
而手动创build卷组并手动创build磁盘,然后将其添加到虚拟机。
只需添加一个存储池并在创build虚拟机时创build磁盘。