FreeNAS作为虚拟文件服务器的风险

FreeNAS是否可以作为一个虚拟机运行是有争议的。

官方的立场是肯定的,但是需要额外的configuration 。

如果我不能保证我可以遵循这些build议,那么比起运行EXT4 / XFS的vanilla Linux系统,或者使用UFS的FreeBSD,我更容易遭受失败 – 特别是灾难性的失败?

具体来说,假设我将无法执行PCI传递,也不能禁用写入caching。 此外,我将只有一个虚拟磁盘存储(由硬件RAID支持的VMDK),所以没有RAIDZ。 显然,会有备份。

编辑 :澄清为什么我想要做到这一点 – 我需要一个文件服务器,这是我必须使用的基础设施。 如果我需要,我可以得到额外的虚拟磁盘设置RAIDZ,但否则就是这样。 我正在寻找一个好的文件服务器解决scheme,而FreeNAS似乎符合这个法案。 除了所有关于虚拟化ZFS的可怕警告,以及如何丢失所有数据并破坏备份。

我意识到,在这个基础设施上部署FreeNAS是有风险的。 我的问题是:比替代品风险高吗?

编辑2 :我似乎无法沟通我的意图。 带有ZFS的FreeNAS是一个坚如磐石的NAS平台。 然而,从我所读到的看来,使ZFS作为裸机文件服务器更可靠的function,如果在标准的虚拟机configuration上运行,实际上可能会对您有所帮助。 如果是这样,那么使用不同的文件系统是标准虚拟机设置(即没有直接IO,写入caching启用)的更好select。 这是一个正确的评估?

一般的答案

如果我不能保证我可以遵循这些build议,那么比起运行EXT4 / XFS的vanilla Linux系统,或者使用UFS的FreeBSD,我更容易遭受失败 – 特别是灾难性的失败?

风险是不同的,不能直接比较。

  • 我总是更喜欢一个ZFS系统,即使没有多余的vdevs,如果只是为了数据完整性的知识 (即使我必须从备份恢复,我想知道我必须从备份恢复,而不是沉默的腐败我不是甚至知道)。 像send/recv或快照function,使您的生活更容易,没有任何关系的诚信。
  • 说到灾难性的失败 ,只有备份会阻止你,即使你的正常系统是高度可靠的,你也需要备份,所以首先从备份开始(如你已经做的那样)是有道理的,然后考虑一下你需要的其他服务质量,以及你可以忍受的缺点。
  • 从理论上讲,更复杂的系统更容易出错,但是正如所有提到的文件系统已经超过10年了,积极使用和维护,我认为大部分的错误已经被消除了(这并不意味着没有剩下的, 当然)。
  • 有人可能会认为,写入时复制文件系统本质上更安全,因为它们从不覆盖实时数据,因此不会损坏它。 我认为这个风险更为理论化,而且受到其他因素的影响,比如元数据的实际实现和处理。

具体到你的情况

如果您查看引用的build议并对其进行剖析,则会注意到以下几点:

  1. 如果您不使用PCI直通(更多内容请参见下文),那么您必须禁用ZFS中的清理任务。 硬件可以“撒谎”到ZFS,所以擦洗可以造成更多的伤害,甚至可能永久破坏你的Zpool。

Scrub只读取底层vdevs的每个块并validation它们的校验和。 如果你的虚拟磁盘没有处理这个问题,这是垃圾,你应该关心它,而不是关于ZFS。 另一方面,如果您的虚拟磁盘已经在SAN上进行了校验和,那么除了导致额外的I / O(这是无用的)之外,额外的擦除将不会执行任何操作。

  1. 第二个预防措施是禁用SAN,NAS或RAID控制器本身发生的任何写入caching。 一个写caching可以很容易地混淆了ZFS写入或未写入磁盘的内容。 这种混乱可能导致灾难性的池失败。

如果您不信任硬件,这是一个很好的build议。 当然,缺点是性能相当低。 您也可能无法控制SAN设置,因此您需要将其作为从ebay购买的廉价磁盘,并将其用于您的系统 – 至less在理论上可能发生任何事情。

  1. 使用单个磁盘会使您容易受到池元数据损坏,从而导致池损失。 为了避免这种情况,您至less需要3个vdevs,无论是条带还是RAIDZconfiguration。 由于ZFS池元数据在三个vdev之间进行镜像(如果可用),使用最less三个vdevs来构build您的池比一个vdev安全。 理想情况下,有自己的冗余vdevs是首选。

这是一般的build议,但有点挑剔。 假设你的SAN不好,这在​​某些情况下会帮助你(至less有很多运气)。 假设你的SAN是好的,这没有任何意义,只会损失你的空间和性能。 在我看来,要确保从物理磁盘到SAN到networking到VM主机到VM guest的链是同样好的,所以你不必在每一层再做一切。


FreeNAS vs其他

关于FreeNASbuild议的一句话 – 它们当然是可以作为推荐的,也就是为普通观众提供的指南或提示。 如果你跟着他们,否则你不会变得更糟,甚至可能会更好。 然后,他们又是严厉的措辞,似乎是FreeNAS社区的惯常语气(至less从某些论坛海报来看)。 我想他们只是想在这个安全的一面。 我一直倾向于使用ZFS最佳实践指南 ,因为它的措辞非常中性,只是介绍事实,由您决定。

有趣的是,根据FreeNAS文档和论坛,如果您敢于使用less于4 GB的RAM运行ZFS文件服务系统,那么您将死于可怕的死亡,而在OmniOS的邮件列表(或SmartOS或Illumos或Nexenta,目前我不记得)人们testing了512MB内存的系统,并分享了如何configuration它们的build议。 总而言之,更多的是关于细节的知识,而select是由每个人决定的,而不是build立你将要遵循的规则。

随着时间的推移,这个问题也将变得不那么重要,并且build议将会改变,因为越来越多的系统在正常的桌面和服务器版本上切换到ZFS。 Ubuntu已经做到了,其他人肯定会跟上。 如果在两三年内80%的发行版使用ZFS或btrfs,其中大多数运行虚拟化,所以这是一个有争议的问题。

说到替代品,你可以试试StarWind Free。 它具有RAM和SSDcaching,可选的重复数据删除function,并使用同步复制来实现高可用性。

我唯一的抱怨是我不能从虚拟机做直接SMB,因为目前我使用的RDMA实现有一些SR-IOV的问题。 我希望Mellanox能够很快为他们的Windows Server 2012r2和2016驱动程序发布修补程序。

我不确定你想从我们这里得到什么。

如果我不能保证我能遵循这些build议,…

如果你不能保证你可以按照build议,那么你有一个不受支持的环境不这样做。

如果有人说他“确定你会没事的”,那么你不希望从这个build议中得到什么?