多年来,我们一直在 Dell PowerEdge 上的单个硬件 RAID 上运行 ZFS。我知道大多数人都反对这样做,但 ZFS 的快照/克隆、压缩和灵活分区对我们非常有用。每当驱动器坏掉时,就会派遣 Dell 技术人员(服务器在另一个州),他会确认驱动器有黄色指示灯,然后更换它。
现在我们想利用 ZFS 的 L2ARC/ZIL 缓存,我们正在认真考虑在裸盘上运行 ZFS。当前的戴尔 RAID 控制器 (PERC H730/H330) 确实支持直通。我剩下的问题是:
如果驱动器在 ZFS 中发生故障,前面板上是否会显示琥珀色灯?这很重要,因为派出的戴尔技术人员可能需要确认驱动器确实有故障。否则我们可能会遇到戴尔问题。
有人在 FreeBSD 根目录上运行 ZFS 吗?它的质量符合生产要求吗?有已知问题吗?
答案1
您可以使用 LSI MegaCLI 实用程序控制 PERC H730 和 H330,因为这两张卡都是带有 Dell PERC 标志的 LSI 卡。
有一篇关于如何做到这一点的优秀文章和教程https://calomel.org/megacli_lsi_commands.html
我知道linux系统有一个 ZFS 事件守护进程 (ZED),您可以使用它在某些事件上引起特定的事情发生(例如,当驱动器损坏时,使用 MegaCLI 打开特定插槽的琥珀色灯)。
据我所知,FreeBSD 有一个 ZFSd,它可以做类似的事情,但我不是 FreeBSD 专家,所以除了说 FreeBSD 论坛充满了有用的建议和乐于助人的人之外,无法向您提供更多信息。
我怀疑这样做最困难的部分是弄清楚给定驱动器的 MegaCLI“插槽”编号是什么,因为 ZFS 仅知道设备节点/名称,并且没有特定的 LSI 或 PERC 信息。如果设备节点名称与卡和插槽号直接相关,则可能是一个简单的转换......否则,可能会非常困难。
即使您必须在驱动器损坏时手动使用 MegaCLI 打开外壳中的琥珀色指示灯以满足戴尔技术人员的程序期望,您仍然最好提供 ZFS 原始驱动器而不是将 ZFS 覆盖在硬件 raid 之上 - 这样做会失去 ZFS 的大多数重要功能,而它们是最重要的功能(例如,数据的错误检测和更正)。
答案2
DELL PERC H330 或 H730 不适合 FreeBSD 中的 ZFS。人们对这些卡的“直通”模式存在很多误解,它们根本没有按照 FreeBSD 应有的方式实现该模式。它在 Windows 上确实有效,但在 FreeBSD 上却不行。
例如,如果你尝试在 FreeBSD 10.2 上使用这些控制器,它将加载多边金融机构(4)驱动程序实际上并不是为 ZFS 提供原始磁盘的支持方式。例如:使用此驱动程序,操作系统将无法获得 SMART 信息,这会损害阵列的可靠性。
有工作耐甲氧西林可待因病毒(4)驱动程序,但此驱动程序目前似乎不可靠,无法用于任何事情。磁盘丢失在存储系统上是不可行的。这里有一些关于此行为的报告:https://bugs.freenas.org/issues/11764
因此,我目前的建议是坚持使用您的设置。我知道,这很糟糕。但这是目前 ZFS 的最佳选择。请记住,ZFS 对您提供给它的硬件非常敏感。因此,它会期望合适的硬件能够正常工作。
如果您真的想充分利用 ZFS 的强大功能,请购买合适的 HBA 卡(或可以使用 IT - 启动器-目标 - 固件刷新的 RAID 控制器),就可以开始了。
尽管 PERC H330 基于 LSI/Avago SAS3008 芯片组,而且基本上是 LSI/Avaga 9300-8i HBA 的克隆,但无法将 H330 交叉刷新到 IT 模式,并且库存 DELL 固件没有为 FreeBSD 实现正确的(需要的)IT 模式。
此刻我遇到了类似的问题。我不关心系统上的 LED 灯或其他东西,但我只能使用 PowerEdge R730 和一台 H330,无法在机器上正确运行 ZFS 存储。
答案3
我已经想出了怎么做。真希望我能早点想到这么做。
我将 DELL H330 RAID 卡刷入 HBA IT 固件。