摘 要: 使用Eucalyptus作为私有云的实现平台,并利用KVM制作VM镜像实例,搭建了一个适合实验室资源管理控制的实验云计算平台。
关键词: 实验云;虚拟化;镜像实例
目前实验室管理中面临着大量的用户系统需求和设备需求。这些需求包括:日常的教学工作需求、学生实训的需求,老师对科研和实验的需求,实验室部署各种管理系统(如设备资产管理系统、排课系统、开放实验室预约系统等)的需求等。如何将有限的实验设备资源进行最大化的、科学合理的分配利用是当前急需解决的一项重要课题。
随着云计算的快速发展,相关云技术及产品的广泛应用,可以借助云计算的开源产品搭建实验室(实训中心)的私有云平台,帮助解决实验资源日益增长的需求问题。利用云计算的虚拟化技术可以构建多样化的虚拟资源,将个人桌面系统、服务器系统等操作系统及设备进行虚拟化和实例化,为不同的用户提供弹性计算系统架构和设备,满足用户的需求。
当前利用开源云计算产品搭建专用的私有云计算平台是一个研究热点。目前已有的开源云计算产品有 Eucalyptus、OpenNebula、Nimbus、ECP和OpenStack 。参考文献[1-2]对这些产品的VM管理、集群管理、状态监控、资源调度和网络管理等方面的进行比较分析[1-2],从技术和应用范围来看Eucalyptus开源产品比较适合用于构建所需的实验云计算平台。本文采用Eucalyptus作为实验云的实现平台,并利用KVM技术进行VM管理,搭建了一个适合实验室(实训中心)资源管理控制的私有云计算平台。
1 相关技术
1.1 Eucalyptus
Eucalyptus是由Nurmi D 等人开发的一个开源的云计算基础设施服务(IaaS),与Amazon EC2的服务接口兼容[3]。Eucalyptus采用模块化的设计,由节点控制器(Node Controller)、集群控制器(Cluster Controller)、云控制器(Cloud Controller)、存储控制器(Storage Controller)和Walrus组成。这些组件可以进行替换和升级,具有容易扩展、安装和维护 的特点。Eucalyptus能够工作在Linux/Ubuntu,Red Hat Enterprise Linux,CentOS等多种操作系统上,并且支持VMware, Xen和KVM hypervisors等虚拟化技术,帮助用户搭建所需的云基础设施平台[4-5]。
1.2 KVM虚拟化
KVM(Kernel-based Virtual Machine)是由以色列的一个开源组织Qumranet所开发,是一种开源的系统虚拟化模块[6]。从LinuxV2.6.20版起KVM内嵌在Linux内核中,将 Linux 主机变成一个虚拟机监视器,使它拥有本地虚拟化能力,能够方便地使用Linux内核提供的内存管理、多处理器支持等功能,易于实现。KVM是采用基于x86硬件虚拟化技术,可以运行在Intel VT-x和AMD SVM所支持的设备上[7]。KVM的虚拟化实现是采用宿主机(Host based)模型,并提供了一个虚拟化框架,需要QEMU作为平台虚拟化的协助工具,能够对处理器、显卡、磁盘、网络设备等外设虚拟成完整的计算机系统。另外,KVM还需使用Libvirt管理虚拟机、API库、deamon和virsh命令行工具协同工作,才能完全实现云计算平台的虚拟化工作[8-9]。
2 实验云拓扑设计
在Eucalyptus的体系结构设计中,云控制器是整个Eucalyptus系统的核心,负责高层次的资源调度。Walrus是一个类似于Amazon S3的存储服务,用于存储虚拟机映像和用户数据。集群控制器是一个集群的前端,负责协调一个集群内的计算资源,并且管理集群内的网络流量。存储控制器是一个与Amazon EBS类似的存储块设备,可以用来存储业务数据。节点控制器是最终的计算节点,通过调用操作系统层的虚拟化技术来启动和关闭虚拟机[10]。在同一个集群内的所有计算节点必须在同一个子网内。在一个集群内通常需要部署一台存储服务器,为该集群内的计算节点提供数据存储服务。
根据Eucalyptus的体系设计结构和实验(实训)中心现有的设备资源,将云控制器和Walrus部署到一台服务器上作为实验云的控制中心;集群控制器和存储器安装到一台服务器上作为实验云的集群管理中心;每个接入节点由4台高性能工作站组成,并在每台工作站上实施KVM虚拟化,安装需要的多个VM(Virtual Machines)系统。实验(实训)中心的任何一台PC都可以作为客户端访问实验云上的虚拟实例,进行相关的业务操作。实验云的网络拓扑结构如图1所示,云的所有组成部分均部署在同一个局域网中,便于实验员对云平台的管理维护和安全控制。
3 实验云实现
3.1 Eucalyptus平台搭建
根据实验云网络拓扑结构设计,进行网络IP地址规划,合理分配设备需要的IP地址,具体的分配如表1所示。
(1)系统安装
为控制中心、集群管理和接入节点的服务器安装Ubunutu Server系统。在控制中心的服务器上安装云控制器和Walrus模块,集群管理的服务器上安装cluster controller和strorage controller模块。每台接入节点的工作站除了安装Node节点模块外,还需安装bridge-util、kvm和openssh-server3个额外的软件包。bridge-util用于建立网桥,kvm用于VM管理,openssh-server为Node提供ssh服务。
在安装的过程中需要设置好云控制器的主机名称、虚拟机内网模式、网段、子网掩码和DNS以及集群管理的cluster name等参数内容。在Node系统中需要配置以太网接口为桥接模式,所有的VM系统的虚拟网络接口将接入到这个桥上,使用“sudo passwd <password>”命令设置临时的Eucalyptus用户密码方便接入节点与控制中心建立连接。
(2)系统模块注册
在控制中心的云控制器中需要对Walrus、Cluster Controller和Strorage Controller进行注册,实现云控制器与各个模块的连接。具体实现命令如下。
euca_conf --register-walrus 10.34.35.10
euca_conf --register-cluster ClusterAIBLab 10.34.35.11
euca_conf --register-sccluster 10.34.35.11
注册成功后系统会自动启动这3个模块的服务。然后需要注册Node节点,Node用于运行VM实例。先配置云控制器与Node的时间同步,利用“sudo -u eucalyptus ssh-copy-id -i,eucalyptus/.ssh/id_rsa.pub,eucalyptus@10.34.35.12”命令将ssh公钥传输到各个Node中。在Node中启动Eucalyptus-nc服务后,控制中心的云控制器执行“euca_conf --register-nodes 10.34.35.12”命令,依次找到云拓扑中4个Node节点的计算机并进行注册。
(3)系统配置
在控制中心的服务器浏览器中输入“https://10.34.35.10:8443”地址,进入云控制器平台下载(x509)安全证书,运行Eucalyptus系统。第一次登录时利用系统提供的默认用户名和密码(均为admin)进入系统,更改管理员密码、设置管理员的电子邮件地址、确认云控制器主机的IP和查看各个注册模块。为了便于用户管理云平台的虚拟机映像文件(EMI)资源,需要在服务器上安装EC2 API and AMI管理工具。利用AMI管理工具上载Eucalyptus系统默认的Linux系统镜像系统实例和绑定AMI-ID等,借助EC2工具进行虚拟机映像实例管理。所有连接到控制中心的客户端必须下载安装(x509)安全证书才能使用实验云的各种资源。
3.2 VM镜像制作
完成Eucalyptus实验云平台的搭建工作后需要向云平台添加镜像系统,通过镜像的实例化(系统虚拟化)为用户提供科研服务和实验服务。利用Win2008R2的ISO安装文件在KVM中创建接入节点需要的VM,具体实现步骤如下。
(1)创建虚拟系统
在接入节点的系统下创建存放镜像文件需要的目录,命名为virtualsys。使用“$dd if=/dev/zero of=~/virtualsys/ windows.win2008.img bs=1M count=20000”命令创建一个文件大小为20 GB的Windows Server 2008虚拟机磁盘文件。执行“qemu-kvm -drive file= ~/virtualsys//windows.win2008.img,If=scsi,boot=on -cdrom Win2008R2.iso -m 1024 -boot d”命令进行系统安装,Win2008在qume的环境下完成安装后进行远程桌面配置和建立远程桌面用户。
(2)创建ramdisk文件
安装syslinux并在/usr/lib/syslinux目录下找到memdisk文件,将其复制到~/virtualsys目录下。利用“$dd if=/dev/zero of=~/virtualsys/win28-boot.img bs=512 count=2880”命令创建floppy镜像文件win28-boot.img。重启Win2008虚拟机,将floppy加载到虚拟机中。进入Windows Server 2008系统,为C盘下的boot.ini文件添加Windows系统启动信息,然后将ntldr、ntdetect.com、sym_hi.sys和boot.ini文件复制到已经格式化的floppy中。复制后将floppy中的sym_hi.sys改名为Ntbootdd.sys,完成Win2008虚拟机启动引导盘制作。
(3)上传虚拟镜像
memdisk对应kernel,win28-boot.img对应ramdisk,windows.win2008.img对应rootfs,分别将这3个文件进行上传,并同时利用“euca-bundle-image -i”命令将rootfs与kernel和ramdisk绑定,完成接入节点的VM创建。
3.3 启动VM实例
镜像上传后,在云控制中使用“euca-describe-images”命令查看虚拟机是否已经成功。上传后进行镜像实例注册,开放22端口并以规划好的VM地址段分配IP,系统会为每个镜像实例分配一个“emi-ID”编号,通过执行“euca-run-instances -t c1.large emi-ID”命令,依次启动Eucalyptus中的镜像实例。
在云控制器中执行“watch -n5 euca-describe-instances”命令查看虚拟机实例的运行情况,如图2所示。为了便于对VM的管理,在接入节点上安装了KVM的图形管理工具软件,如图3所示。根据虚拟系统管理软件可以帮助实验员查看虚拟实例的运行情况,掌握实例对资源的占用情况,便于动态调节实例。
实验(实训)中心的客户端可以使用“$ rdesktop -u username -p passwd 172.16.1.3 -f”命令远程登录IP地址为172.16.1.3的接入节点上的一台运行中的VM系统。
3.4 防火墙配置
为保证实验(实训)中心的客户端与实验云上的VM能够互相访问,需要对Eucalyptus的包过滤系统进行设置。
在iptables包过滤防火墙中先清除原则的规划,然后添加允许INPUT和FORWARD链规则,用于向内和向外转发数据包,并设置172.16.1.3~254的网段都能通过控制中心的eth0(连接外网)接口向外发送数据包。另外,还需要设置校园网用户对实验云上的VM服务器的访问,以访问IP为172.16.1.3的网站服务器为例,在iptables中添加如下命令:
iptables -t nat -a PREROUTING -i eth0 -p tcp -m tcp -dport 22 -j DNAT -to-destination 172.16.1.3:22
iptables -t nat -a PREROUTING -i eth0 -p tcp -m tcp -dport 8089 -j DNAT -to-destination 172.16.1.3:8089
执行以上两条命令后,校园网的客户端用户可以访问到实验(实训)中心的网站服务器实例。
本文通过对开源云计算产品的研究,选择Eucalyptus作为实验云计算的实现平台。利用Eucalyptus的系统架构设计了实验云的网络拓扑结构,在各个拓扑节点上安装所需的操作系统,注册各个组成模块和配置网络参数;然后利用KVM虚拟化技术进行实验云的镜像系统制作、上传、绑定和启动实例;最后配置云平台的iptables包过滤防火墙,实现校园网用户对实验云上运行实例的访问,完成实验云计算平台的搭建。未来的研究重点是利用已搭建好的实验云平台设计开发实验室虚拟桌面系统和建设虚拟实验室,拓展实验云的服务提供能力,更好地解决校园用户与实验室资源的供需问题。
参考文献
[1] 林利,石文昌.构建云计算平台的开源软件综述[J].计算机科学,2012,39(11):1-7.
[2] 陈吉荣.构建私有云计算平台的EUCALYPTUS架构分析[J].电脑知识与技术,2010,6(15):3973-3975.
[3] 崔巍, 李益发, 斯雪明.基于Eucalyptus的基础设施即服务云框架协议设计[J].电子与信息学报,2012,34(7):1748-1754.
[4] 陈仲.基于EUCALYPTUS的虚拟云改进研究[J].现代情报,2011,31(5):152-157.
[5] 方薇.Eucalyptus开源框架下云平台的构建与性能分析[J].计算机系统应用,2012,12(6):1-5.
[6] 崔泽永.基于KVM的虚拟化研究及应用[J].计算机技术与发展,2011,21(6):108-111.
[7] 黄煜.KVM虚拟化技术中处理器隔离的实现[J].计算机系统应用,2012,12(1):179-182.
[8] 姚华超,王振宇.基于KVM_QEMU与Libvirt的虚拟化资源池构建[J].计算机与现代化,2013(7):26-33.
[9] 李斌.基于KVM的服务器虚拟化环境实现[J].洛阳理工学院学报(自然科学版),2013,23(2):66-69.
[10]张帆.基于Eucalyptus构建私有云计算平台[J].电信科 学,2011(11):57-61.