APP下载

基于Openstack 的科研教学云计算平台的构建与运用

2014-03-26李小宁金连文

实验技术与管理 2014年6期
关键词:镜像组件部署

李 磊,李小宁,金连文

(华南理工大学 电子信息学院,广东 广州 510641)

由于云计算平台能提供快速、按需、弹性的资源构建模式,能按照用户的需求快速地构建计算资源和开发环境,目前国内已经开始采用云计算解决我国高校教学资源的高冗余性、低共享等问题,如重复购置计算机、课程资源无法跨领域共享、课程之间资源无法实现动态灵活的调度和分配[1]。在国内的文献[2-5]中详细阐述了采用云计算技术解决高校教学科研资源优化管理的方法、改革模式等。相比于国外,如文献[6-10]所述目前已有众多高校以及科研单位采用云计算技术解决其科研环境中资源的快速构建、弹性伸缩和按需使用的问题,实现了计算整合、同构化以及高效用比,但对如何实现、构建、优化并没有给出相应的云计算平台构建方案,因此“具体采用什么方案构建高校的教学科研计算平台,如何使用云计算平台特点实现资源的优化构建和高效用比”值得进一步研究。

云计算平台分为IaaS平台、PaaS平台和SaaS平台[11]。其中IaaS平台 ,即基础设施服务平台,是PaaS和SaaS的基础,以提供资源的按需使用和弹性扩展能力。在面向高校的教学和科研时,IaaS平台可按照不同的需求提供不同资源类型的虚拟主机,满足多方面学科教学和科研的资源需求。

目前,构建IaaS平台的方案主要分为商业架构和开源架构。虽然商业架构具备完备的维护服务体系,但购置成本较高,在面对高校的资源开放化服务方面,难以实现投入与产出的价值平衡;开源架构相比于商业架构,虽然没有完善的服务维护体系,但由于代码开源、无需购置成本,因此拥有众多的构建和开发的人数,其稳定性实际并不亚于商业架构。同时采用开源构建的人员可以直接获取底层的软件源代码,通过一定的学习和研究,能直接按照自己的实际需求进行修改和定制,形成自主知识产权的云计算平台。本文基于目前开源架构中发展最为迅速的架构——Openstack Grizzly版本为基础进行了云计算平台构建,面向高校的教学科研的需求实现了资源弹性分配、快速扩展、网络隔离与共享,并完整的阐述了高校教学科研云计算平台的构建与使用方案。

1 Openstack设计框架

1.1 Openstack工程架构

Openstack 是由Rackspace 和美国国家航空航天局(NASA)共同开发的云计算平台,该平台帮助服务商和企业内部实现了类似于Amazon EC2 和S3 的云基础架构服务(infrastructure as a service,IaaS)。经过近些年的发展,目前获得了包括IBM、Cisco、HP等近200家知名IT企业的支持,成为开源云计算架构中最主流的平台之一[12]。Openstack采用了模块化设计,其从Folsom版本开始包括了6个主要的核心子工程:(1)Nova:提供了虚拟主机的调度、创建、删除和简单网络资源管理功能;(2)Cinder:提供了网络的块存储设备;(3)Glance:提供了创建虚拟主机所需的镜像注册、存储和删除功能;(4)Swift:提供了对象方式的分布式存储功能;(5)Keystone:提供了服务权限的验证、用户信息注册、修改、删除和相关服务权限管理功能;(6)Horizon:基于Djiango架构的Web服务,提供了面向终端用户的网页操作管理功能[12]。其工程架构见图1。

图1 Openstack工程架构图

1.2 Openstack Grizzly Quantum工程介绍

虽然Folsom版本已经具备了较为完善的IaaS平台构建方案,可以满足简单私有云的构建,包括虚拟机主机资源的管理、用户信息的管理以及简单网络IP的分配等,但无法满足高校多个二级学院/系、学科、实验室计算资源网络拓扑的动态构建和资源隔离。例如按照不同部门、不同功能的需求动态构建云计算网络拓朴等。Openstack Grizzly版本增加了Network as a Service工程——Quantum,该工程不仅实现了跨数据中心的二层挽网络共享与隔离,同时每个二层网络可以按照需求自定义拓扑结构,其核心是利用Openflow的架构,采用网络Plugin替代传统的网桥,为每一个虚拟主机构建一个私有的网络端口,并通过相应的Key或者Namespace作为网络传输的标志,实现云平台下虚拟主机的二层网络隔离,使得相同服务的虚拟主机成为一个逻辑独立的网络资源簇,同时每个挽留过资源簇的IP可以自定义,多个内部网络之间IP可以重复[13],其结构如图2所示。

