回答标题问题,以及 TL;DR

回答标题问题,以及 TL;DR

我正在考虑 FreeNAS;并且想事先确认我对其中存储能做什么/不能做什么的理解是否正确。

  1. 初始构建:1 个存储池,其中 2 个 6TB 驱动器互相镜像;总有效容量为 6TB(忽略四舍五入和间接费用)。

  2. 第一次扩展(2.5 - 3 年后):向服务器添加 2 个 12TB 驱动器。将它们配置为第二个镜像对,并将它们添加到现有存储池;将我的可用存储空间增加到 18TB。

  3. 第二阶段扩展 1(5.5 - 7.5 年后):向服务器添加 2 个 24TB 驱动器。将它们配置为镜像对,并将它们添加到现有存储池;将我的可用存储空间增加到 42TB。

  4. 第二次扩展阶段 2(紧接着阶段 1):将所有数据从 6TB 驱动器中重新平衡,将其从池中移除,然后从服务器中物理移除。剩余可用存储 36TB。

我的想法是:

  • 每隔不到 3 年,所需存储容量就会翻一番,这是我从 2008 年到现在使用 WHS 服务器的经验的延续。

  • 在添加 24 TB 硬盘后,6 TB 硬盘仅能提供总存储量的一小部分(1/7),而且它们已经老化到足以让我担心可靠性问题(浴缸曲线的错误一侧)。如果它们能继续使用,按照我的增长速度,我购买 48TB 硬盘的时间也只会延长半年多一点;所以它们真的不会给我太多时间。

  • 将驱动器数量限制在 4 个以内,这样我就可以为我的 nas 使用紧凑型 mini-ITX 外形尺寸。超过这个数量意味着需要更大、更昂贵的设置。(2 个驱动器放在开放式机箱顶部,电线蜿蜒而出,在过渡期一两天内是可以接受的;但不能长期使用。)

  • 我还假设,对于更大容量的硬盘,其可用性将一如既往,就像我之前大约 3 年的升级一样:1.5-3TB(2012 年)和 3-6TB(现在/不久的将来)。而且,无论新硬盘如何推出,其可靠性都将足够高,可供使用(即永远不会发生 raid 灾难)。

答案1

首先:我不会猜测未来 6 至 7 年的发展。这是关于今天,以及最近的未来。对于总结,请参阅本答案的底部。

目前,ZFS 不允许您从池中删除 vdev。它也没有任何本机“重新平衡”功能(搜索块指针重写bp 重写或者bpo 重写了解更多信息)。允许您降低镜像(但不是 raidzN)vdev 的冗余级别,但这不是您想要的。(在 ZFS 中,当您什么都不说时,条带化就是您所得到的。)

基本上,池可以被认为是由一个或多个存储设备组成的条带集,只有后者(vdev)可以按冗余配置排列。您可以将每个 vdev 配置为任意高级别的冗余,但每一个池中的虚拟设备必须保持在其冗余阈值以上,才能使池完全正常运行。如果虚拟设备发生故障,最好您只会丢失存储在该 vdev 上的数据,并且没有办法主动控制哪些数据存储在哪些 vdev 上(除了将它们放在单独的池中,但这还有其他缺点)。

当您拥有“镜像”池(如第一次扩展后描述的池)时,您实际上拥有的是两个 vdev,每个 vdev 都由一对镜像的物理存储设备组成,其中两个 vdev 被条带化以形成池。双 vdev、两个驱动器每个镜像池可能会因一个驱动器故障而瘫痪,并且镜像集中的另一个驱动器发生不幸的错误,即使另一个镜像集运行正常。在发生此类故障的情况下,无论发生什么情况,您都会丢失一些数据。

提高 ZFS 池容量的正常方法是更换驱动器对于较大的池,允许池重新同步到新驱动器,然后物理移除不再使用的旧驱动器。通常,人们希望zpool replace同时连接旧驱动器和新驱动器,以在整个过程中保持所需的冗余级别。正常的替代方法是添加具有与池中现有 vdev 相同冗余级别的 vdev。再次注意,由于 ZFS 不支持移除条带集的一部分,并且池严格由条带 vdev 组成,因此一旦添加了 vdev,就无法移除它。许多 ZFS 新手都会陷入这个陷阱,如果您不注意使用的确切命令,很容易搞砸。

