--------------------------------------------------------------------------------------
版权所有:超图研究所(www.supermap.com)
Blog: http://blog.csdn.net/chinagissoft
QQ群:16403743
宗旨:专注于"GIS+"前沿技术的研究与交流,将云计算技术、大数据技术、容器技术、物联网与GIS进行深度融合,探讨"GIS+"技术和行业解决方案
转载说明:文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
--------------------------------------------------------------------------------------
题记
对于OpenStack私有云平台技术来说,技术难度最大的应该归属于网络技术部分,特别是软件定义网络(SDN)技术的应用,怎么使用软件技术实现复杂多变的硬件网络,传统的软件开发人员(非运维经验人员)来理解七层网络理论,网桥、虚拟路由器、网络抓包等等,但是本文只是介绍一下我们在私有云架构设计方面需要了解基础的网络知识而已。
网卡速度
一般情况下,对于私有云平台搭建过程中,都需要至少万兆网络来支撑网络环境。一般情况下,整个私有云可能由多台计算服务器(宿主机)来支持,在该云平台创建了N个虚拟机,那么这些虚拟机的网络传输都是通过宿主机的物理网卡利用网络虚拟化的技术实现,如果宿主机物理网卡的速度太小,直接影响虚拟机之间的数据通讯。
另一方面,在云环境下还经常会提到动态迁移的特性,例如宿主机1上的VM1,利用块迁移的方式迁移到宿主机2,这里面也需要通过宿主机的物理网卡来传输,一般虚拟机实例大小1-5GB不等,而且对于不同操作系统,不同应用大小可能更大,所以如果网络速度较低,也会影响动态迁移的效率。
那么既然了解我们至少需要万兆网络需求,我们还需要了解一下一个基本知识,就是所谓的万兆网络,也就是10000/Mbps,这里面并不是每秒传输10GB数据, Mbps实际上是一个带宽单位,而非速度单位,在“Mbps”单位中的“b”是指“Bit(位)”。而真正的速度单位应为MB/s,其中的“B”是指“Byte(字节)”。因为数据是按字节传输的,而并非按位。就因这两个大、小写不同的“B”和“b”,使得这两个单位不仅不能等同,而且相差甚远。当然它们之间也存在着较大关联的,那就是1MB/s=8Mbps,可以这么理解,那就是端口带宽是端口的理论最大传输速度,实际中的速度要远小于带宽值(通常为60~80%之间)。
网卡数量
一般情况下,OpenStack的搭建包括控制节点、网络节点、计算节点三种角色,部署方式比较多样,
我们可以使用一台服务器All in One的方式,
也可以使用两台服务(一个控制节点+一个网络(计算)节点),
但是官方文档介绍的是使用了三台服务器(控制节点+网络节点+计算节点)
当然,对于OpenStack来说,至少需要三种网络:
当然,还包括存储网络等,如果宿主机网卡较多,可以具体再进行网络拆分,也可以设置多个外部网络,例如超图研究院由于研发需求,需要有研发内网,当然也需要普通网络,就可以设置两个外部网络实现这种需求。
网络模式
在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具有运行多数交换机供应商的硬件的能力。
选择联网硬件时需要考虑的一些关键因素包括:
参考文献:
@华为云计算
@Openstack官网