本文采用Quantum作为高校教学科研云平台的网络服务,在面对高校云计算服务的需求时,可按照学院/系、学科、实验室等独立的实体构建多个独立二层网络隔离的虚拟主机资源簇,使得每个虚拟主机资源簇在进行构建和资源伸缩时不受地理位置、IP资源等外部因素的影响,体现了云计算平台资源的按需使用、动态构建和资源隔离等优点。

图2 Quantum网络结构

2 基于Openstack Grizzly版本的云计算平台构建

2.1 部署规划

按照高校数据中心和网络的拓扑特点,结合Openstack的设计架构,采用Openstack的6个核心工程,即Keystone、Nova、Glance、Cinder、Quantum和Horizon,每个工程采用分布式部署,并采用HA(高可用结构)结构,即将每个工程独立部署在多个物理主机集群内,并且对关键的组件按照HA的架构进行构建,实现云计算平台服务的高可用性。其部署的拓扑如图3所示。

2.2 Openstack构建主要方式的介绍

目前Openstack的构建可以采用以下3种主要方式[14]:

(1) deb包安装方式:目前ubuntu等Linux操作系统在其软件仓库已经放置了编译好的Openstack软件包,因此可直接采用apt-get install等自动化网络安装服务,完成Openstack各个组件的构建。

(2) devstack脚本安装方式:由于Openstack已经成为了开源云计算平台的首选部署方案,在国外开发人员的支持下,逐渐出现了devstack等类型的“一键化”安装脚本,用户可以通过该脚本的执行直接完成Openstack的构建。

(3) 源码安装方式:从Openstack的官方网站下载源码包,按照自己的环境进行配置修改,从底层的组件进行安装。

本文考虑到部署的灵活性,在部署的方式上采用了源码安装方式,按照自己的需求对Openstack进行配置和调整。

2.2.1 Openstack基础组件的部署

Openstack需要用到数据库和消息队列两种基础组件。其中数据库负责记录Openstack运行的关键信息和状态,消息队列负责对Openstack服务内的各个模块进行消息传输。

在数据的部署上,本文采用了Mysql-5.5数据库,并采取Heartbeat HA+RAID(NFS)部署方案,即采用一个基于RAID的存储池存储Mysql的数据信息,通过NFS挂载到多个Mysql服务端,Heartbeat负责将用户访问通过虚拟IP转发到后端正常工作的Mysql服务上。其结构如图4所示。

消息队列服务采用了Rabbitmq,并采取主备的HA方式,即针对消息队列服务同时部署一个主服务和一个预备服务,当主服务出现问题时,预备服务会被激活并替代主服务。其结构如图5所示。

2.2.2 Keystone和Glance的部署

Keystone和Glance的部署流程主要包括:首先安装必要的第三方组件,如Mysql的client服务组件、pip工具等,然后按照服务所在服务器的具体信息修改配置文件(/etc/keystone/和/etc/glance/下的配置文件),并安装系统服务,在数据库中创建数据表单,最后同步数据表单几个主要步骤。

图3 基于Openstack高校教学科研云结构示意图

图4 基于HA的Mysql数据库服务结构示意图

图5 基于HA的Rabbitmq的结构示意图

在上述步骤中,Keystone和Glance的配置文件关键信息内容如下:

Keystone:

[sql]#指向数据库服务器

connection = mysql://keystone:openstack@192.168.1.2/keystone

Glance:

[sql] ]#指向数据库服务器

connection = mysql://keystone:openstack@192.168.1.2/glance

default_store=file#采用存储器方式存储镜像文件

filesystem_store_datadir = /var/lib/glance/images/#定义存储的挂载点

由于Glance在部署时需要制定一个存储空间用以对镜像文件进行存储,本文采用了一个RAID10的独立存储空间,通过NFS协议将该存储空间挂载到Glance的物理主机上,实现存储和控制的物理分离结构。

为了实现Keystone和Glance的HA结构,系统采用多点反向代理机制,即采用多个物理节点运行Keystone和Glance服务,并在前端将其通过Nginx反向代理为同一个前端IP,即采用Nginx对后端的keystone和Glance进行负载均衡。当用户访问链接较多时,Nginx通过负载均衡方式将用户的请求均衡地发送到后端多个keystone和Glance服务上,实现服务的负载均衡和HA,其部署结构如图7所示。

图7 Keystone和Glance的部署结构示意图

2.2.3 Nova、Cinder的部署

