知识卡片

冗余设计容易漏掉隐藏的单点故障

专业/工作

内容

系统的可靠性取决于最不可靠的那个组件,而故障单点往往藏在看似已经做了冗余的地方。给磁盘做镜像是常见的可靠性手段,但如果这对镜像磁盘共享同一个磁盘控制器,那么真正决定这套存储可靠性的其实是这个控制器,而不是磁盘本身——控制器一坏,两块镜像盘一起失联,冗余形同虚设。找单点故障不能只看”这个部件有没有备份”,还要往上一层追问”这个部件依赖的东西是不是也有备份”,直到共享资源被暴露出来为止。

参考来源

《软件系统架构:使用视点和视角与利益相关者合作》第27章《可用性和弹性视角》