如何完全评估RAIDconfiguration?
拉驱动器是一回事,但有更多的工具和技术?
我已经考虑通过运行的驱动器(粉末驱动的钉枪)来查看会发生什么,或模拟各种电气exception(电缆短路/开路,功率过载和浪涌等)。
应该testing什么,以及如何?
-亚当
我认为你的testing应该涵盖你计划的合理情况。 如果你试图在灌木丛中build立一个服务器,那么电气波动是合理的testing套件。 如果您在数据中心,服务协议可能涵盖权力。
如果你认为一个机架内的驱动器爆炸是合理的 – 然后testing它。 也许你正在巴格达的一个指挥中心里build立一个服务器。 但是再一次,如果你在华盛顿州的可能性较小。
作为一般规则,您的testing应涵盖所有预期的情况:
还有合理的极端情况。
而且最重要的是 – RAID不能防止驱动器在数据上悄悄地破坏! 所以确保你正在做哈希和文件validation!
如果您关心整体解决scheme的最终可靠性,那么testing一个不合适的驱动器是非常重要的。 每一个失败的RAID解决scheme(意味着冗余不能防止发生故障的驱动器)我所看到的是由于未能testing实际的驱动器故障。 正常的testing是拉驱动器,宣称驱动器故障已经过testing,然后继续。
最好的解决scheme可能是收集边缘驱动器,或修改固件,导致不一致的响应。 只有存储供应商相当有可能具备这种能力。
我喜欢通过一个正在运行的驱动器钉钉子的想法,但是在相邻的驱动器上的力量可能会导致一个不切实际的灾难性的失败。 或者,驱动器的完全故障可能会导致不切实际的干净故障。
如果我被允许对RAID进行合法的testing,我会用不同的方式摧毁一些驱动器。 将电线连接到驱动器电路板上的随机组件,然后将其油炸或短路。 事实上,如果shell的几何形状使得这不太可能破坏邻近的驱动器,则通过驱动器钉住。 (我认为由此产生的arrays的其余部分是一个合理的testing)。 拦截驱动器的数据path,并返回每个可能的错误,无意义的结果或延迟随机时间的正确结果。
有时驱动器会返回错误的块。 预计驱动器会在其连接上导致任何可能的电气问题。
我的经验是,没有人考虑存储购买想要做真正的testing。 这可能会暴露真正的问题。 如果有人testing存储可靠性,我会非常感兴趣,当然他们不会公布结果。