由于 ZFS 重新同步器的工作原理,重新同步对于所涉及的驱动器来说非常痛苦。虽然传统的 RAID 重新同步器通常主要是顺序的,其中穿插着少量来自用户活动的随机 I/O,但 ZFS 重新同步器几乎完全是随机 I/O,其中穿插着来自用户活动的随机 I/O。镜像集在其整个生命周期中都经历了大致相同的活动;如果一个驱动器处于边缘状态,甚至已经损坏,则另一个驱动器也很可能处于边缘状态。让它连续几天经历重新同步的折磨很容易让它崩溃。(根据个人经验,我估计,要重新同步 6 TB 的数据,您需要大约一周的重新同步过程。即使您转动所有旋钮最多 11基于纯顺序吞吐量(考虑到 ZFS 的磁盘格式和重新同步策略,这是完全不现实的),你正在查看至少大约 17 小时的硬盘极度恐怖。我最好的猜测是,没有办法将 6 TB 的重新镀银时间减少到两倍以下,或者一天半的硬盘彻底滥用时间。)

我还对 2x24TB 甚至 2x12TB 镜像配置抱有非常严重的怀疑,假设这样的驱动器实现;我们目前的驱动器大小已经有点超出物理界限了(没有双关语的意思)。假设驱动器的可靠性,就联合研究机构,与今天的情况类似(每读取一位会出现 10^-14 到 10^-15 个扇区错误,制造商数据表中一直徘徊在这个数字上),从统计上讲,你无法在不遇到至少一个错误的情况下完全读取 12TB 驱动器(12TB 大约为 9×10^13 位,四舍五入为 10^14)。当你将其推向 24TB 驱动器时,从统计上讲,你将达到至少一次完整的读取过程中会出现一到两个全扇区错误(因为您读取的是大约 2*10^14 位)。即使您使用 10^-15 URE 驱动器,也不会给您带来太多好处(您将看到五次读取过程,而不是半次读取过程)。当然,这是统计数据和规范;在实践中,读取错误往往会聚集在一起,驱动器可能会在多次完整读取中提供无故障服务,但在某个时候,它会开始到处抛出错误。

鉴于大多数非服务器硬盘的保修期仅为 1-3 年,我不会指望任何硬盘能继续使用更长时间,而您的计划要求它们至少能使用六年,然后才会被替换。即使是服务器硬盘,通常也只保修五年,尽管通常可以全天候运行五年。我个人的经验是,高端消费级硬盘(如 Seagate 的 Constellation ES 系列)可以提供几乎这种级别的服务,然后才会报废并进入数据天堂。(个人轶事:我使用了 1 TB Constellation ES.2 大约 4 年 9-10 个月后,它开始出现问题,尽管我从未用到它出故障。)

总体而言,许多运行 ZFS 的人在旋转器大小达到 3-4 TB 时会采用双冗余,对于更重要的数据,旋转器大小会更小。这样做有充分的理由:存储设备发生故障并且它发生频率惊人。就 ZFS 而言,如果您想要的不仅仅是将仍可从磁盘读取的原始数据恢复给您,那么您还需要更昂贵的数据恢复服务,而且我不知道有任何数据恢复软件可以远程处理 ZFS 池。如果 ZFS 无法导入您的池,最实际的答案通常是将您未备份的任何数据视为丢失别处

回答标题问题,以及 TL;DR

FreeNAS/ZFS 是否允许我以这种方式管理我的存储?

从严格的技术意义上讲,是的,应该如此。然而,我真的完全不会推荐它。你对硬件的操作极限要求过高让我感到满意,更不用说认可它了。(请注意,无论您询问的是哪种文件系统,这个答案几乎都完全相同。)

相关内容