知识卡片
冗余设计容易漏掉隐藏的单点故障
内容
系统的可靠性取决于最不可靠的那个组件,而故障单点往往藏在看似已经做了冗余的地方。给磁盘做镜像是常见的可靠性手段,但如果这对镜像磁盘共享同一个磁盘控制器,那么真正决定这套存储可靠性的其实是这个控制器,而不是磁盘本身——控制器一坏,两块镜像盘一起失联,冗余形同虚设。找单点故障不能只看”这个部件有没有备份”,还要往上一层追问”这个部件依赖的东西是不是也有备份”,直到共享资源被暴露出来为止。
参考来源
- 位置:第27章《可用性和弹性视角》27.5.1节「故障单点」磁盘镜像示例(源文件:_epub-src/OEBPS/text00456.html附近)
- 结论依据:原文明确指出系统可靠性取决于最差组件,并用磁盘镜像共享同一控制器为例,说明控制器故障会导致两块镜像盘同时失联,此时控制器才是真正的可靠性决定因素,直接支持卡片结论。
- 原始内容:"系统的可靠性取决于可靠性最差的组件。故障单点是架构中的单独元素,如果它出现故障,就会导致整个架构出现故障……在某些镜像配置中,磁盘对(disk pair)会共享通用的控制器(连接磁盘与主计算机总线的设备)。如果控制器出现故障,那么对两块磁盘的访问都会丢失。此时,控制器的可靠性就成为磁盘架构可靠性的关键决定因素。"