我刚刚构build了一个新的基于KVM / libvirt的虚拟机主机,包含4个SATA II硬盘驱动器,并运行CentOS 5.5 x86_64。
我决定将虚拟机磁盘创build为作为libvirt存储池pipe理的LVM卷组中的逻辑卷,而不是将磁盘创build为qcow映像。
我无法决定的是,我应该在VM主机的卷组中还是在专用卷组中创build虚拟机逻辑卷。
我应该select哪种方法,为什么?
/boot文件系统的小型RAID1 md0 md1 ,其中包含LVM卷组vghost 。 vghost包含VM主机的根文件系统和交换分区 vghost创build虚拟机磁盘作为逻辑卷 vghost分配更多的空间 Depsite事实上,这种方法似乎工作,我不能动摇这是一个坏主意的感觉。 我觉得:
md0和md1与方法1相同,除了使md1大到足以容纳VM主机(例如5到10GB) md2占据了其余的空间。 md2包含LVM卷组vgvms ,其逻辑卷将由虚拟机独占使用 vgvms而不用担心打破主机操作系统 vgvms ,这似乎不是很好。 更新#1:
我担心方法2中VM主机磁盘空间不足的一个原因是因为我不知道VM主机是否足够强大,可以在虚拟机中运行所有服务。 我可能必须将某些/所有服务从虚拟机迁移到主机操作系统。
更新#2:
为什么我觉得这个系统可能没有被devise成在方法1中使用主机VG作为libvirt存储池的一个原因是我在virt-manager中注意到的一些行为:
深思熟虑的问题!
我会用方法2,但更多的是个人喜好。 对我来说,方法2的缺点并不是什么大问题。 我没有看到主机操作系统超过了它的5-10GB分区,除非你开始在其上安装额外的东西,你真的不应该这样做。 为了简单和安全起见,主机操作系统应该是最低限度的安装,除了最低限度的pipe理(例如sshd)之外,不能运行任何东西。
方法1缺点也不是真正的问题,国际海事组织。 我不认为会有任何额外的安全风险,因为如果一个根植的虚拟机在某种程度上能够突破其分区并感染/破坏其他分区,那么将主机操作系统放在一个单独的VG上可能没有什么区别。 另外两个缺点我不能直接从经验中得知,但是我的直觉是,CentOS,LVM和libvirt足够灵活和强大,不用担心它们。
编辑 – 对更新1的回应
现在,虚拟化的性能受到很大影响,尤其是使用支持内置处理器的处理器,所以我不认为将客户虚拟机中的服务移动到主机操作系统是值得的。 通过运行“裸机”,速度可能会提升10%,但是您将失去拥有小型,紧凑,安全主机操作系统的好处,并且可能影响整个服务器的稳定性。 不值得,国际海事组织。
鉴于此,我仍然赞成方法2。
对更新2的回应
似乎libvirt假设存储的特定方式是另一个有利于方法2的方面。我的build议是:使用方法2。
只要有一个系统在任何时间尝试在读/写模式下使用任何给定的LV,就可以为主机和来宾使用相同的VG。 如果多个系统试图写入相同的LV,则会导致文件系统的损坏。
你可能想看看这个,也许修补,看看这个项目如何做你在说什么。
ProxmoxVE是一个裸机KVM主机,它使用libvirt的perl实现,而不是RHEL的较重对手。 它实现了两种情况。
虚拟磁盘是.raw和稀疏,类似于.qcow但更快。
qcow&vmdk磁盘映像格式也受支持,但我认为可能会涉及LVM限制。 我不使用它们,所以我不能说太多。
LVM存储在节点上的虚拟机之间共享,可以是DRBD设备。
至于共享操作系统的VG空间,唯一需要考虑的限制是备份期间的快照大小。 这个值可以在一个configuration文件中改变,有时我会在论坛上看到人们不得不改变它,但是默认情况已经好几年了 – 即使是大型的虚拟磁盘。
http://pve.proxmox.com/wiki/Storage_Model#LVM_Groups_with_Network_Backing
find使用元数据typeslvm2的卷组“LDatastore1”
find使用元数据typeslvm2的卷组“LDatastore0”
find使用元数据typeslvm2的卷组“pve”
ACTIVE'/ dev / LDatastore1 / vm-9098-disk-1'[4.00 GB]inheritance
ACTIVE'/ dev / LDatastore1 / vm-7060-disk-1'[2.00 GB]inheritance
ACTIVE'/ dev / LDatastore1 / vm-5555-disk-1'[8.00 GB]inheritance
ACTIVE'/ dev / LDatastore0 / vm-4017-disk-1'[8.00 GB]inheritance
ACTIVE'/ dev / LDatastore0 / vm-4017-disk-2'[512.00 GB]inheritance
ACTIVE'/ dev / LDatastore0 / vm-7057-disk-1'[32.00 GB]inheritance
ACTIVE'/ dev / LDatastore0 / vm-7055-disk-1'[32.00 GB]inheritance
ACTIVE'/ dev / LDatastore0 / vm-6030-disk-1'[80.01 GB]inheritance
ACTIVE'/ dev / pve / swap'[3.62 GB]inheritance
ACTIVE'/ dev / pve / root'[7.25 GB]inheritance
ACTIVE'/ dev / pve / data'[14.80 GB]inheritance
CPU BOGOMIPS:53199.93
REGEX / SECOND:824835
HD SIZE:19.69 GB(/ dev / mapper / LDatastore0-testlv)
缓冲读取:315.17 MB /秒
平均search时间:7.18毫秒
FSYNCS / SECOND:2439.31
CPU BOGOMIPS:53203.97
REGEX / SECOND:825323
HD SIZE:7.14 GB(/ dev / mapper / pve-root)
缓冲读取:198.52 MB /秒
平均search时间:0.26毫秒
FSYNCS / SECOND:1867.56