我想为 KVM/LXC 服务器配置 RAID(它运行 proxmox 作为虚拟机管理程序)。
该服务器现在按照以下配置运行 3 个 SSD:
- 10GB 主机根分区 + 一些容器的 Btrfs 分区
- LVM-薄型 (vg 0)
- LVM-薄型 (vg 1)
我想将此配置更改为 RAID5 以实现容错。
但我真的不知道哪种配置更好:
- mdadm RAID5 + LVM(和 LVM-Thin)
- ZFS RAIDZ(写洞保护)
该服务器将用于托管一些游戏保存器、网站和数据库。
(其中大部分将在 LXC 容器而不是 KVM VM 中运行)。
我主要担心的是 ZFS 会消耗太多的 CPU 能力,而且我也不确定是否要使用 ZFS 作为虚拟机的底层存储。
答案1
我主要担心的是 ZFS 会消耗太多的 CPU 能力,而且我也不确定是否要使用 ZFS 作为虚拟机的底层存储。
在现代 CPU 上,校验和和 LZ4 压缩几乎是免费的。如果您以 NVMe 速度不断写入/读取,这可能会开始变得重要,但我怀疑这对您的用例来说并不重要。
对于容器来说,这很棒,因为您可以获得即时零开销快照。对于虚拟机,您可以使用 zvols - 它也提供即时快照,但是根据一些消息来源,zvols 在 Linux 上是好坏参半。就我个人而言,我没有遇到任何问题。
总体而言,mdadm + LVM 可能更快,但 ZFS 具有压缩和更好的快照。只是基准测试。
答案2
如果这是一个生产系统,除非您有管理它的经验,否则我会远离 ZFS。它并不像设置一次然后放弃它那么简单。
出于 mt_ 的回答中列出的所有原因,使用 ZFS 作为虚拟机的存储是可以的,但它确实有一些不太明显的管理复杂性。
ZFS 的压缩是免费的*,只要您拥有相对先进的 CPU,加密也是免费的。唯一需要真正规划的资源消耗大问题就是执行重复数据删除。如果您要对数据进行重复数据删除,则需要为 ZPool 中每 TB 的空间投入几 GB 的 RAM。
您还需要考虑将来如何扩展架构,因为您不能直接向 ZPool 添加新磁盘。这应该会在近期的 ZFS 更新中得到改变,但即将推出很长时间。