Linux KVM 客户端文件系统(BTRFS?)

Linux KVM 客户端文件系统(BTRFS?)

在我们公司,多台服务器上有很多 kvm 客户端,大多数客户端及其主机系统都运行 ubuntu 16.04。

对于客户端和主机来说,首选的文件系统是 EXT4。最近,我使用 BTRFS 提供的一些很棒的快照功能来设置具有增量备份的备份服务器。

一些研究提供的线索是,人们永远不会对 KVM 主机使用 BTRFS,因为 FS 的碎片会减慢客户端的速度,直到最终冻结。

对于在 KVM 客户端上使用 BTRFS 有什么建议/做法/禁忌吗?

我们正在重新考虑客户端和主机的 FS 选择,使用 XFS 比 EXT4 是否有优势(客户端/主机或仅单面)?

答案1

在谷歌上你可以找到很多网站讨论 KVM 不同文件系统的性能。

看一下这个:ZFS、BTRFS、XFS、EXT4 和 LVM 与 KVM – 存储性能比较

根据作者 Gionatan Danti 的说法:

测试的场景包括:

  1. Qcow2 后端位于原始 MD 设备上的 XFS 文件系统之上。对精简和部分(仅元数据)预分配模式进行了基准测试;
  1. 逻辑卷后端,既有经典 LVM(fat 预分配)模式,也有精简(thin lvm 目标)模式。此外,thin lvm 还通过清零和清零两种方式进行分析;
  1. 在传统 LVM 之上的 XFS 和 EXT4 上的原始图像,依靠文件系统稀疏文件支持进行精简配置;
  1. 在精简 LVM 之上的 XFS 和 EXT4 上的原始映像,中继精简 lvm 目标以进行精简配置。在这种情况下,LVM 清零被禁用,因为待清零块直接在文件系统结构内进行管理;
  1. 在其镜像+条带实现之上的原始图像 BTRFS(这里没有 MD)。我对启用和禁用 CoW 的 BTRFS 进行了基准测试(nodatacow 挂载选项)
  1. 在其镜像+条带实现之上的原始图像 ZFS(不再有 MD)

他最后说道:

对于虚拟机存储,请远离 BTRFS:它不仅被 RedHat 标记为“技术预览”(即:并非 100% 可用于生产),而且用作虚拟机映像存储时速度非常慢。

另一篇博客讨论了 BTRFS,您可以在很多论坛上看到,需要禁用写时复制 (COW) 才能获得更好的 KVM 性​​能。

Chris Irwin 谈论了 BTRFS 的好处并讨论了替代方案:

还有其他工具,或者您可以自己运行 cron-job。那么 ZFS 怎么样?我以为 ZFS 可以完成所有这些事情?

是的,为什么不直接使用 ZFS?

前进

关联 :使用 btrfs

了解它是否适​​合您使用的另一种方法是自己测试性能是否良好以及在没有写时复制的情况下是否可靠。

如果 BTRFS 不是您的最佳选择,您可以尝试 ZFS。您可以使用相同的备份功能和许多其他改进,但在 Linux 中实现起来有点棘手。

答案2

我选择的 KVM 编排解决方案 oVirt 使用 LVM 卷作为原始磁盘传递给虚拟机,以实现最大性能、可扩展性和灵活性。您可以同时执行 qcow2 和 LVM 快照。如果您正在构建新的存储解决方案并想尝试一些 SDS 式和奇特的东西,您可以改用 Ceph 和 RBD 访问卷。

答案3

请查看 Btrfs Gotchas 官方网站的 Wiki:https://btrfs.wiki.kernel.org/index.php/Gotchas

尤其是这一点:

碎片化

具有大量随机写入的文件可能会变得非常碎片化(超过 10000 个区),从而导致 HDD 抖动,并在具有 SSD 或大量 RAM 的系统上出现多秒的 CPU 负载峰值。在服务器和工作站上,这会影响数据库和虚拟机映像。nodatacow 挂载选项可能在这里有用,但存在相关问题。

因此,仅凭这一点就足以说明问题了,如果您想要使用 COW 文件系统的一个功能无法快速地与虚拟主机映像一起使用,那么它还有什么用呢?如果您想使用 COW 文件系统,那么就使用 ZFS。

还要记住,Coreos 从 Btrfs 转向 EXT4 作为默认文件系统,因为几年前它仍然存在太多缺陷。

https://www.phoronix.com/scan.php?page=news_item&px=CoreOS-Btrfs-To-EXT4-OverlayFS

因此,尽管 Ext4 可能不那么华丽和花哨,但它是一种值得信赖和可靠的工作马。如果您正在寻找 Linux 上除 Ext4 之外的文件系统,并且不愿意使用 ZOL/切换到 FreeBSD,也许 XFS 值得一试。

请注意,虽然我在家用台式机上使用 Gentoo 和相当新的内核的 Btrfs,但每隔几个月它仍然会出现一些相当严重的故障,导致系统无法启动并需要手动修复,这需要花时间在 Google 上进行调查和反复试验,如果它不起作用,则需要进行适当的备份。

你应该问自己的真正问题是:我们为什么要放弃 Ext4?它似乎非常适合你的用例。仅仅因为你读到了一些关于新奇事物的信息并不意味着你真的需要它。想一想。

答案4

CentOS放弃对btrfs的支持ref:https://www.theregister.co.uk/2017/08/16/red_hat_banishes_btrfs_from_rhel/ 所以对于 CentOS 来说,btrfs 不是一个明智的选择。

btrfs 被视为下一个 FS 标准,但 ZFS 也获得了很多关注,主要是来自 Ubuntu。

大多数针对 btrfs 的警告都是旧的,或者涉及特定配置,例如 RAID6(意味着超过 2 个驱动器)

openSUSE 选择 btrfs 并对其进行了很好的支持。例如,在 /var/lib/libvirt 目录中,他们禁用了 COW,因此他们显然面临一些问题并修复了它们。

我在 2 个 SSD 上运行带有 btrfs 的 openSUSE,构建为 RAID1,以 root 身份使用,其中我托管了 5 个 VM(KVM)和 20 个容器(Docker)。

我很满意。

相关内容