KVM/libvirt 主机和来宾之间共享的 LVM 卷组:这是一个坏主意吗?

mos*_*sno 12 storage lvm centos software-raid kvm-virtualization

我刚刚构建了一个全新的基于 KVM/libvirt 的虚拟机主机,包含 4 个 SATA II 硬盘驱动器,并运行 CentOS 5.5 x86_64。

我决定在作为 libvirt 存储池管理的 LVM 卷组中创建虚拟机磁盘作为逻辑卷,而不是将磁盘创建为 qcow 映像的通常做法。

我无法决定是应该在 VM 主机的卷组中还是在专用卷组中创建虚拟机逻辑卷。

我应该选择哪种方法,为什么?


方法 1:使用 VM 主机的卷组

执行:

  • md0包含/boot文件系统的小型 RAID1
  • md1占用剩余空间的大型 RAID10 ,其中包含一个 LVM 卷组vghostvghost包含 VM 主机的根文件系统和交换分区
  • vghost根据需要创建虚拟机磁盘作为逻辑卷

优点:

  • 如果 VM 主机的根文件系统空间不足,我可以vghost相对轻松地从中分配更多空间
  • 系统已经启动并运行(但重新开始没什么大不了的)

缺点:

尽管这种方法似乎有效,但我无法摆脱这样的感觉,即这在某种程度上是个坏主意。我觉得:

  • 这可能以某种方式存在安全风险
  • 在未来的某个时候,我可能会发现设置有一些限制,并希望我使用一个专门的组
  • 系统(CentOS、libvirt 等)可能并没有真正设计成这样使用,因此在某些时候我可能会意外损坏/丢失 VM 主机的文件和/或文件系统

方法 2:使用专用卷组

执行:

  • 同样的md0,并md1在方法1,除了化妆md1只是大到足以容纳VM主机(如5至10GB)
  • 大 RAID10md2占用剩余空间。md2包含一个 LVM 卷组vgvms,其逻辑卷将由虚拟机独占使用

优点:

  • 我可以随意修改而vgvms不用担心破坏主机操作系统
  • 这似乎是一个更优雅和安全的解决方案

缺点:

  • 如果 VM 主机的文件系统空间不足,我将不得不将其文件系统的一部分(例如 /usr 或 /var)移动到 上vgvms,这看起来不太好。
  • 我必须重新安装主机操作系统(如前所述,我并不介意这样做)

更新#1:

我担心在方法 2 中用完 VM 主机磁盘空间的原因之一是因为我不知道 VM 主机是否足够强大以运行虚拟机中的所有服务,即。我可能需要将部分/所有服务从虚拟机迁移到主机操作系统。

VM 主机硬件规格:

  • Phenom II 955 X4 黑色版处理器(3.2GHz,4核CPU)
  • 2x4GB 金士顿 PC3-10600 DDR3 内存
  • 技嘉GA-880GM-USB3主板
  • 4 个 WD Caviar RE3 500GB SATA II 硬盘 (7200rpm)
  • Antec BP500U Basiq 500W ATX电源
  • CoolerMaster CM 690 机箱

更新#2:

在方法 1 中,我觉得系统可能没有被设计为使用主机 VG 作为 libvirt 存储池的原因之一是我在 virt-manager 中注意到的一些行为:

  • 添加后,它抱怨无法激活 VG(显然,因为主机操作系统已经激活了它)
  • 删除后,它拒绝这样做,因为它无法停用 VG(显然,因为主机操作系统仍在使用根和交换 LV)

Ste*_*day 3

深思熟虑的问题!

我会选择方法 2,但这更多的是个人喜好。对我来说,方法 2 的缺点并不是什么大问题。我认为主机操作系统不会超出其 5-10GB 分区的容量,除非您开始在其上安装额外的东西,而您确实不应该这样做。为了简单性和安全性,主机操作系统实际上应该是一个最低限度的安装,除了管理所需的最低限度(例如 sshd)之外,不运行任何东西。

在我看来,方法 1 的缺点也不是真正的问题。我认为不会有任何额外的安全风险,因为如果 root 虚拟机能够以某种方式突破其分区并感染/损坏其他分区,那么将主机操作系统放在单独的 VG 上可能不会有任何区别。另外两个缺点我无法从直接经验中谈起,但我的直觉告诉我,CentOS、LVM 和 libvirt 足够灵活和强大,无需担心它们。

编辑 - 对更新 1 的响应

如今,虚拟化的性能影响非常低,尤其是使用内置支持虚拟化的处理器,因此我认为将服务从来宾虚拟机迁移到主机操作系统不值得。你可能会通过在“裸机”上运行,不值得,国际海事组织。

鉴于此,我还是倾向于方法2。

对更新 2 的回应

看来 libvirt 假定存储布局的特定方式是支持方法 2 的另一个观点。我的建议是:使用方法 2。