我是一家小公司的 IT 专员。我想设计一个新的基础设施,包括一台新服务器和一台单独的备份服务器,并采用公司范围的备份策略。
公司中最重要的是 SQL Server 及其数据库。有 10 个数据库,但只有 2 个真正重要。第一个数据库有 8GB,主要是文本数据和数字。第二个数据库约有 300GB,每月增长 16GB,其中包含 PDF 和 GIF。
为了节省存储空间,当前的备份策略包括每周一次完整备份和 6 次差异备份。我认为每周大约 350GB,每月 1.4TB。
在阅读了有关静默数据损坏的文章后,我决定尝试使用 Nexenta 社区版的 ZFS。
我的问题是:从可靠性的角度来看,带有重复数据删除功能的 ZFS 是否适合存储备份文件,还是我应该考虑一些磁带备份或其他东西?
编辑:我知道现在我们无法预测性能、重复数据删除率等,但我想知道这是否是个好主意。
答案1
当然,ZFS 足够稳定,可以做这种事情,有许多非常大型、高调和可靠的生产平台完全基于 ZFS 和 Nexenta。
也就是说,总是喜欢有现场基于磁盘的备份(例如您所建议的备份)以及每天移至异地的可移动磁盘或基于磁带的备份,以防止火灾/地震/克苏鲁等。
所以我的答案是肯定的,可以,但是如果可以的话我会选择这两种选择。
答案2
(假设您指的是在 ZFS 中使用重复数据删除,而不是使用备份软件)
我会不是推荐使用 ZFS本国的除非您专门为此设计存储系统,否则请勿为您的备份系统进行重复数据删除。
在 ZFS 中使用重复数据删除非常耗费 RAM。由于重复数据删除是在数据流式传输/写入存储池时实时进行的,因此内存中会维护一个表来跟踪数据块。这是DDT 表。如果您的 ZFS 存储服务器没有足够的 RAM 来容纳此表,性能将受到极大影响。当表超过某个阈值时,Nexenta 会向您发出警告,但到那时已经太晚了。这可以通过使用L2ARC 设备(读取缓存),但许多 ZFS 的早期采用者都陷入了这个陷阱。
看:
ZFS - 破坏重复数据删除的 zvol 或数据集会导致服务器停滞。如何恢复?
ZFS - L2ARC 缓存设备故障的影响(Nexenta)
当我说使用重复数据删除对 RAM 的要求很高时,我估计您描述的数据集的 RAM 和 L2ARC 需求为 64GB+ RAM 和 200GB+ L2ARC。这不是一笔小投资。保留大量不会重新读取的 Windows 系统文件和图像文档将很快填满 DDT。回报可能不值得前期需要进行的工程工作。
更好的想法是在 zpool 上使用压缩,可能利用 gzip 功能来处理更易压缩的数据类型。重复数据删除不值得,因为当您需要删除重复数据删除的数据时会产生影响(需要参考 DDT)。
此外,您将如何向备份软件提供存储?您将使用哪种备份软件套件?在 Windows 环境中,我通过 iSCSI 将 ZFS 作为块存储提供给 Backup Exec。我从未发现 ZFS CIFS 功能足够强大,并且更喜欢本机格式化设备的优势。
此外,这里还有一个用于提供设计理念的极好的 ZFS 资源。没人告诉过你的关于 ZFS 的事情
答案3
另一个可选操作系统是 OpenIndiana,它同样出色,并且有时会收到更频繁的更新。
另一个选择是设置第二个 ZFS 服务器,该服务器具有较小的(可能)存储池并启用了压缩。您可以使用第二个设备进行静态备份。这样,您就可以省去读取缓存,也不需要大量的 CPU/RAM 来处理它。
在我工作的地方我们采用这样的设置:
- OpenIndiana 主存储服务器 [主要的] 在由三组镜像对组成的 RaidZ1 池中使用六块 2TB 磁盘。这虽然会占用可用存储空间,但却能形成一个快速且多冗余的存储池。
- 二级存储服务器[备份] 也运行 OpenIndiana,其磁盘配置类似,仅作为备份设备。
- 主要的有一个从 cron 作业运行的脚本,该脚本会在一天中定期对 /tank/[dataset] 进行快照
- 每天晚上,都会运行另一个 cron 作业,通过网络将当天的快照推送到备份。一旦完成所有快照的初始同步(一次性过程),快照的增量特性意味着更改会很快推送到您的备份设备。
我在这里简要介绍一下如何设置 ZFS 发送/接收:http://kyrill-poole.co.uk/blog/tech/zfs-send-and-receive/