Nova和Cinder部署的主要流程包括:首先安装必要的第三方组件,如Mysql的client服务组件、pip工具等,其中Nova关键的第三方组件包括KVM、Libvirt、Qume等虚拟化软件,Ciner的关键组件包括tgt、Iscsi等网络设备协议管理;然后按照服务所在服务器的具体信息修改配置文件(/etc/nova/和/etc/cinder/下的配置文件),并安装系统服务,同时在数据库中创建数据表单;最后同步数据表单几个主要步骤。

在上述步骤中,Nova和Cinder的配置文件关键内容如下:

(1) Nove的关键配置:

#数据库连接

sql_connection=mysql://nova:openstack@localhost/nova

#虚拟机调度策略

compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler

#虚拟机驱动配置

compute_driver=libvirt.LibvirtDriver

libvirt_type=kvm

#网络配置采用Quantum工程

network_api_class=nova.network.quantumv2.api.API

quantum_url=http://192.168.1.2:9696

#Glance连接

glance_api_servers=192.168.1.2:9292

#消息队列配置

rabbit_host=192.168.1.2

rabbit_password=openstack

Cinder的关键配置

#数据库连接

sql_connection=mysql://cinder:openstack@localhost/cinder

#消息队列配置

rabbit_host=192.168.1.2

rabbit_password=openstack

#网络挂载工具

iscsi_helper=tgtadm

#认证工具配置

auth_strategy=keystone

由于本系统服务属于开放资源服务,考虑到硬件设备的投入效用比,本文未采用网络存储阵列作为Nova虚拟主机数据的存储空间,仅采取了本地化RAID10存储阵列;在Cinder存储的部署上,本系统考虑到块存储数据的安全性,未采用常规的lvm卷存储,使用了Nexenta存储解决方案,即采用zfs文件系统作为Cinder的后台存储。

由于Nova和Cinder服务本身就是一个分布式部署方案,因此本文采用了在每个运行Nova和Cinder服务的物理主机上启动nova-api、nova-computper和cinder-api、cinder-volume进程,以实现服务的HA架构。

2.2.4 Quantum的服务安装

Quantum工程主要通过使用第三方的虚拟化网络管理插件进行实现,目前主要支持Openvswitch、Cisco 1kv、Linux bridge、NTT Ryu、Nicira NVP等,本文采用Openvswitch作为Quantum的网络插件。Openvswitch是Open vSwitch即开放虚拟交换标准,是在开源的Apache2.0许可下的产品级质量的多层虚拟交换标准。旨在通过编程扩展,使庞大的网络自动化(配置、管理、维护),同时还支持标准的管理接口和协议(如NetFlow,sFlow,SPAN,RSPAN,CLI,LACP,802.1ag)[14]。

Quantum部署的主要流程包括:安装必要的第三方组件,主要是安装Openvswitch组件,并按照自己网络的实际情况将物理主机的3块网卡所在的网络分别规划为管理网络、虚拟机内网以及对外接入网络,其中关键的步骤主要是创建内外2个网桥,并分别绑定到相应的网卡上,主要的配置内容如下:

(1) 网卡关键配置内容。

# 管理网络接口

auto eth0

iface eth0 inet static

address 192.168.1.2

netmask 255.255.255.0

network 192.168.1.0

broadcast 192.168.0.255

gateway 192.168.1.1

dns-nameservers 202.38.193.33

#虚拟主机内网接口

auto eth1

iface eth1 inet static

address 10.0.0.3

netmask 255.255.255.0

#对外网络接口

auto eth2

iface eth2 inet manual

up ifconfig $IFACE 0.0.0.0 up

up ip link set $IFACE promisc on

down ip link set $IFACE promisc off

down ifconfig $IFACE down

(2) Openvswitch网桥配置主要指令。

#创建虚拟主机内网网桥

ovs-vsctl add-br br-int

#创建外部接口网桥

ovs-vsctl add-br br-ex

ovs-vsctl br-set-external-id br-ex bridge-id br-ex

#将外部接口网桥绑定到外部网络网卡

ovs-vsctl add-port br-ex eth2

#为br-ex网桥添加ip:

sudo ip addr flush dev br-ex

sudo ip addr add 192.168.0.190/24 dev br-ex

sudo ip link set br-ex up

sudo ip route add 192.168.0.0/24 gw 192.168.0.190

在安装完Openvswith组件后,需要按照所在的物理服务器修改Quantum配置文件(/etc/quantum/配置文件),并安装系统服务,同步数据表单,最后为L3网络添加外部IP地址网段。

