Mellanox Infiniband作为目前高性能计算(HPC)行业高速互联网络最主流的厂商和解决方案,在HPC领域应用极为广泛,不论从规模的可扩展性,还是不同性能要求的匹配性上,都有着较完善的解决方案。
一旦你选定了要使用Infiniband作为HPC集群的内部高速互联网络,Mellanox提供了一个简易的配置工具,帮助你快速形成Infiniband的拓扑结构:
Mellanox Infiniband Topology Generator
下面我们就以这个工具为核心,展开讲一下Infiniband的架构设计。
(根据个人经验和理解整理,如有错误,欢迎讨论指正!)
Fat Tree Topology
Fat Tree的优势在于架构灵活,可以平衡性能和成本因素。
常见的设计可首先细分为无阻塞网络(non-blocking network)和阻塞网络(blocking network)。
1. 无阻塞网络
无阻塞网络拓扑最大的特点就是流量平衡,即IB交换机上联和下联的端口数相同。下图是一个典型的无阻塞IB网络拓扑。其中
- 每台IB交换机36端口;
- 一层(L1,类似接入层)每台交换机18个端口下联到节点,18个端口上联到二层;
- 二层(L2,类似汇聚层)36个端口均用来下联L1交换机;
- L1 18个端口中,按9+9分别上联到两台L2交换机;
- L2 36个端口中,相同的每个L1交换机9条上联占满36端口;
- 总体上,这个架构可支持:4台L1 * 18端口/台 = 72台设备IB接入
2. 阻塞网络
设想,当你有小于36台设备需要互联,你可以使用一台独立的36端口IB交换机即可;当你的互联设备超过了36台(比如在36~72之间),若仍需要实现non-blocking,你就需要使用上面图片里的方案,这样你需要采购的36端口交换机就由1台直接变为了6台(擦汗…)。
(当然你也可以选择端口更多的IB交换机,但这就涉及到了Mellanox产品线的问题,我们这里暂不考虑)
因此,对于小/中型规模HPC集群,考虑到无阻塞网络的性价比较低(成本高),通常我们会考虑阻塞网络(blocking network)。这里我们举两个栗子:
栗子1:48节点方案
- 当节点数在36~48节点之间
- 使用2台36端口IB交换机
- 每台交换机24端口下联到节点,两台之间互联12端口
- 最多支持2 * 24 = 48端口设备互联
栗子2:72节点方案
- 当节点数在48~72节点之间
- 使用5台36端口IB交换机
- 每台交换机24端口下联到节点,12端口上联到两台L2交换机
- 不同的是,12条上联先分别连到2台L2交换机(每台6条)
- 最多支持3 * 24 = 72端口设备互联
- 同时,两台L2 IB交换机可以起到高可用(HA)的作用
那么问题来了,既然blocking和non-blocking存在性能差异,那性能到底能差多少,应该怎么选?
答案你可能会似曾相识:看具体应用。
确实,网络拓扑由很多选择,non-blocking,blocking(75%,50%…),但具体选哪种还是取决于上层应用。对于网络带宽和网络延时很敏感的应用,non-blocking当然是优先的选择;但是,当考虑到性价比,并且上层多种应用特性不一的情况下,blocking架构还是很推荐的,所以还要取决于应用的benchmark和架构师的经验啦😏!
好了,今天就写这么多,下次我们重点来说下这个配置工具中不同的网络速率(FDR,EDR,HDR,etc.)