一种能耗存储精简的虚拟化网络实验设计方案

2019-08-06 04:25蔡志凯来崇浩陈胜凯徐艺群
计算机时代 2019年7期
关键词:虚拟仿真

蔡志凯 来崇浩 陈胜凯 徐艺群

摘  要: 虚拟仿真技术正在被越来越多的计算机网络实验教学,以克服实体实验的不足。现有方案普遍采用VMware VRA平台实现,没有考虑节俭能耗和精简存储,导致服务器浪费了大量的电力和存储,不符合“绿色”云计算思想。文章提出了一种新颖的能耗存储精简设计方案,根据教学计划和实际需求,课前利用Python脚本,调用VRA平台 REST API动态生成虚拟机资源,满足实验需要,并在课后回收销毁,克服了传统虚拟化网络实验设计浪费资源的弊端。

关键词: 虚拟仿真; 计算机网络实验; 能耗存储精简; VMware VRA

中图分类号:TP393          文献标志码:A     文章编号:1006-8228(2019)07-11-03

Abstract: Virtual simulation technology is being used more and more in computer network experiment teaching to overcome the shortcomings of physical experiment. Current solutions are generally implemented on VMware VRA platform, without considering the energy saving and storage simplifying, resulting in the server wasting a lot of power and storage, which is not in line with the "green" cloud computing idea. This paper proposes a novel design scheme with energy saving and storage simplifying. According to the teaching plan and actual needs, Python script is used which calls REST API of VRA platform to dynamically generate virtual machine resources before class to meet the needs of experiment, and then recycle and destroy them after class, thus overcoming the shortcomings of wasting resources in traditional virtualized network experiment design scheme.

Key words: virtual simulation; computer network experiment; energy and storage saving; VMware VRA

0 引言

计算机网络是计算机及相关专业的一门核心基础课程,在传统的实验教学中,普遍采用的是两台实体计算机独立组网的方案,以便模拟服务器端/客户端的架构,完成DNS、DHCP等网络服务实验。但是由于设备经费限制,很多高校的网络实验室设备陈旧、种类少、更新慢,使得学生实验机会少,只能做一些简单实验[1]。而且传统方案是机房采用双网卡的计算机,一张网卡用于两台计算機独立组网,另一张网卡用于连接Internet。这就对机房硬件提出了特殊需求,给机房维护工作带来了难点,比如第二张PCI网卡比集成网卡更容易松动,经常会造成实验时蓝屏等故障。

随着虚拟仿真技术的发展,越来越多的计算机网络技术实验课程,开始采用虚拟化平台。一些学校采用了客户端虚拟化方案,即使用VMware Workstation等软件,在一台实体机上虚拟出两台虚拟机,实现独立组网的效果,以满足实验需要。另外一些虚拟化方案采用了Packet Tracer、GNS3等虚拟仿真软件,但是这类软件或没有采用真正的虚拟机镜像,只是简单的命令行仿真,或需要在本机运行大量的虚拟机镜像才能模拟复杂的拓扑结构,这对实验室计算机配置提出了极高的要求,难以满足[2-5]。还有些方案虽然采用了VMware vSphere服务器虚拟化技术,构建私有云平台来满足实验要求[6]。但由于在实验课程期间,虚拟机需要一直存在或者手工生成销毁,因此浪费了大量的电力能耗和存储空间,增加了实验室运维工作量。

基于上述问题,如何解决传统虚拟计算机网络实验存在的痛点,更好的提高计算机网络课虚拟化实验的效果,并在实验过程中节省能耗和精简存储空间,成为一个需要迫切解决的课题。

1 基于VRA平台的虚拟化方案

基于上述计算机网络课虚拟仿真实验方案的问题,本文提出了基于vSphere和VRA平台的设计方案。vSphere 是VMware公司推出的服务器虚拟化解决方案,它是业界领先且可靠的虚拟化平台。本平台同时利用VMware提供的NSX虚拟化网络,实现实验小组之间虚拟网络的隔离。

在vSphere的上层采用了VRA(vRealize Automation)平台,以便让师生利用其提供的工作流模板,批量生成实验所需的虚拟设备和网络拓扑。VRA是一个基于vSphere架构的IAAS平台,IT组织能够通过该平台实现云计算服务的编排与自提供。图1是虚拟化实验中的一组虚拟机界面,其中客户机是Win7,服务器是Redhat Linux,通过隔离的虚拟网络来完成计算机网络实验。

该设计方案通过云计算方式,在不同组学生之间共享了CPU和内存等硬件资源,可以实现比采用VMware Workstation方案更复杂的网络拓扑实验。图2是该方案下的虚拟仿真实验教学模型。

2 能耗与存储精简方案