其中Quantum的几个主要服务进程包括:(1)quantum-server:管理和调度虚拟主机网络服务;(2)quantum-dhcp-agent:启动DHCP服务自动分配虚拟主机L2网络IP;(3)quantum-openvswitch-agent:管理本地L2网络(虚拟机内部络)网桥节点的分配与回收;(4)quantum-l3-agent:管理L3(对外接入网路)网桥节点的分配与回收,同时负责为每个L2网络创建一个虚拟机Router,实现L2网络隔离。

为了实现网络的HA接入模式,避免单点化的接入故障,本文采用多个专用的物理主机同时运行quantum-l3-agent,并对每个L2网络对外Router的流量做了监控。当Router出现故障时,即对外网络流量为0时,通过quantum-server的API调用在其他网络接入物理主机上创建一个Router,并将已经失效的对外IP重新绑定到新的Router上,实现网络故障的转移。其结构如图8所示。

2.2.5 Horizon的服务安装

本文采用Apache方式进行Horizon的部署,主要的步骤包括:安装Apache组件,修改器配置文件/etc/apache2/ports.conf,使得Apache根目录指向Horizon所在的文件夹,并添加WSGI服务: WSGIScriptAlias / /home/opdash/horizon-2012.2/openstack_dashboard/wsgi/django.wsgi,使得Apache可以调用Djiango的WSGI服务。

图8 Quantum 高可用结构部署结构示意图

3 Openstack教学科研云的镜像制作与上传

云计算平台在启动虚拟主机时需要从一个标准的虚拟机镜像获取文件,并调度到相应的物理主机上进行启动,因此在使用Nova服务前需要制作虚拟机镜像,并上传到Glance服务的存储中。本文所构建的系统采用了KVM虚拟化技术,制作镜像的流程主要包括:创建一个本地化的虚拟磁盘空间,按照KVM的启动方式,将所需要安装系统的ISO文件通过CDROM的引导方式将系统安装到虚拟磁盘空间,同时在安装过程中按照系统的种类需要完成如下操作:(1)Windows系统需要安装virtio 磁盘驱动;(2)Linux系统需要删除/etc/udev/rules.d/70-persistent -net.rules文件,以免自动添加除 eth0 以外的接口[15]。

在安装好基本镜像后,可依据实际的服务需要安装不同的服务软件,提供不同的IaaS服务。本文所构建的系统对镜像做了如表1所示的规划。

表1 平台镜像列表

为了保证云计算虚拟主机资源效用比的最大化,体现其按需使用的优点,系统为不同使用者配置了相应配置的虚拟主机类型(如表2所示)。

表2 虚拟主机资源配置列表

4 Openstack高校教学科研云的使用方法

本文所构建的系统位于校园内网,使用的流程主要包括:(1)登录Horizon界面,输入校园用户名及密码;(2)首次使用时,在控制面板中创建自己的网络,包括创建的自己的内部网络,以及输入自定义的内网IP段、网关并创建内网Router;(3)在控制面板中选择镜像栏,点击需要启动的系统镜像,在对话框内选择虚拟主机的配置类型、内网和外网Router,点击启动;(4)当用户需要访问主机时,可以在Floating IP栏目选择分配一个外网IP并连接到相应的虚拟主机;(5)用户可以通过RDP远程桌面或者Openstack的NoVNC网页的方式远程访问;(6)当用户需要添加网络块存储时,可以选择云硬盘选项,并按照需要容量创建一个虚拟的块存储,通过tgt挂载到虚拟主机上。使用流程如图9所示。

图9 教学科研云计算平台主要使用流程示意图

5 Openstack高校教学云的效用比的分析

构建Openstack云计算系统主要目的是提高高校计算机资源使用的效用比,并能实现快速的按需服务和扩展,避免重复的购置计算机设备,摆脱繁琐的实验环境维护工作。

以下从硬件、成本和扩展性3个方面分析了该平台同构化计算资源的性能。

(1) 硬件对比:加入云平台后,可免去重复购置计算机、安装软件等工作过程,有利于教师工作效率的提高,实现了本地资源的自由度。

(2) 成本对比:私有云除了性能高效外,还可降低成本,提高投入产出比。在本文的测试中,1个计算节点运行5个实例,每个实例的使用概率为50%~80%。以嵌入式Android实验课程为例,当部署一个大于5个虚拟主机开发环境的实验资源时,以1个计算节点、50%的使用概率为例,则实际使用的实例数为2.5个,按照计算公式得出

资源节省效用比=

