我目前正在设置一个不错的家用 NAS。主要关注的是数据的完整性,因此我决定使用 ZFS 作为文件系统。不幸的是,这确实对硬件提出了一些要求(或更准确地说是建议),使其成为一个相当昂贵的解决方案。这使我无法在类似的系统上实施异地备份,因此我正在寻找替代解决方案。
理想情况下,我会有三个可移动硬盘,其中一个放在服务器附近,每周连接一次左右。其他硬盘将留在异地,并会不时轮换。我知道这会对新数据造成风险,但我计划以其他方式备份这些硬盘。
问题是我应该在可移动驱动器上放什么。最初,我想在zpool
每个驱动器上放一个,然后使用zpool send
和zpool recv
来更新它们,例如这里。但是,我认为一旦我需要放回备份,驱动器很可能就会“损坏”,我希望 ZFS 能够处理这个问题。理想情况下,所有三个可移动驱动器在两次驱动器交换之前都应处于镜像配置,这将允许 ZFS 在恢复备份时使用它们来修复旧数据中的问题。但是,驱动器永远不会同时连接,因此这可能是不可能的。ZFS 是否提供了一种实现我想要的方法,还是我应该使用其他方法?
答案1
不幸的是,这确实对硬件提出了一些要求(或者更准确地说是建议),使其成为一种相当昂贵的解决方案。这使我无法在类似的系统上实施异地备份,因此我正在寻找替代解决方案。
我不知道您的具体硬件和性能需求,但请注意,如果您知道自己在寻找什么并且可以接受一些轻微的缺点,那么不错的系统可能相当便宜。具体来说:
- 您在网上找到的所需 RAM 数量被大大夸大了,因为与数十个磁盘相比,RAM 很便宜,而且 RAM 对性能至关重要(因为它用于 ARC 和重复数据删除)。如果您只需要饱和 1 Gbps 以太网链路(~110 MB/s)并且主要有流式工作负载(意味着不断访问磁盘而不是 RAM),则 4 到 8 GB 的内存就足够了(即使 2 GB 也可能仍然有效)。
- 具有 7200 rpm、SAS 连接器、低错误计数和 200 MB/s 吞吐量的企业级磁盘很不错,但实际上也并非必需。两个低速 5200 rpm 消费级驱动器可以毫无问题地使您的以太网饱和。随机读取会更慢,但您也没有数百个想要每秒访问不同文件的客户端。
- LSI 的 8 个 SAS 端口 HBA 是可靠的选择,但价格昂贵。服务器主板上的大多数硬件 SATA 端口都来自 Intel,而且非常可靠。它们还消耗更少的电量。同样,速度在这里并不重要,因为您没有 SSD 或使用多路径或扩展器。
- CPU 功率几乎毫无意义,所有当前的服务器 CPU 都具有足够的功率。一些 30 欧元左右的双核赛扬处理器还支持 ECC 内存,除此之外,您还可以使用低功耗 Atom SoC 或 AMD 的低功耗双核或四核处理器。这些主板通常还具有 6 个 SATA 端口和一个 PCIe 以供以后扩展,并支持 16 到 64 GB 的内存,包括 CPU、内存和电源在内,价格约为 300 欧元。
- 除此之外,戴尔或惠普等大公司还提供一些 SoHo 服务器产品,您可以花 300 欧元(规模经济)购买一台完整的服务器,包括机箱、磁盘和保修。扩展选项有限,但 4 到 6 个磁盘仍然足够了。
- 最后,如果你住在电费便宜的地方,你可以考虑使用二手企业硬件。这些系统速度快、耐用、价格便宜,但也噪音大、耗电大。你必须计算一下这种权衡是否值得。
不过,我认为一旦我需要放回备份,驱动器很可能就会“损坏”,我希望 ZFS 能够处理这个问题。理想情况下,所有三个可移动驱动器在两次驱动器交换之前都应处于镜像配置,这将允许 ZFS 在恢复备份时使用它们来修复旧数据中的问题。
在我看来,您的实时系统(至少具有双向镜像和三个异地磁盘)同时死机的可能性很小。如果其中一个备份仍然可用,那么您只会丢失一周的数据,这要轻得多(并且可以通过仅对新修改的文件进行差异在线备份来缓解)。
但假设它会发生,让我们比较所有可能的备份配置(每次假设您的实时系统有 2 个磁盘作为镜像,并且所有 5 个磁盘大小相同):
3个独立磁盘,使用send/recv将数据同步到3个池
- 这些磁盘无法纠正位错误,但它们可以检测到这些错误,并且您可以从其他磁盘恢复文件
- 由于它们是独立的,您可以将它们保存在三个位置并拥有 3 个不同的备份(关于用户错误、软件错误)
- 处理很简单,因为每个磁盘/池都以相同的方式处理
3 个磁盘作为镜像,使用 send/recv 将数据同步到 1 个池
- 本质上是一个具有非常好的弹性的完整离线系统
- 另一方面,你把所有鸡蛋都放在一个篮子里(盗窃/火灾)
3 个磁盘作为降级镜像,如链接问题中所述
- 请参阅链接答案以了解优缺点
- 您也只有一个版本
因此,总而言之:这取决于什么对您的需求更为重要 - 多个独立的时间点,还是更能抵御故障的单个时间点。
如果您选择第二种解决方案,请务必启用常规数据快照,以防范加密恶意软件等问题(使用多个磁盘可以在一定程度上缓解这种情况)。此外,请务必将三个磁盘分散存放在不同的地方,以防火灾/盗窃/丢失。