知识卡片

故障域隔离的调度原则

普通读书笔记卡 · 1558

内容

集群调度系统为一个任务的多个冗余实例分配位置时不会全部塞进同一机柜,因为机柜交换机一旦故障 就成为该任务的单点故障源,冗余实例再多也失去意义。这揭示一个通用原则:设计冗余要问”这些副本 是否共享了某个未被考虑到的底层依赖”,副本数量不能替代故障域的分散。发散:同一思路适用于数据库 多活部署(避免主备共享同一交换机/机房)、代码评审人选择(避免评审人都依赖同一份文档)等场景。

参考来源

- 位置:《SRE:Google运维解密》第2章《Google 生产环境:SRE视角》(源文件:_epub-src/OEBPS/Text/0007_0002.xhtml) - 结论依据:原文说明Borg"还关注物理服务器的故障域属性……不会将某个任务的全部实例都运行在某一个机柜上。因为这样一来,机柜交换机将成为整个任务的单点故障源",因此可推出冗余设计需以故障域隔离而非单纯副本数量为标准。 - 原始内容:同时Borg还关注物理服务器的故障域(failure domain)属性。例如,Borg 不会将某个任务的全部实例都运行在某一个机柜上。因为这样一来,机柜交换机将成为整个任务的单点故障源。