ZFS 镜像位于同一驱动器上以实现冗余吗?

ZFS 镜像位于同一驱动器上以实现冗余吗?

我想用作家庭服务器的设备目前只有一个 2.5 英寸内部硬盘驱动器托架,容量为 1TB。实际数据存储 (2x 1TB) 将连接到外部 USB 3.0 端口。

外部驱动器为 3.5 服务器级,据称支持 24/7。内置 2.5 驱动器仅是桌面级的。

在尝试 BTRFS 之后,由于 ZFS 的成熟度更高,我现在正在探索 ZFS 的选择。

第一个想法是仅镜像外部驱动器上的数据并将操作系统(debian 8)安装到内部驱动器。这很容易,但会使操作系统容易受到磁盘故障的影响。

下一个想法是从外部镜像启动,并保留内部驱动器不使用或用于临时、交换、不重要的东西。

下一个想法:使用单个内部驱动器和双外部驱动器创建 3 路镜像,并从镜像启动。这似乎足够便宜,因为我已经拥有了驱动器,并且几乎不需要成本就能获得一定的可靠性和可能的​​读取性能。显然总容量仍然是 1TB。

然而,这种 3 路镜像在可扩展性方面受到选项的限制,因为 ZFS 要求镜像中的所有驱动器大小相同,因此当我想要扩展阵列时,我只能使用我能找到的 2.5 英寸驱动器。 2.5 英寸驱动器似乎只能提供高达 2TB 的容量,而高达 4TB 的 3.5 英寸驱动器似乎已经足够常见。另外,仅使用外部驱动器的 2 路镜像,我以后就可以通过创建带有额外 2 个驱动器的 RAID10 将容量加倍...

另外,我有点不确定在一个池中迁移操作系统和数据是否真的是一个好主意。尽管如此,我仍然不认为在我的设置中最不可靠的驱动器上让操作系统不受保护似乎是一个策略。

这给我留下了一个有点奇怪的选择:将我的操作系统数据镜像到单个内部驱动器上。即在2.5英寸内置硬盘上创建两个分区,并将它们组合成一个镜像。我希望这能给我一种早期警告,以防驱动器即将发生故障,假设驱动器不会消失,而是逐渐发生故障。同时,外部驱动器可以将电影、图片、音乐等与操作系统分开保存。

您会选择哪个选项?最后一个有效还是我的推理完全错误?

答案1

除了解决方案之外,添加一些信息copies=2

然而,这种 3 路镜像在可扩展性方面受到选项的限制,因为 ZFS 要求镜像中的所有驱动器大小相同,因此当我想要扩展阵列时,我只能使用我能找到的 2.5 英寸驱动器。 2.5 英寸驱动器似乎只能提供高达 2TB 的容量,而高达 4TB 的 3.5 英寸驱动器似乎已经足够常见。另外,仅使用外部驱动器的 2 路镜像,我以后就可以通过创建带有额外 2 个驱动器的 RAID10 将容量加倍...

这并不是100%正确的。

  • 镜像 vdev 中的所有设备都需要具有与该 vdev 中最小设备相同或更大的大小。 vdev 的存储容量将恰好等于这个最小设备的大小。因此,对于 1、1.5 和 2 TB 的 3 个磁盘,您的 vdev 大小可以为 1 TB。如果您只有 1.5 和 2 TB 磁盘(大小为 1.5),则以后无法添加较小的 1 TB 磁盘(但您可以随时添加更大的磁盘)。
  • 镜像非常灵活:与 raidz 不同,在 raidz 中您必须将 vdev 的所有磁盘升级到更大的大小,而在镜像中您可以随时删除磁盘。因此,再次以镜像中的 1、1.5 和 2 TB 磁盘为例,您删除前两个磁盘并添加一个新的 2 TB 磁盘。您会失去一些冗余,但不需要恢复整个池或拥有与以前相同数量的磁盘。
  • 查看池级别时,您可以对任何和所有 vdev 大小和类型进行配对,但由于性能和冗余原因通常不建议这样做。但完全可以创建一个包含 3 个 vdev 的池 - 一个 4TB 的磁盘、一个包含 3 个 3TB 磁盘的 raidz3 和一个包含 2 个 2TB 磁盘的镜像,从而产生 4+6+2=12 TB 的可用池空间。当然,如果 4TB 磁盘失效,则无论其他 2 个 vdev 的冗余级别如何,您的所有数据都会丢失...因此不建议这样做。另请注意,ZFS 不会像硬件 raid 控制器那样重新平衡旧的现有数据。

另外,我有点不确定在一个池中迁移操作系统和数据是否真的是一个好主意。尽管如此,我仍然不认为在我的设置中最不可靠的驱动器上让操作系统不受保护似乎是一个策略。

我提出了四种不同的解决方案(按照我在您的情况下如何选择它们的顺序):

  1. 根据您的需要购买 8、16 或 32 GB 的优质 SLC 内存 USB 3.0 棒,并在该棒上安装操作系统(我推荐 OmniOS + napp-it,但您也可以使用 Linux)。它会比硬盘或真正的 SSD 慢一点,但它可以节省您宝贵的插槽。您还可以通过内部排针来删除对棒的访问。然后你可以再买一个完全一样的并镜像启动驱动器。这样,您甚至可以不时进行手动映像备份,或更换硬件,而无需关闭系统或需要支持热插拔的 SATA/SAS 控制器。
  2. 使用完全位于 RAM 中的系统,并将所有配置和数据保存在池本身上。您可以通过便宜的 USB 记忆棒或网络 (PXE) 启动它。我想到了 SmartOS,您可能想阅读一下这里
  3. 根据您的硬件,可能可以在插槽中安装 2 个超薄 2.5 英寸驱动器(可能需要进行一些修改)。存在高度为 7 毫米的 1TB 驱动器和高度为 9 毫米的 2TB 驱动器。当然,您需要 2 个 SATA端口。
  4. 不关心操作系统驱动器。由于 ZFS 拥有池本身中已有的大部分有趣的内容,因此即使没有任何镜子,您也可以完全正常。定期进行清理(它会检测错误,但无法纠正错误),如果清理没有错误,请将重要的系统和配置文件复制到(镜像)数据池上的文件系统。或者,您可以创建文件系统映像并将其存储在数据池中。如果发生磁盘故障,请使用 Live CD 导入数据池并恢复保存的备份。

答案2

我会选择哪个选项?

这完全取决于您的数据的重要性。和什么时候驱动器坏了(即使是您可以购买的最昂贵的企业驱动器也会在某些时候出现故障。毕竟,它只是在旋转生锈。),如果您没有数据备份,您可以在没有数据的情况下生活吗?

您会发现各种建议,但大多数会使用镜像甚至三重镜像进行重新构建,以避免 RAID5 类型配置的奇偶校验重建时间。驱动器变得越来越大,幸运的是它们的成本保持在合理的水平。该镜像还为您提供了更轻松的升级路径 - 因为您需要相同或更大尺寸的驱动器。

常见的做法是尝试不镜像同一制造商生产的两个驱动器。我有一个朋友更进一步,在一段时间(2 年?)后更换了他的驱动器,假设它会出现故障。

我还忘记指出,与在服务器中使用硬件 raid 相比,使用 ZFS 镜像两个系统驱动器的另一个优点是 ZFS 可以检测并修复它遇到的任何可能的错误。

相关内容