经过之前的两篇连载(一步步实现SDDC、变形金刚外传),我向各位演示了NSX DC两大产品(NSX-V、NSX-T)如何实现数据中心的网络与安全设施的。我们说过,NSX能够为用户带来的功能可以总结为三大类:
- 软件定义网络:SDN
- 网络功能虚拟化:NFV
- 安全微分段:DFW
我们一直讲软件定义的数据中心(后文称SDDC),其中包括了软件定义的网络、计算和存储,以及覆盖在这层基础架构之上的云管理平台(后文称CMP);VMware在这一领域,相应地提供了NSX、vSphere、vSAN以及vRealize产品。但是,如果现在还只定义VMware是一家提供SDDC产品和解决方案的厂商是极其不合适的,现在的VMware是一家安全的云厂商,SDDC只是它众多解决方案中的一环。
现在,我们不妨来模拟一个用户的数据中心环境:
- 生产平台承载企业最核心的业务,采用vSphere虚拟化作为承载平台,借助于vSphere HA、DRS、FT等来满足业务的高可用性。
- 测试平台承载企业非核心的业务,为了节约成本 ,用户采用开源的Openstack作为承载平台,并不需要成熟的商用产品来提供支持包括高可用在内的功能。
- 同时,企业意识到容器带来的高效率,计划打造微服务平台,作为新业务的承载。
可以看到,在这家企业内部,已经具备了三朵云的雏形,分别是以vSphere为核心的生产云、Openstack为核心的测试云以及容器技术为核心的新业务云。但是这种异构环境在实际使用中会遇到一些困境,其中最直观的两点包括:
- 需要一个统一的CMP实现调用,纳管全生命周期,交付IaaS、SaaS和XaaS。
- vSphere的虚拟交换机、Openstack的Neutron网络、容器的Namespace各自为政
用户需要一个能兼容并包上述三类网络对象的解决方案。
第一个痛点,可以借助于vRealize或者其他第三方CMP软件实现,不是本篇讨论的重点;对于第二个痛点,可以交给NSX DC完美地解决。
扯个题外话,其实对于Openstack与VMware的集成,VMware Integrated OpenStack(后文称VIO)也不失为一种解决方案。
在一个vSphere环境中,管理平台是vCenter和NSX Manager(后文称NSXMGR);计算资源是vSphere服务器虚拟化,存储资源是包括vSAN或者传统存储在内的数据存储,网络资源可以是虚拟交换机,也可以NSX DC打造的软件定义网络。相对应地,在Openstack环境中,管理平台是Horizon或者Controller Node命令行,Nova、Cinder、Neutron分别组成了计算、存储、网络三要素,当然还有包括Keystone身份认证等在内其他的组件,存储也可以是Ceph分布式存储。
而VIO本身提供了与Openstack一样的管理平台和方式,用受到vCenter管理的ESXi作为Nova节点,虚拟交换机端口组作为Neutron网络连接,数据存储作为Cinder块存储和Glance映像存储;需要注意的是,VIO是可以兼容NSX-V的,这一点可能颠覆了许多人的观点。
区别于VIO,NSX-T能原生地实现与Openstack平台的完美对接,在不改变Openstack用户习惯的前提下,提供网络与安全解决方案。同时,能将Openstack与包括vSphere在内的其他平台在网络与安全这一层上实现统一的纳管。
那么,NSX DC如何实现与Openstack对接的呢?
首先,我们来看看Openstack的Neutron网络能提供哪些功能:
- 逻辑网络和物理网络
- 负载均衡器和网络地址转换
- 安全组和防火墙
- 其他服务,如DHCP等
这些功能是借助于运行在Nova节点内核中的OpenvSwitch(后文称OVS)实现的。
再来,我们知道NSX-T也能实现包括SDN、NFV和DFW在内的三大功能,是借助于主机交换机NSX-Managed vSwitch(后文称N-VDS)来实现的。在vSphere环境中,N-VDS是基于分布式交换机(后文称VDS)内核的,在KVM或者Container环境中,N-VDS采用的是OVS内核。既然Openstack也是用OVS,那么一定可以通过某种手段实现被NSX DC的纳管。
有人说,既然Openstack已经可以实现这么多功能了,为什么还要NSX DC呢?
从小的方面来说,NSX DC能很好地弥补Openstack Neutron在动态路由方面的不足;
从大的方面来说,一个软件定义的数据中心,需要有一个强大可靠的产品实现异构平台的网络和安全定义。
如上图所示,VMware NSX DC产品有一个插件,叫做NSX Neutron Plugin。在Openstack环境的Nova Controller安装并运行该插件后,管理员在Horizon或者Controller Node命令行执行与网络、安全相关的操作时,该插件会自动将这些设置同步到NSX DC的对象,如:
用户创建了一个Neutron交换机,NSX DC的Overlay传输区域会同步创建一个对应的逻辑交换机;
用户创建了一条防火墙策略,NSX DC会同步创建一个安全组,并实现安全微分段策略。
简单来说说NSX DC与Openstack集成的步骤吧:
1. 完成NSX-T环境的部署,包括NSXMGR和NSX Controller(后文称NSXCTRL);
2. 完成Edge传输节点和Edge群集的部署;
3. 完成NSX-T环境基本设置,包括至少一个Overlay传输区域、一个Tier 0逻辑路由器(后文称T0LR)、一个完成的DHCP设置(包括DHCP服务器、配置文件和元数据代理);
4. 完成Openstack组件的部署,包括Controller、Nova、Cinder、Neutron等;
5. 将Nova节点配置成为NSX主机传输节点,在Nova节点运行包括MPA、NetCPAd进程;VSIP、VDL2和VDRB三个内核;
6. 部署并运行Neutron Plugin,配置nsx.ini实现Openstack与NSX DC的集成。
经过上述步骤,我们就能实现NSX DC与Openstack的集成。在这之后,管理员在Openstack Horizon做的种种操作,会如何在NSX DC上自动同步,管理员在NSXMGR上能看到哪些东西呢?这些内容,我将在下一篇分享中向各位一一分析,敬请期待。