我正在构建一个供家庭/个人使用的 NAS,它将在 SATA SSD 阵列上使用 ZFS(可能运行 FreeNAS)。在使用方面,我预计系统会经常处于“空闲”状态(不包括 ZFS 后台内容,例如清理),并且我预计主要性能瓶颈是 1Gb 以太网。
我对 ZIL 有点熟悉,但对 SLOG/辅助 ZIL 存储设备的使用感到困惑。
该系统将使用 UPS,因此它可能更有可能遇到类似内核恐慌的情况,而不是系统突然断电。无论如何,只要它不吃掉我的池,我就不会特别担心灾难性事件可能导致最后几分钟的数据丢失。(请记住,这是一个家庭系统,而不是关键任务系统。)
特别是,是否可以在 RAM 中仅包含主 ZIL(这会产生什么“安全”影响)?如果我没有专用的 SLOG 设备,这是否意味着我必须使用 SLOG 的存储池,这会产生什么实际影响(性能和磨损)?如果我确实需要专用设备,高性能 NVMe SSD(例如中等尺寸的 WD Black SN750)是否足够,还是我真的需要花费 250 美元购买 Intel 900p?(见更新)
我能找到的大部分内容都说“是的,那 250 900 便士绝对至关重要”,但并没有真正解释如果我忽略它我会遇到什么情况。
因此,我读到的大部分内容是:a) 将 ZIL 放在主池上是可怕的(性能减半,对于 SSD 来说更糟糕,写入次数加倍),b) “需要”ZIL 的主要原因是以减少同步写入的延迟。鉴于我的池是全 SSD(虽然是 SATA,但我的用户最多都受到 1Gb LAN 的瓶颈),看来我有三个选择:
就选项#2而言,我见过一些帖子,人们注意到“数据完整性就是数据完整性”……但实际上,事实并非如此。当我很有可能以某种方式手动恢复时,丢失我刚刚尝试写入的任何文件(并且可能立即知道出了问题)与丢失几个月或几年前创建的文件之间存在显着差异。我可以看到,一般来说,这可能会发生任何一种情况,但就我而言,我更关心档案的完整性。
首先要做的事情是:很棒的帖子,写得很好,研究得很透彻!很多答案你自己已经找到了,所以我只是补充一些想法。
我的建议是:尝试一下。购买最小可行的配置(只是你的池磁盘)并设置它,然后使用它并检查它是否足够快(我猜如果你不直接从它提供虚拟机服务,那就是“是”)。
如果没有,则添加一个单独的设备。您可以添加和删除任意数量的镜像(镜像),而不会破坏池。
您还应该评估为什么需要特定的全 SSD 设计。每 GB 的成本会更高,并且很可能会浪费您的需求(有关详细信息,请参阅此答案的最后一段)。另一方面,如果您的目标是小尺寸的安静和简单,那么这将是一个可行的替代方案,在这种情况下,我个人不会因为成本而投资单独的日志设备(无论如何性能都会很好)。
添加一个 SLOG。我的理解是,任何非 PLP 设备都比无用更糟糕(至少比其他两个选项更糟糕),但理论上我可以使用 Intel 900p,这似乎是最便宜的选择。
这取决于设备和具体情况...一般来说,建议使用 PLP,因为在 5000 美元的存储阵列上,选择劣质 SSD 时节省 50 美元是不划算的,因为发生某些事情的可能性很小,这是不值得的错误的。特别是当您不需要大型 SSD 时,几 GB 就足够了。但是,如果一个磁盘发生故障而另一个磁盘没有发生故障,或者在同一扇区上没有发生故障(取决于磁盘/设备上的控制器),那么就没有问题。事实是,没有人可以保证这一点,因此您尝试添加安全措施并降低风险。
您可以将其与泳池设计进行比较。单个磁盘很便宜,但如果出现问题,你就完蛋了。现在你可以购买一个更好的磁盘,或者两个便宜的磁盘,或者两个更好的磁盘,或者三个便宜的磁盘等等......最后你必须计算你的风险并与你的预算进行平衡。在大多数情况下,极端情况是不好的(单个便宜的磁盘与可用的最佳磁盘的 32 路镜像),因此通常建议采用健康的中间立场(对于小型磁盘来说是双向镜像,对于大型磁盘来说是三向镜像)部署)。
您的 SLOG 设备只需要三件事:
比最弱的池磁盘具有更好的持续 IOPS。如果 SLOG 设备较慢,您最好只使用没有镜像的池,甚至将其作为另一个镜像添加到池中(较慢,但更安全)。
高耐写能力。如果较低,则必须尽快更换。在您的情况下,这应该不重要,因为无论哪种方式写入量都会非常低,并且可以通过在几天后添加第二个磁盘来错开更换。
可靠性,决定了发生严重故障的可能性。可以通过使用多个磁盘(镜像)、使用 PLP、使用优质磁盘(或同时使用所有三个磁盘,参见上文)来改进。同样,这取决于池磁盘的速度(随机 IOPS)。
仅使用 RAM ZIL。(基本上,关于同步的谎言。)虽然这“听起来”很糟糕,但 AFAIU 它不会影响我的池的完整性,并且对于我的使用来说,我不确定它是否值得额外的费用。任何类型的故障都会有丢失数据的风险,只是因为 NAS 处于离线状态。我很可能会立即知道出现了问题,并且能够采取某种补救措施(例如暂时保存到其他位置,直到我可以恢复 NAS)。
仅当您在其上运行一个专门的应用程序并且知道它不能完全信任存储时,我才会执行此操作 - 例如在多镜像(其他存储节点)设置中,定期同步检测到已关闭的节点中的任何错误暂时地。
如果您只有一台机器,您将获得廉价的性能,同时风险也会大大增加。一次不正常的意外关机(按下按钮或孩子拉扯 UPS 电缆等)可能会带来风险,并且肯定会影响您的安心。
不要使用 ZIL;强制所有写入直接写入磁盘。虽然这对于旋转 rust 来说是一个性能杀手,但目前还不清楚 ZIL 在全 SSD 系统上是否有用,因为使其在旋转 rust 中有用的主要问题(较慢的驱动器、寻道延迟)并不适用。
它只影响那些特殊同步随机写入的性能...您没有说明机器的用途,但如果我想象典型的家庭使用,那么它将是:
即使普通磁盘也可以轻松满足这些限制(作为镜像),但 SSD 却可以轻松突破它。您的机器大部分时间都会闲置,您的钱最好投资于更多存储或更好的异地备份系统。
| 归档时间: |
|
| 查看次数: |
7669 次 |
| 最近记录: |