ZFS + FreeBSD + virtualbox

我正在configuration一个FreeBSD服务器托pipevirtualbox服务半打关键任务繁忙的邮件服务器。 我刚学过ZFS,我很吸引,但有几个问题:

  1. ZFS的CPU开销是多less? 我GOOGLE了,发现很less(或没有)的基准。

  2. 从我所了解到的情况来看,当ZFS更新文件时,它将旧文件保存为快照,并为新版本写入更新的部分。 但是,这意味着每个快照都需要大量的存储开销。 这个存储开销多less钱? 例如,假设我有2TB的可用空间,一年之后实际上可以为最新版本的文件使用多less空间?

  3. 是FreeBSD与ZFS托pipevirtualbox服务半打繁忙的访客任务关键邮件服务器的合理组合? 有什么特别要小心? 我还可以select客户操作系统的ZFS吗? 这是因为我可能build立另一个相同的这样的冗余盒子,并且需要在盒子的每一对客户系统之间做一些镜像。

  4. 我正在尝试为此configurationDell R710。 据我所知,我根本不应该select任何RAID,这是真的吗? 在这种情况下,驱动器是否仍然可以热插拔?

  5. 这可能听起来有点可悲,但是因为我根本没有使用ZFS的经验,而且这是一个关键任务服务器,所以只是为了以防万一:我select了双处理器的英特尔L5630处理器和6个600GB 15K RPM串行 – 连接SCSI驱动器。 如果将来需要更多的空间,我只需要热插拔一些容量较大的驱动程序来扩展存储空间。 这些没有问题吧?

我在使用HPC的50TB NFS文件服务器上的OpenSolaris上运行ZFS的经验,所以我将基于此回答您的问题。

问题1

ZFS的CPU开销是多less?

这是非常小的。 它将根据您select的校验和和压缩algorithm以及您启用重复数据删除而有所不同。 我有全部3使用默认选项启用,很less让我的16个核心利用率超过15%。 请记住,压缩和重复数据删除也会减less您需要写入的数据量,所以事情最终会以较小的CPU利用率为代价而发生。 现在的CPU是血腥的。

问题2

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

快照仅存储已更改内容的差异。 如果删除或修改现有数据,则只能看到快照占用的空间。 对于以纯文本格式存储邮件的邮件服务器,这意味着只有已删除的邮件才会导致快照的开销。 如果您累积的电子邮件有1.5GB(ZFS压缩后)和0.5GB的删除时间,那么无论您创build多less个快照,您都可以将所有内容放入您的2GB zpool中。

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

ZFS是一个事务性的FS,所以即使删除一个快照也需要写一个小日志到磁盘。 这意味着如果你有0字节的空闲空间,那么你不能删除。 我被困住了一次。 因此,请注意设置一个磁盘空间配额(比如说zpool的99%),这样当空间用完时,您实际上可以删除它们。

问题3

是FreeBSD与ZFS托pipevirtualbox服务半打繁忙的访客任务关键邮件服务器的合理组合? 有什么特别要小心? 我还可以select客户操作系统的ZFS吗? 这是因为我可能build立另一个相同的这样的冗余盒子,并且需要在盒子上的每对客人系统之间做一些镜像。

我不知道VirtualBox如何在这种负载下工作。 您应该在部署之前testing性能。 复制将是最好的zfs send

问题4

我正在尝试为此configurationDell R710。 据我所知,我根本不应该select任何RAID,这是真的吗? 在这种情况下,驱动器是否仍然可以热插拔?

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

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

问题5

如果将来需要更多的空间,我只需要热插拔一些容量较大的驱动程序来扩展存储空间。 这些没有问题吧?

这是一个很好的问题。 这将是一个问题,如果你做硬件RAID。 另一方面,ZFS应该可以让你像ZRAID一样扩展。 我从来没有厌倦。 扩展时,我们只需添加新的架子并创build新的zpools。 增加现有的zpools就像添加新的zpools一样简单。

我会在这里解决#3。 我不认为VirtualBox + FreeBSD + ZFS是您提议的最佳解决scheme(基于您对“任务关键”和“繁忙”的使用)。

  • 你希望通过使用ZFS来完成什么? 这是一个伟大的文件系统,我绝对是一个倡导者,但是它在这种情况下增加了什么价值? 快照? 检查校验? (个人来说,在我开始在ZFS上托pipe关键应用程序之前,我花了很多的努力和大量的研究)。

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

  • 运行邮件软件的单个实例并在其中托pipe多个域是否存在任何问题,还是需要虚拟化提供的完全隔离?

  • 如果您select使用ZFS,则不需要传统的Perc RAID控制器,但应指定将RAW SAS驱动器传递到操作系统的内容。 请参阅: ZFS SAS / SATA控制器build议 (顺便说一句,您的驱动器仍然是热插拔的。)

您不能在FreeBSD jails中运行您的邮件服务器(请参阅ezjails端口)。 您可以将各个jail放置在zfs文件系统上,从而拥有所有的快照function。

也就是说,你的vbox客户应该运行什么操作系统和软件? 现在8.2(几乎)已经出来了,这些部门有了很大的改进。 而9.0版本还有更多。

简而言之,对于运行Virtualbox的服务器来说,ZFS是很好的select,但是你真的不应该把硬盘放在和虚拟机相同的机器上。 ZFS可以利用所有的内存,这在虚拟机服务器上很难做到。 但是在专门的存储服务器上,您可以正确设置ZFS,利用快照进行备份等等。 最好使用iSCSI在VM服务器和存储服务器之间进行通信。

添加解释以回答评论…请注意,快照不是备份,但它们可用于进行备份。 换句话说,closures您的数据库服务器软件或类似的快照,并重新启动软件。 然后使用快照作为源来启动备份。 您的停机时间只是closures和重新启动关键任务进程所需的时间。 这就是为什么快照是如此有用。

  1. 现在我知道的非常多,主要的开销是它应该有RAM足以工作
  2. 不会在每次更新时创build快照,但前提是您(手动或使用脚本)创build快照; 所需的空间是最小的,因为它使用了写入时复制的方法(旧文件中在新文件中被更改的块)
  3. 我确实使用了FreeBSD和ZFS,但要注意虚拟机有足够的内存分配给它

大约4点和5点,我不确定。