阮承妹
摘要:采用vSphere私有云建设OpenStack实验平台的方案中存在虚拟机嵌套问题,针对该问题,本文提出了一种OpenStack各节点组网方式,在不开启虚拟交换机的混杂模式下,实现虚拟机实例与外部网络的通信。该组网方式,既实现虚拟机实例与OpenStack各节点的网络隔离,又无需混杂模式下额外的开销。
关键词:vSphere;OpenStack;嵌套虚拟机;混杂模式;组网
1、背景
高校智慧校园建设中,逐步抛弃传统的服务器管理模式和以PC为主的实验室建设方式,采用私有云构建服务器资源池以及云系统的解决方案成为主流。
计世资讯调查报告显示,在服务器虚拟化方面,VMware在中国的市场份额从2016年在2018年仍然达到40%[1]。在私有云方面,VMware占有率并不高,主要原因是用户管理需求复杂,不易于管理。市场需要更为开放更具兼容性的产品,如基于KVM的OpenStack云平台。2020年赛迪发布研究报告显示,基于开源OpenStack平台的企业仍占鳌头[2]。OpenStack的运维人员成为紧急需求。各院校逐渐开展云计算平台的相关教学,而首先要解决的是云计算实验室的建设问题。
基于私有云来构建云计算实验平台成为优先考虑的解决方案。本文以本校为例,原有大数据实验平台是采用VMware vSphere 6.5来构建私有云实验平台。在大数据实验课程中,服务器资源利用率大约为30%,假期时段利用率甚至更低,故考虑到成本资源利用率,在此私有云平台上构建OpenStack实验平台。
2、OpenStack节点在vSphere中的规划设计
vSphere管理平台包括ESXi 和vCenter 两个主要组件。其中ESXi提供虚拟化服务,虚拟机和虚拟设备都运行在ESXi上,vCenter提供管理服务。
用ESXi创建的虚拟机来构建OpenStack实验平台,OpenStack各节点之间的网络连接如果采用OpenStack官网推荐的拓扑进行组网,存在以下问题:
当OpenStack compute节点上创建的虚拟机VM实例与外部网络无法互通。原因在于ESXi创建的虚拟交换机与物理交换机的区别在于不学习来自外部网络的过境交通的MAC地址。虚拟交换机无法学习VM实例的MAC地址(不是由ESXi创建的,因此被认为是外部非法的),因此虚拟交换机丢弃VM实例帧。
[3]文作者提出了通过开启虚拟交换机混杂模式的方法来解决该问题。VMware对混杂模式的定义是混杂模式下的交换机会对所有流量进行泛洪,因此VM实例能够发送和接收到数据包。但混杂模式是不安全的运行模式,它意味着处于混杂模式中的所有网络适配器均能接收数据包。此外泛洪,需要额外的开销。
本文设计了图3-1所示的组网方式,在不开启虚拟交换机混杂模式的状态下,能够实现VM与外部网络的互通。
端口组0-2分别实现OpenStack内部组件通信、租户网络隧道、建立provider网络,因此都是内部网络,通过新建的vswitch1来实现网络连接。vswith1无需与ESXi物理网卡相连,保证内部通信的数据仅在ESXi主机内部间传输,实现内外隔离。
传统的组网方式是eth2直连外部网络,那么eth1网络与eth2网络通信所创建的qrouter的mac地址不能够被虚拟交换机学习,因此帧被丢弃。本文在controller节点上开启路由转发功能,并在eth3上启用SNAT,所有通过eth3路由的VM帧被修改成eth3的MAC地址,因此能够实现和外部网络进行通信。VM和外部网络通信数据流由3-1中虚线所示。
3、测试
在vswitch不开启混杂模式下,采用本文所提出的组网方式构建OpenStack实验平台,完成Linux Bridge + Vxlan实验,部署centos7实例。在controller节点上通过ssh访问该VM实例进行测试:
图3-1表明,该组网方式能实现VM实例与外部网络的通信。同时测试VM实例与OpenStack各节点之间的网络情况,VM实例与compute不通,实现了VM实例与OpenStack节点(除了网络节点)的隔离,提高了安全性。VM实例与网络节点(网络服务部署在controller上)是互通的,因为VM实例与外部网络的通信需要网络节点实现数据转发。
4、结论
在vSphere私有云平台上,采用本文提出的节点组网方式构建了OpenStack实验平台,在不开启混杂模式条件下,能够实现VM实例与外部网络的通信,从而确保OpenStack实验顺利进行。该实验平台的构建,既能满足大数据实验平台的需求,也满足了更为復杂的OpenStack实验平台需求,同时基于私有云的实验平台建设,满足智慧校园建设要求,实现资源共享,提高基础设施利用率,降低运维成本。
参考文献
[1]计世资讯.2018-2019年中国服务器虚拟化市场及技术发展趋势研究报告.计世资讯,2019.6.
[2]赛迪研究院.《2020中国私有云系统平台市场研究》.赛迪研究院,2020.8.20
[3]佚名.vCenter中嵌套OpenStack VM不能ping通外部网络问题解决的方法,https://www.cnblogs.com/claireyuancy/p/7083361.html,2017.6.27.
(三明学院信息工程学院 福建 三明 365004)