(1)

因此节省的机器数、能源等成本为原来的2.5倍。

(3) 扩展性比对:当教师或者学生需要开展新的实验时,可以直接启动纯净的系统镜像主机,并按照自己的需求安装和定制软件,并提交给云平台管理员,作为附加的镜像传入Glance存储内,整个过程不大于3h。该镜像可同时授权公开给其他用户使用,相对于购置新的计算机,扩展成本基本为零。

当云计算平台计算能力无法满足当前的虚拟机数量与配置时,可以通过动态的方式将新的物理主机接入到平台内,无需对原有的资源做任何调整。如前成本对比所述,扩展一个新的物理主机可以支撑5个以上的虚拟云主机运行,效用比优势依然明显。

6 结束语

本文阐述了基于Openstack构建高校教学科研云平台的方案和运用方法,旨在为高校提供弹性计算服务,满足不同用户角色、不同阶段的要求,同时,通过在虚拟镜像中集成开发环境,为不同的教学和科研提供了一个硬件资源、系统架构、软件程序均一致的实例环境。

经过实践和实际运行,本文实现了既定的2个目标:(1) 构建和部署高校教学科研云平台;(2) 通过对原有资源购置方式的对比,体现了云计算平台资源高效用比、按需使用、快速扩展等优点,能为我国快速发展的教育和科研提供一个高效资源管理与供给模式。

[1] 罗国玮,兰瑞乐.基于云计算的高校科研实验平台构建研究[J].实验技术与管理,2012,29(4):115-117.

[2] 柴亚辉,涂春萍,刘觉夫,等.基于云计算的计算机与软件实验资源管理[J].实验室研究与探索,2010,29(10):254-257.

[3] 李英壮,廖培腾,孙梦,等.基于云计算的数据中心虚拟机管理平台的设计[J].实验技术与管理,2011,28(5):1-3.

[4] 黄晨晖,林泳琴.基于云计算的虚拟化计算机实验室的研究与实现[J],实验室研究与探索,2010,29(11):178-181.

[5] 鲁慧民,刘刚.基于云计算理念的虚拟实验教学系统设计探讨[J].实验技术与管理,2012,29(4):334-337.

[6] Simon Ostermann,Alexandria Iosup,Nezih Yigitbasi,et al.A Performance Analysis of EC2 Cloud Computing Services for Scientific Computing[EB/OL].[2013-07-17].http://link.springer.com/chapter/10.1007/978-3-642-12636-9_9.

[7] Dikaiakos M D,Cyprus Katsaros D,Mehra P.et al.Cloud Computing:Distributed Internet Computing for IT and Scientific Research[J].Internet Computing,IEEE ,2009(13):10-13.

[8] Ying S Hu,Xiaolin Nan,Prabuddha Sengupta.Jennifer Lippincott-Schwartz &Hu Cang Accelerating 3B single-molecule super-resolution microscopy with cloud computing[J].Nature Methods ,2013(10):96-97.

[9] Patrick Dreher,Mladen A.Vouk Utilizing Open Source Cloud Computing Environments to Provide Cost Effective Support for University Education and Research[EB/OL].[2013-07-17].http://www.iji-global.com/chapter/content/65284.

[10] Kim Sijung,Cho Doeun.Study on Virtual Education System Modeling in Hybrid Cloud Computing[EB/OL].[2013-07-17].http://link.springer.com/chapter/10.10071978-94-007-5064_38.

[11] 刘鹏.云计算技术原理[EB/OL].[2013-08-07].http://www.chinacloud.cn/show.aspx?id=1929&cid=12,2009.

[12] Openstack[EB/OL].[2013-08-07].http://baike.baidu.com/view/4924215.htm,2013.

[13] OpenStack最新版本Folsom架构解析[EBOL].[2013-08-07].http://www.csdn.net/article/2012-10-15/2810743-OpenStack-Folsom,2012.

[14] Openvswitch[EB/OL].[2013-08-07].http://baike.baidu.com/view/8861721.htm,2013,

[15] Kevin Jackson.OpenStack Cloud Computing Cookbook[M].Birmingham: Packt Publishing Limited,2012:151-154.

猜你喜欢

镜像组件部署
无人机智能巡检在光伏电站组件诊断中的应用
一种基于Kubernetes的Web应用部署与配置系统
晋城:安排部署 统防统治
镜像
新型碎边剪刀盘组件
部署
U盾外壳组件注塑模具设计
镜像
部署“萨德”意欲何为?
风起新一代光伏组件膜层:SSG纳米自清洁膜层