我有一个 KVM 机箱,运行一些执行软件构建的关键虚拟机。服务器运行 SSD 驱动器。我有一个较旧版本的 KVM,快照功能有限,我决定使用 LVM 快照来保存每个新版本后的虚拟机状态(这样我们可以在需要修补时恢复到某个版本)。PV 已满,所以我需要向卷组添加一个磁盘,以便快照得以保存。将常规 USB 驱动器添加到虚拟机所在的卷组(仅用于 LVM 快照的存储空间)有什么坏处吗?我会失去 SSD 速度吗?
答案1
从理论上来说这应该没问题,但是你如何确保虚拟机数据不会最终出现在 USB 磁盘上?
答案2
这里有几点
- LVM 快照不形成链,它们不使用 COW 算法,实际上只能有一个。如果您需要快照链以便能够在任何地方回滚,则需要使用 qcow2 快照。
- 话虽如此,在生产中不建议使用快照链来运行生产虚拟机,一段时间后性能下降会变得非常严重,更不用说空间损失了。这不仅仅是 KVM 的问题,任何 VCP 讲师都会告诉你同样的事情。
- 在一个 VG 下混合不同类型的存储也不是最佳实践。我曾见过 LVM 因将两个不同 raid 阵列中的两个不同 LUN 混合在条带卷中而失败,序列化可能更稳定,但为什么要冒这样的风险让你的 VM 冒险呢?
我会用不同的方式来做这件事:
- 使用 LVM 快照在需要时备份虚拟机
- 将备份保存在 USB 磁盘上,与运行时 LVM 数据分开
- 如果发生回滚,请用备份中的 LV 替换 SSD 上的 LV。
我知道这意味着要保留完整备份,但只要规划得当,您就不会偏离当前的 SSD 性能,也不会失去当前的系统稳定性,能够回滚到合理数量的 PIT 并保持在最佳实践范围内