我们正在重新设计当前的 ZFS 文件服务器。它目前只有一个超过 70TB 的池。
我认为这是一个问题,因为如果池中有足够多的磁盘故障使其无法正常工作,我们必须恢复所有 60TB 当前存在的数据。
关于如何将存储划分为较小的池,以及每个池应该有多大/多小的争论已经兴起。
正如我所看到的,使用“太小”的池的唯一缺点是浪费了大量的磁盘空间。我们正在使用4TB 7500 spinning disks
with 4TB SSD cache disks
。所以,我倾向于 20TB raidz 虚拟磁盘。 这意味着我们可以获得大约 77% 的可用磁盘空间。
问:使池大小过大/过小还有其他优点/缺点吗?
单个大型 ZFS 池的一个显着优势是在单个大型池中空间分配更加灵活。
例如,如果您有三组独立的数据和 60 TB 的磁盘空间(忽略 RAID 损失),如果您创建一个 ZFS 池,则所有三组数据中存储的总数据限制为 60 TB,并且可以拆分三组数据之间的任何方式。(我假设您将在一个大型 ZFS 池中创建单独的 ZFS 数据集 - 每组数据一个。)
但是,如果将存储拆分为三个 20 TB 的池,并在每个池中放置一组数据,总容量仍然限制为 60 TB,但您也将每组数据限制为 20 TB。
这是灵活性的巨大损失。如果您没有正确预测数据增长,您将在池中浪费磁盘,而这些磁盘的增长速度没有您想象的那么快,并且必须为确实增长的池购买额外的磁盘。或者从一个池中删除磁盘,然后通过可能令人讨厌的备份、销毁、还原移动到另一个池。
其次,您确定您的拆分池实际上比单个大型池更可靠吗?大池的另一个优点:所有热备用磁盘都可用于替换池中的任何故障磁盘(假设所有磁盘都相同)。如果您使用多个池,则池 A 中的热备件无法帮助池 B 中的 zdev 在磁盘故障时幸免于难。三个池,每个池都有两个热备件,其可靠性可能不如单个池访问六个热备件。