ZFS + FreeBSD + 虚拟机

ZFS + FreeBSD + 虚拟机

我正在配置一个托管 VirtualBox 的 FreeBSD 服务器,该服务器为六个关键任务繁忙邮件服务器提供服务。我刚刚学习了 ZFS,我很感兴趣,但有几个问题:

  1. ZFS 的 CPU 开销是多少?我在 Google 上搜索了一下,发现几乎没有(甚至没有)相关基准。

  2. 据我所知,当 ZFS 更新文件时,它会将旧文件保留为快照,并将更新的部分写入新版本。然而,这意味着它保留的每个快照都需要大量的存储开销。这个存储开销是多少?例如,假设我有 2TB 的可用空间,一年后最新版本的文件实际上可以使用多少空间?

  3. FreeBSD 和 ZFS 托管 virtualbox 为六个繁忙的客户关键任务邮件服务器提供服务,这是一个合理的组合吗?有什么需要特别注意的吗?我还能为客户操作系统选择 ZFS 吗?这是因为我可能会构建另一个相同的盒子来实现冗余,并且需要在盒子之间的每对客户系统之间进行一些镜像。

  4. 我正在尝试为此配置一台 Dell R710。从我了解到的情况来看,我根本不应该选择任何 RAID,是吗?在这种情况下,驱动器是否仍可热插拔?

  5. 这听起来可能有点可悲,但由于我对 ZFS 完全没有经验,而且这是一台关键任务服务器,所以以防万一,还是问一下吧:我选择双 Intel L5630 处理器和 6 x 600GB 15K RPM 串行连接 SCSI 驱动器。如果将来我需要更多空间,我只需热插拔一些容量更大的驱动器来扩展存储空间。这些没有问题,对吧?

答案1

我将在这里讨论第 3 个问题。我认为 VirtualBox+FreeBSD+ZFS 不是您所提议的最佳解决方案(基于您对“任务关键”和“繁忙”的用法)。

  • 您希望通过使用 ZFS 实现什么目标?这是一个很棒的文件系统,我绝对是它的拥护者,但在这种情况下它能增加什么价值?快照?校验和?(就我个人而言,在开始在 ZFS 上托管关键应用程序之前,我尝试了几次,做了大量研究)。

  • 我知道您是 ZFS 新手,但是您对 FreeBSD 和 VirtualBox 的体验如何?

  • 运行邮件软件的单个实例并在其中托管多个域是否会有问题,或者您是否需要虚拟化提供的完全隔离?

  • 如果您确实选择使用 ZFS,则您不需要传统的 Perc RAID 控制器,而应该指定将 RAW SAS 驱动器传递给操作系统的某些东西。请参阅:ZFS SAS/SATA 控制器建议 (顺便说一句 - 您的驱动器仍然可以热插拔。)

答案2

我有在用于 HPC 的 50TB NFS 文件服务器上的 OpenSolaris 上运行 ZFS 的经验,因此我将根据此经验回答您的问题。

问题 1

ZFS 的 CPU 开销是多少?

它非常小。它会根据您选择的校验和和压缩算法以及是否启用重复数据删除而有所不同。我启用了所有 3 个默认选项,并且我的 16 个核心很少会利用超过 15%。请记住,压缩和重复数据删除也会减少您需要写入的数据量,因此最终事情会以较小的 CPU 利用率为代价更快地完成。如今的 CPU 非常快。

问题2

据我所知,当 ZFS 更新文件时,它会将旧文件保留为快照,并将更新的部分写入新版本。然而,这意味着它保留的每个快照都需要大量的存储开销。这个存储开销是多少?例如,假设我有 2TB 的可用空间,一年后最新版本的文件实际上可以使用多少空间?

快照仅存储更改内容的差异。只有删除或修改现有数据时,您才会开始看到快照占用空间。对于以纯文本形式存储邮件的邮件服务器,这意味着只有已删除的电子邮件才会在快照中产生开销。如果您累积了 1.5GB(ZFS 压缩后)的电子邮件,并且随着时间的推移删除了 0.5GB,那么无论您制作了多少快照,您都可以将所有内容放入 2GB zpool 中。

拥有 1 个或多个快照意味着您将无法通过删除文件来释放空间,但您可以通过删除快照来释放空间。

ZFS 是事务性文件系统,因此即使删除快照也需要将小日志写入磁盘。这意味着如果您有 0 字节的可用空间,那么您就无法删除。我曾经遇到过这种情况。因此,请小心设置磁盘空间配额(例如 zpool 的 99%),这样当您用完空间时,您实际上就可以删除东西。

问题 3

FreeBSD 和 ZFS 托管 virtualbox 为六个繁忙的客户关键任务邮件服务器提供服务,这是一个合理的组合吗?有什么需要特别注意的吗?我还能为客户操作系统选择 ZFS 吗?这是因为我可能会构建另一个相同的盒子来实现冗余,并且需要在盒子之间的每对客户系统之间进行一些镜像。

我不知道 VirtualBox 在这种负载下能运行得如何。您应该在部署之前测试性能。使用 进行复制是最好的zfs send

问题 4

我正在尝试为此配置一台 Dell R710。从我了解到的情况来看,我根本不应该选择任何 RAID,是吗?在这种情况下,驱动器是否仍可热插拔?

如果将驱动器格式化为 JBOD,则可以使用 ZFS 的 ZRAID。它们将支持热插拔。

我们有 LSI 的 SAN,我们没有使用 ZRAID。相反,我们依靠硬件 RAID6。有些情况下,ZFS 检测到数据损坏,我能够判断哪些文件受到了影响。数据后来由硬件恢复,但如果我们有 ZRAID,文件级别就不会出现任何可见的数据损坏。

问题 5

如果以后我需要更多空间,我只需热插拔一些容量更大的驱动器来扩展存储空间。这些都没有问题,对吧?

这是个好问题。如果你使用硬件 RAID,这将是一个问题。另一方面,ZFS 应该能够让你使用 ZRAID 进行这样的扩展。我从未厌倦过这一点。扩展时,我们只需添加新架子并创建新的 zpools。扩展现有的 zpools 就像添加新的一样简单。

答案3

您不能在 FreeBSD jail 中运行邮件服务器吗(请参阅 ezjails 移植)。您可以将各个 jail 放在 zfs 文件系统上,这样就可以拥有所有快照功能。

话虽如此,您的 vbox 客户端应该运行什么操作系统和软件?现在 8.2 版(即将)发布,它在这些方面进行了大量改进。而对于 9.0 版,还有更多改进。

答案4

  1. 据我所知,主要的开销是它应该有足够的内存来工作
  2. 每次更新时都不会创建快照,只有您(手动或使用脚本)创建快照时才会创建;所需空间是最低限度,因为它使用写时复制方法(旧文件中的块在新文件中已更改)
  3. 我确实会使用 FreeBSD 和 ZFS,但要注意为虚拟机分配足够的 RAM,

大约 4 和 5,我不确定。

相关内容