由于虚拟机部署和生成需要时间,一台典型虚拟机的部署需要5-10分钟。传统此类虚拟化方案需要在课程前手工建立所需的几十台虚拟机,并且采用不销毁虚拟机的方式,导致课程持续期间虚拟机一直存在,这就带来了存储空间和能耗的浪费问题。针对这一问题,本文提出了一种精简容量和能耗的方案,利用VRA平台提供的REST API,用Python脚本动态根据每周的实验运行表,在凌晨服务器空闲时段生成当日课程所需的虚拟机,并在半夜回收销毁这些虚拟机,真正按照课程需要来提供虚拟仿真实验教学资源。

2.1 VRA平台REST API

REST风格的API在分布式资源编程中日益流行。几乎所有的云计算平台服务架构,都提供了RESTful风格的编程接口,以便用户能够编程实现自定义的特殊服务需求,VRA平台也不例外。VRA平台的REST API几乎提供了所有操作,包括列出蓝图服务目录,请求虚拟机等。下面是一个REST API的endpoint样例,它能够列出VRA平台当前所提供的服务目录:http://serverip/component-registry/api/services [7]。

2.2 虚拟机的批量生成

在Linux中,Crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,我们利用它执行Python脚本,在每日凌晨读入当日实验课程表,如果需要生成某门课程所用虚拟机,则读入相应班级的学生帐号。使用帐号密码,调用REST API模拟登录,首先获取后续操作所需的TOKEN。在随后的API调用中,都需要将该TOKEN加入HTTP请求头部,以满足认证需求。然后调用REST API获取服务目录,返回的服务目录以JSON格式描述,核心内容如下:

可以看到,每门课程所需的拓扑蓝图在JSON中为一个OBJECT对象,脚本根据当前所需生成课程计划的name,从JSON中获取相应的id。随后调用REST API,获取该id对应蓝图所需的生成模板,返回的也是JSON数据,脚本将相应的生成虚拟机信息填入该模板,比如虚拟机名称,内存容量等。最终调用生成蓝图的REST API,在HTTP头部附加蓝图所需的生成信息模板,发送请求后,vRA平台即可完成虚拟机的生成部署。下面是一段调用REST API获取TOKEN和蓝图服务目录的核心代码:

2.3 虚拟机的批量销毁

在实验课程完毕之后,为了节俭能耗和磁盘空间,也必须及时使用脚本批量销毁虚拟机资源。销毁虚拟机的流程如图4。

可以获取该学生的所有已部署虚拟机资源,返回数据也是JSON格式,通过检查数据中每一个虚拟机资源的["parentResourceRef"]["label"]项,也就是该虚拟机所属的部署蓝图,就可以确定该虚拟机是否属于所要销毁的课程资源。如果是,调用相应的REST API 执行销毁虚拟机操作。

3 结束语

本文分析了目前一些计算机网络虚拟化实验方案的缺点,提出了一种能够精简能耗和存储的设计。该方案利用VRA平台提供的REST API编程接口,执行Python脚本,根据实验运行表,动态地生成与销毁课程所需虚拟机资源。达到不同班级之间共享资源的目的,实现了云计算中的共享经济,并精简了能耗和存储空间。但是目前的方案中,服务器集群资源没有根据课程实际需求动态地调整,仍然浪费了不少能耗。因此需要进一步研究vSphere和VRA平台编程接口,利用脚本动态开启与关闭服务器,调整计算资源,进一步实现“绿色云计算”的思想。

参考文献(References):

[1]徐巧枝.基于Packet Tracer的计算机网络实验教学方案[J].内蒙古师范大学学报,2012.3:144-146

[2] 唐灯平,朱艳琴,杨哲,曹国平,肖广娣.计算机网络管理虚拟仿真实验平台设计[J].实验室科学,2016.2:76-80

[3] 唐灯平,朱艳琴,杨哲,曹国平,肖广娣.基于虚拟仿真的计算机网络管理课程教学模式探索[J].计算机教育,2016.2:142-146

[4] 张梁斌,高昆,梁世斌.基于Packet Tracer 的小型企业网络应用架构的仿真实验[J].实验室研究与探索,2012.10:372-376

[5] 王淑娟.基于GNS3 与VMware 仿真虚拟网络实验室的研究[J].高校实验室工作研究,2016.4:63-65

[6] 王成喜,孟安宁,基于VMware vSphere私有云计算模式的数字化实验室建设[J].计算机与现代化,2017.7:124-126

[7] VMware. vRealize Automation Programming Guide[EB/OL].https://www.vmware.com,2017.

[8] 孙界平,琚生根,陈黎,周刚,师维.计算机网络虚拟仿真实验平台的建设实践[J].实验技术与管理,2017.8:115-117

[9] 姜恩华,汪徐德,李素文,杨一军.计算机网络课程虚拟实验室建设[J].实驗室科学,2012.1:132-135

[10] 陈远聪.计算机网络虚拟实验教学平台的设计与实现[J].赤峰学院学报,2017.33:9-11

猜你喜欢
虚拟仿真
中职畜禽解剖课程虚拟仿真实训教学资源的建设与应用
虚实结合和科教融合的计算机实验教学体系
数字积分法插补仿真实验教学系统开发
网络虚拟仿真实验中心建设研究与实践