假设我要构建一个非常大的 1PB zpool。我将有一个主机,里面装有 HBA(可能是 4 端口 LSI SAS 卡),并且我将有大约 7 个 45 驱动器 JBOD 连接到主机。
使用 raidz3 执行此操作的基本方法是创建 21 个不同的 15 驱动器 raidz3 vdev(7 个 JBOD 中的每一个有 3 个 15 驱动器 vdev),然后将所有这 21 个 raidz3 vdev 组成一个池。
这会很有效。
这里的问题是,如果您因任何原因丢失了一个 vdev,那么您将丢失整个池。这意味着您绝对不会丢失整个 JBOD,因为这意味着丢失了 3 个 vdev。但是,在邮件列表主题中,有人隐晦地提到了一种组织磁盘的方法,这样您确实可能会丢失整个 JBOD。他们说:
“使用 Dell R720 主机,加上一组 Dell MD1200 JBOD,双路径连接到几个 LSI SAS 交换机...我们进行了三重奇偶校验,并且我们的 vdev 成员资格设置为我们可以丢失最多三个 JBOD,并且仍然可以正常运行(每个 JBOD 一个 vdev 成员磁盘)。”
...我不太清楚他们在这里说了什么。我思考他们的意思是,您实际上没有使用 vdev(所有连续的 15 个(或 12 个,或其他)磁盘在一个 HBA 上),而是将 vdev 的奇偶校验驱动器分成其他 JBOD,这样您可能会丢失任何 jbod,而您仍然有 N-3 个驱动器在其他地方可以覆盖该 vdev...
或者其他的东西...
两个问题:
有人知道这个菜谱是什么样的吗
它是否足够复杂以至于您真的需要 SAS 交换机,而我无法仅使用复杂的 HBA<-->JBD 布线来设置它?
谢谢。
答案1
您在邮件列表中读到的有关 JBOD 弹性的解释可能类似于一组 RAIDZ3 vdev 和附件...比如每个 RAIDZ3 有 8 个磁盘(5+3),有 5 个(或 8 个?)附件,这样 vdev 由每个附件中的单个磁盘组成。
但实际上,如果没有一定程度的高可用性,我不会做 1PB 的存储……
以下是适合 HA 集群的几个参考设计,每个头节点都有双 HBA 和冗余级联 SAS 电缆。如果我设计这个,我会计划使用 ZFS镜子部署而不是RAIDZ(1/2/3)。
我发现 RAIDZ 阵列的局限性在大多数生产情况下都是一个问题;缺乏可扩展性,表现不佳,复杂的规划和更多故障恢复困难。
我将使用 ZFS 镜像和尽可能大的机箱(例如60 盘或者70 盘单位)、SAS 磁盘并避免使用 Supermicro 设备;)
除此之外,高品质 JBOD 单元非常有弹性,因为它们具有内部冗余、双路径背板和中板组件,通常不会发生故障。大多数组件都是热插拔的。我不太关心机箱,而更关心布线、控制器和池设计。
如果你必须使用 RAIDZ(1/2/3),根据需要进行配置,并在每个 JBOD 中保留备用磁盘。也将它们配置为全局备用磁盘。