ZFS数据丢失方案


27

我正打算建立一个大型的ZFS池(150TB +),我想听听人们关于由于硬件故障而造成的数据丢失情况的经验,特别是区分只有一些数据丢失的实例与整个文件系统的实例(即使在ZFS中也是如此)。

例如:假设由于外部驱动器机箱断电或控制器卡出现故障等原因导致vdev丢失。从我读到的内容来看,池应该进入故障模式,但是如果vdev返回了,池应该恢复吗?或不?或者如果vdev部分损坏,是否会丢失整个池,某些文件等?

如果ZIL设备发生故障会怎样?还是只是几个ZIL之一?

确实,任何由深厚的技术知识支持的轶事或假设方案都值得赞赏!

谢谢!

更新:

由于我们是一家小型企业(9人左右),因此我们以便宜的价格进行此操作,但是我们会生成大量的成像数据。

数据大部分是较小的文件,据我估计,每TB约有500k文件。

数据很重要,但不是超级关键。我们计划使用ZFS池来镜像48TB“实时”数据阵列(使用3年左右),并将其余存储空间用于“归档”数据。

该池将使用NFS共享。

机架应该位于建筑物的备用发电机线上,并且我们有两个APC UPS能够在满负载下为机架供电5分钟左右。


2
如果您尚不知道自己在做什么,请咨询顾问和/或学习一些课程。我怀疑您需要的所有细节都可以用一个简单的答案覆盖。
卢卡斯·考夫曼

3
那么,您仍在计划使用Cheapo Consumer 7.2 SATA吗?叹息
Chopper3 2012年

@ Chopper3实际上,我不是故意这样说的...我正在认真考虑购买2TB SAS驱动器而不是3TB SATA驱动器。虽然我已经看到很多人说,他们一直在使用SATA驱动器就好了....
旋风

1
ZFS的SATA磁盘并不是真正的好组合。如今,您不会发现很多人推荐该设置。就您所谈论的规模而言(150TB),这是一个代价高昂且不必要的错误。看看这个
ewwhite

Answers:


22

设计正确的方法,您可以最大程度地减少ZFS数据丢失的机会。不过,您尚未解释池中存储的内容。在我的应用程序中,它主要服务于VMWare VMDK并通过iSCSI导出zvol。150TB并非微不足道的数量,因此我将依靠专业人士来提供扩展建议。

我从未使用ZFS丢失数据。

已经经历了一切:

但是通过所有这些操作,永远不会出现明显的数据丢失。只是停机时间。对于位于该存储顶部的VMWare VMDK,在事件发生后通常需要进行fsck或重新启动,但不会比任何其他服务器崩溃都严重。

至于ZIL设备的损失,取决于设计,要存储的内容以及I / O和写入模式。我使用的ZIL设备相对较小(4GB-8GB),其功能类似于写缓存。有些人镜像他们的ZIL设备。使用高端STEC SSD设备会使镜像成本过高。我改为使用单个DDRDrive PCIe卡。规划电池/ UPS保护,并使用具有超级电容器备份的SSD或PCIe卡(类似于RAID控制器BBWC和FBWC的实现)。

我的大部分经验是在Solaris / OpenSolaris和NexentaStor方面。我知道人们在FreeBSD上使用ZFS,但是我不确定zpool版本和其他功能有多远。对于纯存储部署,我建议您采用Nexentastor路由(并与经验丰富的合作伙伴交谈),因为它是专用操作系统,并且在Solaris衍生产品上运行的关键部署要比FreeBSD多。


我用更多信息更新了我的问题,但是我对了解以下更多细节特别感兴趣:“绝不丢失任何数据”,以及这意味着什么。也有兴趣了解有关恢复那些有故障的zpool,处理坏的NIC,甚至SATA驱动器和切换到SAS的问题的更多信息(尽管您很高兴知道,我很可能会选择2TB SAS,而不是3TB SATA) ,根据您的建议)。
飓风2012年

Non-appreciable-loss ==几秒钟的事务数据或崩溃一致状态。而且,不良的NIC被隔离到单个VMWare主机上,从而导致了VM级别的问题。不是基础的ZFS存储。
ewwhite

现在design the right way链接已断开。
萨拉·南达

