![例子](https://linux22.com/image/700467/%E4%BE%8B%E5%AD%90.png)
我目前正在构建一个新的存储服务器,用于虚拟机、文件和备份。操作系统是 FreeNAS,它使用 ZFS 作为软件 RAID。
我的问题是,我需要选择硬盘,而且我已经看过消费者硬盘和企业硬盘,但我面临一个尚未解答的问题,我无法找到明确的答案。
我可以使用不支持 TLER/ERC/CCTL 的消费级硬盘和 ZFS(软件 RAID),而不会在以后遇到麻烦,还是我需要使用支持 TLER/ERC/CCTL 的企业级硬盘?
对此有很多不同的看法,有人说你应该使用它,有人说你不应该。我知道有几个依赖于软件 RAID 的操作系统,它们有自己的错误更正超时,因此不关心是否有 TLER / ERC / CCTL。我知道,在处理硬件 RAID 时,你需要使用 TLER / ERC / CCTL。
我真的希望有人能解答我的问题。
谢谢。
答案1
我可以使用不支持 TLER/ERC/CCTL 的消费级硬盘和 ZFS(软件 RAID),而不会在以后遇到麻烦,还是我需要使用支持 TLER/ERC/CCTL 的企业级硬盘?
想象一下,您的每个驱动器都是一个黑匣子,具有某些功能、使用寿命等。它们都在存储阵列内独立工作。因此,您必须单独查看每个驱动器,以了解在不同情况下会发生什么。
例子
对于这个问题,假设您有一个由 2 个镜像驱动器 A 和 B 组成的池。可能的组合是:
- A 和 B 均有 TLER
- A 有,B 没有
- A 没有,但 B 有
- A 和 B 没有
如果所有磁盘都运行正常,则没有问题。
一个错误:
如果磁盘 A 在尝试读取某个块时遇到错误,则每种可能的情况如下:
- 系统向磁盘请求块。磁盘会一次又一次地尝试找到它,大约 7 到 9 秒后(无论 TLER 超时是多少),控制器会从阵列中删除磁盘。系统会注意到一个磁盘丢失,并执行您配置的任何操作(发出电子邮件警报、开始重新同步热备用、不执行任何操作并继续降级,...)
- 与 1 相同。
- 系统向磁盘请求块。磁盘会反复尝试查找,直到达到其自身的超时时间或找到块为止。此超时时间可能为几分钟,并且可能因型号和制造商的不同而不同。如果可以检索到块,则可以正常读取;如果失败,则返回块本身的错误消息。
- 与 3 相同。
两个错误 (每个磁盘一个):
这种情况非常罕见,但理论上是可能的。两个磁盘在完全相同的块上都遇到错误:
- 两个磁盘都将被删除,并且您的池将变得不可用。
- 与上面的 3 相同。
- 与上面的 3 相同。
- 与上面的 3 相同。
性能与可靠性
正如您上面看到的,您必须根据您的目标和池布局做出选择。
- 如果您始终需要最短的响应时间并且无法接受较长的阻塞延迟,请使用 TLER 磁盘。缺点是您必须潜在地配置额外的磁盘(Z2 而不是 Z1、Z3 而不是 Z2、3 个镜像而不是 2 个镜像)或热备用才能最终实现相同的平均池运行状况。此外,您还必须为可能较长的重建时间做好准备,这可能会对您的整体性能产生负面影响。
- 如果预算或空间有限,并且如果保留磁盘,延迟是可以接受的,则使用非 TLER 磁盘。由于 ZFS 已经帮助您对受影响的块进行自我修复,因此您不需要 TLER 最初的设想(控制器必须丢弃磁盘,以便可以启动自我修复)
- 将磁盘超时设置为您的应用程序/架构可以轻松处理的值。这样,您可以根据需要拥有不掉线的企业磁盘或有掉线的消费者磁盘。并非所有磁盘都是可修改的,因此在购买前请先在线检查。