GIS+=地理信息+云计算技术——私有云架构设计(2)网络资源规划
--------------------------------------------------------------------------------------
Blog: http://blog.csdn.net/chinagissoft
QQ群:16403743
宗旨:专注于"GIS+"前沿技术的研究与交流。将云计算技术、大数据技术、容器技术、物联网与GIS进行深度融合。探讨"GIS+"技术和行业解决方式
转载说明:文章同意转载,但必须以链接方式注明源地址。否则追究法律责任!
--------------------------------------------------------------------------------------
题记
对于OpenStack私有云平台技术来说,技术难度最大的应该归属于网络技术部分,特别是软件定义网络(SDN)技术的应用,怎么使用软件技术实现复杂多变的硬件网络。传统的软件开发者(非运维经验人员)来理解七层网络理论。网桥、虚拟路由器、网络抓包等等,可是本文仅仅是介绍一下我们在私有云架构设计方面须要了解基础的网络知识而已。
网卡速度
普通情况下,对于私有云平台搭建过程中,都须要至少万兆网络来支撑网络环境。普通情况下,整个私有云可能由多台计算server(宿主机)来支持,在该云平台创建了N个虚拟机。那么这些虚拟机的网络传输都是通过宿主机的物理网卡利用网络虚拟化的技术实现,假设宿主机物理网卡的速度太小。直接影响虚拟机之间的数据通讯。
还有一方面。在云环境下还常常会提到动态迁移的特性。比如宿主机1上的VM1,利用块迁移的方式迁移到宿主机2。这里面也须要通过宿主机的物理网卡来传输。一般虚拟机实例大小1-5GB不等,并且对于不同操作系统。不同应用大小可能更大。所以假设网络速度较低,也会影响动态迁移的效率。
那么既然了解我们至少须要万兆网络需求。我们还须要了解一下一个基本知识,就是所谓的万兆网络。也就是10000/Mbps,这里面并非每秒传输10GB数据。 Mbps实际上是一个带宽单位,而非速度单位。在“Mbps”单位中的“b”是指“Bit(位)”。而真正的速度单位应为MB/s,当中的“B”是指“Byte(字节)”。
由于数据是按字节传输的。而并非按位。就因这两个大、小写不同的“B”和“b”,使得这两个单位不仅不能等同,并且相差甚远。当然它们之间也存在着较大关联的,那就是1MB/s=8Mbps,能够这么理解,那就是port带宽是port的理论最大传输速度,实际中的速度要远小于带宽值(通常为60~80%之间)。
网卡数量
普通情况下,OpenStack的搭建包含控制节点、网络节点、计算节点三种角色。部署方式比較多样,
我们能够使用一台serverAll in One的方式,
也能够使用两台服务(一个控制节点+一个网络(计算)节点)。
可是官方文档介绍的是使用了三台server(控制节点+网络节点+计算节点)
当然。对于OpenStack来说。至少须要三种网络:
- 管理网络:一般用户OpenStack各个组件的API调用,给租户和运维人员用于訪问云的REST 应用程序接口。这也是通常说的公有网络。
- 服务网络(数据网络):虚拟机之间的数据交互网络。
- 外部网络:为应用程序和消费者訪问物理网络,也为终于用户訪问云中执行的应用程序提供网络。
此网络是隔离可以訪问云API的网络。并不可以直接和云中的硬件资源通信。计算资源节点须要基于此网段通信。以及不论什么的网络网关服务将同意应用程序的数据可通过物理网络到云的外部。
当然,还包含存储网络等,假设宿主机网卡较多,能够详细再进行网络拆分,也能够设置多个外部网络,比如超图研究院因为研发需求。须要有研发内网,当然也须要普通网络,就能够设置两个外部网络实现这样的需求。
网络模式
在OpenStack的虚拟网络设置能够实现Flat、FlatDHCP、VLAN、GRE、VXLAN等多种网络模式。
普通情况下。Flat和FlatDHCP设置比較简单,也便于理解,也就是整个云平台包括的虚拟机仅仅支持一个虚拟局域网。都是扁平化的网络模式,简单说就是全部虚拟机都在同一个网段中。
另一种更加高级的配置方式,就是使用VLAN、GRE、VXLAN的方式实现租户隔离的网络配置,简单来说,假设把超图研究院云平台当作一个大的网络环境,那么超图研究院分为研发内网和研发外网,研发内网又分为iObjects团队,iPortal团队,iServer团队等,所以我们须要设置两个外部网络,一个为研发内网服务,一个为研发外网服务。并且我们针对研发内网的虚拟网络里面,创建iObjects、iPortal、iServer三个租户。三个租户能够设置内部网络,并且三个租户直接能够相互隔离,当然也能够使用浮动IP的方式实现联通,这在时间应用过程中也十分常见!
只是一般在私有云建设中,非常少使用VXLAN,一般VLAN已经能够满足详细需求了。当然VXLAN对网络技术要求会更高,并且在OpenStack的新版本号对VXLAN的支持也更加的成熟。
OpenStack网络技术选择
在作为OpenStack计算组件的部分遗留网络(nova-network)和OpenStack网络(neutron)之间作出选择,会极大的影响到云网络基础设施的架构和设计。
=============================nova-network=======================
遗留的网络服务(nova-network)主要是一个二层的网络服务。有两种模式的功能实现。在遗留网络中,两种模式的差别是它们使用VLAN的方式不同。当使用遗留网络用于浮动网络模式时,全部的网络硬件节点和设备通过一个二层的网段来连接,提供应用数据的訪问。
当云中的网络设备可通过VLANs支持分段时,遗留网络的另外一种模式就可操作了。此模式中,云中的每一个组户都被分配一个网络子网,其是映射到物理网络的VLAN中的。尤其重要的一点。要记得在一个生成树域里VLANs的最大数量是4096.在数据中心此限制成为了可能成长的一个硬性限制。
当设计一个支持多租户的通用型云时,特别要记住使用和VLANs一起使用遗留网络。并且不使用浮动网络模式。
另外的考虑是关于基于遗留网络的网络的管理是由云运维人员负责的。
租户对网络资源没有控制权。
假设租户希望有管理和创建网络资源的能力,如创建、管理一个网段或子网,那么就有必要安装OpenStack网络服务。以提供租户訪问网络。
============================neutron=============================
OpenStack网络 (neutron) 是第一次实现为租户提供所有的控制权来建立虚拟网络资源的网络服务。
为了实现给租户流量分段,一般是基于已有的网络基础设施来封装通信路径,即以隧道协议的方式。这些方法严重依赖与特殊的实现方式,大多数通用的方式包含GRE隧道,VXLAN封 装以及VLAN标签。
=============================总结===============================
假设没有一定的OpenStack基础。或许看不明确上面要表达的意思,对于新手来说,neutron是openstack未来的发展方向。可是nova-network有助于用户理解openstack的网络技术,当然假设针对照较小规模的私有云环境,使用nova-network简单、方便、便于维护和部署,假设须要实现更高要求。很多其它模式的用户neutron是一个更好的选择。只是neutron技术眼下还在不断的成熟和完好过程中。并且随着Openstack版本号的不断变化,这块技术变化也比較大。
比如K版本号之前,neutron都是使用OVS方式,可是L版本号使用了Linux Briage方式。当然笔者也在不断学习过程中,对于网络的理解仅供參考。
关于架构
选择网络架构决定了那些网络硬件将会被使用。而网络的软件是由选择好的网络硬件所决定的。举例,选择了网络硬件仅支持千兆以太网 (GbE)会影响到整个设计。
相同地,决定使用 万兆以太网(10GbE)仅会影响到整个设计的局部一些区域。
有很多设计上的细节须要被考虑。选择好了网络硬件(或网络软件)会影响到管理工具的使用。除非出现以下情况:越来越多的用户倾向于使用"开放“的网络软件来支持广泛的网络硬件,意味着某些情况下网络硬件和软件之间的关系是不是被严格定义。关于此类型的软件Cumulus Linux即是个样例,Cumulus Linux具有执行多数交换机供应商的硬件的能力。
选择联网硬件时须要考虑的一些关键因素包含:
- port数目:设计要求网络硬件有充足的port数目。
- port密度:因为port数量的需求,就须要更大的物理空间,以至于会影响到网络的设计。
一旦首选敲定了高port密度,在设计中就得考虑为计算和存储留下机架空间。进一步还得考虑容错设备和电力密度。高密度的交换机会很的昂贵。亦需考虑在内,当然如若不是刚性需求,这个是没有设计网络本身重要。
- port速度:网络硬件必须支持常见的网络速度。比如:1GbE、10GbE 或者40GbE(甚至是 100GbE)。
- 冗余网络硬件的冗余级别需求是受用户对于高可用和开销考虑的影响的。网络冗余能够由添加冗余的电力供应和结对的交换机来实现,添加遇到这种需求,硬件须要支持冗余的配置。
- 电力要求:确保物理数据中心为选择的网络硬件提供了必要的电力。
网络硬件没有单一的最佳实践架构以支持一个通用型OpenStack云,让它满足全部的实现。
一些在选择网络硬件时有重大影响的关键元素包含:
- 连通性:一个OpenStack云中全部的节点都须要网络连接。在一些情况下。节点须要訪问多个网段。
云的设计必须环绕充足的网络容量和带宽去确保全部的通信。不管南北流量还是东西流量都须要有充足的资源可用。
- 可扩展性:网络设计须环绕物理网路和逻辑网络可以轻松扩展的设计来开展。网络硬件须提供给server节点所须要的合适的接口类型和速度。
- 可用性:为确保云内部訪问节点不会被中断,我们建议网络架构不要存在单点故障,应该提供一定级别的冗余和容错。
网络基础设施本身就能提供一部分。比方使用网络协议诸如LACP,VRRP或其他的保证网络连接的高可用。
另外,考虑网络实现的API可用亦很重要。为了确保云中的API以及其他服务高可用。我们建议用户设计网络架构的负载均衡解决方式,以满足这些需求。
參考文献:
@华为云计算
@Openstack官网