11

我不小心覆盖了最新版本的OpenSolaris上的两个ZIL,这导致整个池不可挽回地丢失。(对我而言,这确实是一个严重的错误!我不明白失去ZIL意味着失去池。所幸从停机中恢复了。)

从151a版本开始(不知道ZPool是什么意思),此问题已得到解决。而且,我可以证明它可行。

除此之外,我还丢失了20TB服务器上的ZERO数据-包括由于其他几种用户错误情况,多次电源故障,磁盘管理不当,配置错误,大量故障磁盘等造成的。 Solaris上的配置界面在各个版本之间频繁而疯狂地变化,并且提出了重要的,不断变化的技能目标,它仍然是ZFS的最佳选择。

我不仅没有丢失ZFS上的数据(在我犯了一个可怕的错误之后),而且还不断保护着我。我再也不会遇到数据损坏的问题-在过去的20年中,我一直在困扰着许多服务器和工作站上的工作。当数据从备份循环中滚出时,无声(或只是“相当安静”)的数据损坏使我无数次丧命,但实际上已在磁盘上损坏。或其他备份备份损坏版本的方案。这不仅仅是一个大的数据丢失问题,而这个问题几乎总是被备份,这是一个更大的问题。因此,我只喜欢ZFS,无法理解为什么十年以来校验和和自动修复一直不是文件系统的标准功能。(授予的,真正的生死攸关的系统通常还有其他方法来确保完整性,

明智地说,如果您不想陷入ACL地狱,请不要使用ZFS内置的CIFS服务器。使用Samba。(您说过虽然使用了NFS。)

我不同意SAS与SATA的争论,至少对于ZFS而言,SAS总是比SATA更受青睐的建议。我不知道该评论是否引用了盘片旋转速度,假定的可靠性,接口速度或其他一些属性。(或者也许是“它们的价格更高,并且通常不为消费者所用,因此它们具有较高的优势。”)最近发布的一项行业调查(我确信仍在新闻中)显示,SATA实际上平均比SAS寿命长,至少在调查的大量样本量。(这肯定使我震惊。)我不记得那是SATA的“企业”版本,还是消费者,或者速度如何,但以我的丰富经验,企业和消费者模型同时失败具有统计意义的比率。(但是,消费者驱动器的故障超时时间太长了,这在企业中绝对重要-但这并没有给我带来麻烦,我认为这与可能导致整个故障的硬件控制器更相关。在这种情况下离线批量生产,但这不是SAS与SATA的问题,而ZFS从来没有让我失望过,基于这种经验,我现在混合使用1/3个企业级和2/3个消费者SATA驱动器。)此外,如果配置正确(例如,三向镜像条带),那么混合使用SATA并不会显着降低性能,但是我的IOPS需求仍然较低,因此取决于您的商店规模和典型用例,YMMV。我肯定已经注意到,在我的用例中,每个磁盘内置的缓存大小对延迟问题的影响比盘片旋转速度重要得多。

换句话说,它是一个包含多个参数的信封:成本,吞吐量,IOPS,数据类型,用户数量,管理带宽和常见用例。要说SAS始终是正确的解决方案,那就是不考虑这些因素的排列变化。

但是无论哪种方式,ZFS绝对是不可思议的。


3
感谢您抽出宝贵的时间来回复。您在ZFS方面的经验与我的一致。我对驱动器选择的评论特别是关于近线SAS与SATA磁盘。主要区别在于接口。它们在机械上是等效的。ZFS领域的最佳实践现在是避免SATA,因为需要双端口接口,更好的错误校正和SAS提供的可管理超时。
ewwhite

我最终使用了3TB SAS磁盘,但是....在这样做之前,我将放在同一SAS扩展柜中的30个左右的混合磁盘(5 400GB SATA,12 750GB SATS,14个1TB SAS)拼凑在一起。确实是最坏的情况。这些驱动器已经具有约2-3年的运行时间。然后,我编写了一个程序,该程序运行8个线程,随机读取写入和删除文件到池中。我跑了一个多星期。读取并向池中写入了超过100 TB的数据...没有问题。AVG R / W 100-400MB /秒 我怀疑SATA over SAS警告可能现在已经不是新闻了。
飓风2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.