1、 简介
机架感知在大型分布式存储系统中非常实用,可以有效保证数据的高可用,同时提升集群稳定性。在HDFS中,也实现了类似Topology Awareness的机制,只不过是采用软件的方式模拟。
2、机架感知存在的意义
分布式存储系统的一个特殊之处在于其通常包含非常多的机器。Client在借助网络通道访问集群时,仍然会受到比如交换机网口的限制,通常大型的分布式集群都会跨好几个机架,甚至多数据中心,由这些机器共同组织一个分布式的集群。一个典型的集群物理节点部署结构如上图。
搭建大型集群时,需要考虑是否跨IDC(数据中心),单IDC可能由多机房组成,为便于管理机器和网络,机房中的机器之间会经过交换机,这里的每一级之间都是通过网络互通。从上到下,每层的网络带宽总和依次变小;同时网络包经过的层级越多,端到端的时延就越长。
对于分布式存储系统而言,有两个不容忽视的问题:
- 读写访问需要尽可能稳定且高效,也就是两个节点间交互链路不建议过长。
- 数据副本所在节点区域不建议过近,有利于提高容错能力。上面的两点有着先天的矛盾,为了平衡系统运行,一个有效的方法就是结合Topology Awareness(机架感知)。
将上面的图片抽象为下图。