基于OpenStack平台的云计算系统设置研究
2015-12-28芮坤坤
芮坤坤
(安徽商贸职业技术学院电子信息工程系,芜湖 安徽 241002)
1 云计算简介
云计算是一种通过网络统一组织和灵活调用各种ICT信息资源,实现大规模计算的信息处理方式,云计算可以利用分布式计算和虚拟资源等技术,通过网络将分散的ICT信息资源(如计算与存储、运作应用程序、软件等)集中起来形成共享的资源池,并以动态按需和可度量的方式向用户提供网络资源服务,用户也可以通过网络获取大量的ICT信息资源[1]。
按照云计算服务的资源所在层次,可以分为基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)等,云计算可以面向机构内部提供网络服务的私有云,也可以面向公众提供服务的公共云,以及二者相结合的混合云。
基础设施即服务(IaaS):消费者使用“基础计算资源”,如处理能力、存储空间、运作的网络组件或中间件,消费者可以掌控操作系统、存储空间、已部署的网络应用程序和网络组件(如防火墙、负载平衡器等),但不能掌控云基础架构[2]。
平台即服务(PaaS):消费者使用主机运作应用程序,消费者可以掌控运作应用程序的环境(同时也拥有了部分主机的掌控权),消费者不能掌控操作系统、存储空间、运作的网络基础架构,平台是应用程序的基础架构。
软件即服务(SaaS):消费者使用应用程序,消费者不能掌控操作系统、存储空间、运作的网络基础架构,SaaS是一种以提供服务观念为基础的平台,软件服务提供商,是以租赁的概念向用户提供服务,而非购买,较为常见的一种方式是向用户提供一组账号和密码。
2 云计算系统设置
2.1 设计方案
本文的设计方案是搭建云计算IaaS平台,选用的是OpenStack项目。该平台基于云计算基础架构(IaaS),基于行业内最成熟、最流行的OpenStack扩展的云计算架构系统,OpenStack以 Apache许可证授权,是一个自由软件和开放源代码项目,目前已经吸引了超过 190家公司和 2 500个开发者,得到IBM、HP、微软、Dell、Intel、Red hat、思科、Oracle 等公司的支持和应用。国内已知的研发和应用单位有:中科院计算所、华为、百度、新浪、京东、携程及爱奇艺等[3]。
安徽商贸职业技术学院网络中心建设私有云应用服务,选择搭建安全的云计算平台是首要任务,通过云安全平台实现计算资源的池化弹性管理,实现学校应用的集中管理,实现统一安全认证、授权管理。作为系统管理和应用维护人员,需要进行云计算架构的设计、部署和管理。
安徽商贸职业技术学院云计算系统由两台服务器部署IaaS平台,两台服务器均运行CentOS 6.5 64位操作系统。其中一台服务器部署IaaS控制节点(Controller),另一台服务器部署 IaaS计算节点(Compute Node),最后通过IaaS部署虚拟机VM。
2.2 IaaS控制节点部署
IaaS控制节点需要安装NTP服务,用来完成与计算节点之间的时间同步,同时NTP协议采用了加密方式来防止恶意的协议攻击。IaaS控制节点服务器需要配置系统环境变量,我们编辑了openrc.sh脚本文件,设置了如 OS_USERNAME、OS_PASSWORD、OS_TENANT_NAME等变量的值,将脚本内容追加到.bash_profile文件中,使系统开机之后可以自动加载变量值。
IaaS平台的运行依赖MySQL数据库,同时为了安全考虑我们进行了mysql_secure_installation,删除数据库首次安装时创建的匿名用户。
IaaS平台控制节点的部署包含了 KeyStone、Glance、Nova、Dashboard服务的安装和配置。
IaaS平台最为关键的是部署KeyStone(身份服务)。KeyStone(Identity Service)是云计算安全框架重要组件,负责身份验证、服务规则和服务令牌的功能,它实现了云安全框架的 Identity API。KeyStone类似一个服务总线,或者说是整个云平台框架的注册表,其他服务通过KeyStone来注册其服务的Endpoint(服务访问的 URL),任何服务之间相互的调用,需要经过 KeyStone的身份验证,来获得目标服务的Endpoint以此来找到目标服务。
KeyStone 包 含了 User、Tenant、Role、Service、Endpoint等概念。User即用户,他们代表可以通过KeyStone进行访问的人或程序;Tenant即租户,它是各个服务中的一些可以访问的资源集合;Role即角色,代表一组用户可以访问的资源权限;Service即服务,如 Nova、Glance、Swift服务;Endpoint,翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的Endpoint,在 KeyStone 中包含一个 Endpoint模板[4]。
我们在部署KeyStone时通过ADMIN_TOKEN=$(openssl rand-hex 10)生成随机令牌,通过keystone-manage pki_setup--keystone-user keystone--keystone-group keystone创建签名密钥和证书。通过keystone user-create--name=admin--pass=$ADMIN_PASS--email=$MAIL_ADMIN_ADDR,keystone role-create--name=admin,keystone tenant-create--name=admin--description="Admin Tenant",keystone user-roleadd--user=admin--tenant=admin--role=admin创建身份认证服务的管理员、角色等信息。
Glance项目的主要功能是IaaS中提供虚拟机镜像的发现、注册和检索服务。它通过提供标准的REST接口,接受对不同后端存储的镜像的查询请求和返回镜像的相关信息。我们通过keystone user-create--name=glance--pass=$GLANCE_PASS--email=$MAIL_GLANCE_ADDR创建用户镜像服务,对镜像服务的 glance-api.conf、glance-registry.conf文件相关参数进行配置。
Nova组件的主要功能是提供按需分配的虚拟机。它类似于 Rackspaces的 Cloud Servers和亚马逊的Amazon Elastic Compute Cloud(EC2)。我们通过keystone user-create--name=nova--pass=$NOVA_PASS在身份认证服务中创建了Nova服务用户,对 nova 服务的“/etc/nova/api-paste.ini”文件设置相应参数。
Dashboard是一个 Web前端控制台,用来展示OpenStack的功能。一个Dashboard通常情况下由4个组件组成,分别为 panel、tab(可选)、table和view。其中panel、tab和 table用于导航,真正数据存放在 view中。安装完Dashboard之后,对“etc/openstack-dashboard/local_settings”文件进行参数设置,将Caches选项功能打开,同时对ALLOWED_HOSTS、OPENSTACK_HOST参数进行正确设置。
经过上述几个服务的设置之后,我们的IaaS控制节点搭建成功,通过浏览器可以访问到前端界面,如图1所示。
2.3 IaaS计算节点部署
IaaS计算节点的部署需要对系统环境变量进行配置,包含 HOSTNAME_CONT、HOST_IP_CONT等参数的配置。在计算节点中对“/etc/nova/nova.conf”文件中的参数进行多项设置,如openstackconfig--set/etc/nova/nova.conf keystone_authtoken admin_password$NOVA_PASS配置,由于配置步骤较多在此不进行赘述。
2.4 云计算网络设置
云计算网络设置我们是通过neutron项目完成,将neutron软件包安装完之后,我们进行了脚本语言的编写,#!/bin/bash
执行此脚本之后生成了FlatNet扁平网络结构,至此整个OpenStack IaaS平台搭建完成。
2.5 IaaS平台测试
输入正确的帐户名和密码即可进入云计算IaaS平台Web界面,界面里包含了系统面板和管理员选项,可以进行云主机类型添加、镜像管理和网络设置等操作。
我们在云主机选项中进行了启动云主机操作,对云主机的名称、系统参数、网络等选项进行相关设置,如图2所示。
通过正确的部署之后,就开启了一台虚拟机VM,此虚拟机可获取到正确的硬件参数配置和网络参数配置,如图3所示。
图2 启动云主机
图3 云主机虚拟化界面
3 结语
基于OpenStack平台的云计算系统在安徽商贸职业技术学院网络中心进行了有效而充分的测试,实现了学校资源的弹性和安全的集中化管理,在后续工作中我们的研究重点将是云主机的存储、访问控制、热迁移及网络VLAN部署。
[1]陈全,邓倩妮.云计算及其关键技术[J].计算机应用,2009(9):2562-2567.
[2]张耀祥.云计算和虚拟化技术[J].计算机安全,2011(5):80-82.
[3]李知杰,赵健飞.OpenStack开源云计算平台[J].软件导刊,2012(12):10-11.
[4]黄志成.开源云计算OpenStack在高校计算机机房中的应用研究[J].计算机与现代化,2013(3):204-206.