一个优秀的IT架构一定有一个优秀的网络基础。网络在私有云,尤其是桌面云中的影响有时比存储更加直接。在搭建私有云的过程中,更多的项目是在已有IT架构的基础上进行延展,而不是厂商独立的架构。所以对整个用户端网络框架有个清晰认识就显得很重要。在我们接触的项目中,有比较多的问题是网络不稳定、框架不合理造成的。虽然我们在项目中极少拥有对用户网络改造的权力,但是也要在网络上下功夫认真规划,并在关键结点与客户及时沟通,尽量减少网络因素带来的诸多“麻烦事”。
图2-6是以业务为核心的通用私有云架构,图2-7则是从计算节点出发网络视图,它们的共同点都是对网络进行了较为严格的区分,但划分标准不同,读者在很多云平台中都会看到类似架构。其中会涉及虚拟化网络基础与软件定义网络(SDN)等知识点,具体内容读者可阅读本书的第6章。
图2-6 以业务为核心的通用私有云架构
图2-7 以计算节点为中心的网络架构
对于构建一个稳定的网络基础来说,传统OSI七层模型很有参考价值,而侧重协议实现的TCP/IP的四层模型也很实用,在此我们使用它们的混合模型来分层讨论。图2-8是OSI网络模型与TCP/IP模型。
图2-8 OSI模型与TCP/IP模型
传统OSI在服务、接口、协议有所侧重,但是它由于历史原因以及实现等问题,现在仅仅被人奉为“经典”,具有的参考价值大于实用价值。而TCP/IP的实现由于其模型简单,很大程度上促进了互联网时代的来临,但是使用它来描述如蓝牙网络,基本上是不可能的了。而混合五层模型既吸收了它们的优点,又在一定程度上回避了它们的缺点。图2-9即是混合网络模型。
同存储资源一样,我们在构建私有云网络基础的时候也要关注其稳定、扩展、冗余的能力,同时注意成本,以下笔者将分别对这5层进行介绍。
图2-9 OSI与TCP/IP混合模型
在物理层,我们需要做出的选择有传输介质和有线/无线传输方式。
表2-1 网络线材分类
在后端资源链路中,一般有计算到存储之间,计算到网络之间,存储到存储之间以及计算、网络、存储的内部通信链路。其数据量或高或低,对于私有云而言可以采取后端全万兆的链路以减少后端对整个平台产生的短板效应。比如对于私有云而言批量启动是会经常出现的,所以至少计算节点与存储的链路一定要有所保证,从而防止网络带宽成为存储能力的制约影响用户体验。
服务器与前端的链路数据根据私有云业务而异,主要是控制台画面传输、交互(键鼠输入、外设重定向数据、语音等)、文件传输(云存储)等。一般到客户端汇聚层的链路使用千兆网络线,到客户端使用千兆/百兆网络。
数据链路层与网络层
这两层中我们要关注的部分主要是不同层次的交换机/路由配置、IP、VLAN的划分,除非对于完全自主搭建网络的厂商,否则我们只要了解其基本拓扑和路由配置即可。(www.xing528.com)
目前比较主流的网络规划为环网+星形拓扑,并且按照核心层、汇聚层和接入层区分职责,如图2-10所示。
图2-10 星形+环形网络拓扑
其中有几点需要注意:
●组网的有多种,不同规模可以使用不同的混合拓扑;
●在私有云的架构中,网络标签更偏向以功能逻辑而不是以地理位置区分。这点在开源云实现中体现的很明显,比如Mirantis OpenStack的网络规划以及oVirt的逻辑网络;
●由于后端资源链路较多,一般情况下会使用VLAN(tagged/untagged)来进行隔离;
●非核心资源尽量采用DNS+主机名的方式进行搭建,防止以后IP变化带来的维护困难;
●Bonding(链路聚合)是比较常用的增加网络冗余和带宽的措施,但要注意交换机关于bonding负载均衡的策略,防止bonding无实际效果,比如IP、MAC、TCP Port的组合方式;
●交换机尽量采购同一品牌,以免增加运维人员负担。
传输层与应用层
我们需要保持网络稳定高效主要是为了这两层,因为它们对用户接入、桌面协议、业务网络、资源网络、控制协议等有直接影响。
其中,从用户端到云平台需要保持良好通信的有http(s)、spice/vnc等,服务器之间则有ssh、sql、telnet、smtp、pop等之间影响业务等应用层协议。
而在传输层中,经常出现的问题有网络拥堵、过载、超时、延迟等问题。比如当一端等交换机或者设备达不到处理大量报文所需的计算能力时,就会导致丢包或者多次重发的现象;当有错误或者恶意报文进行广播时,局域网所有机器都会返回错误包而导致广播风暴;当有大量机器重启从DHCP服务器获取IP时,也会对服务器造成很大负载;报文的超时时间对应用的影响也很大,过低会导致在网络繁忙时大量应用超时,过高会引起传输效率变低从而影响视频等实时应用卡顿。
在设计时我们需要注意以下几点:
首先,终端/服务器的带宽要尽量保证不高于内部直接连接的网络带宽,否则当网络端(有意/无意/恶意)发送大量报文时,会造成服务器网卡处理能力的大幅下降,影响其上的应用性能。
其次,适量增加封包大小,减少数据发送次数,从而降低网卡负担。
其三,适量调整报文超时时间,减少网络繁忙时产生拥堵。
其四,在可以压缩传输层协议头或数据的条件下优先压缩协议头,从而减少报文传输次数降低流量。
总之,私有云网络设计与传统网络架构设计相比,需要考虑的变量更多。尤其近些年软件定义网络的发展,以及OpenStack、VMWare中网络虚拟化的推进,客户对厂商的综合素质要求更高了。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。