基于OpenStack的云计算实训资源开发与设计

2016-02-07 02:37◆刘
网络安全技术与应用 2016年11期
关键词:租户开源组件

◆刘 坤

(苏州健雄职业技术学院软件与服务外包学院 江苏 215411)

基于OpenStack的云计算实训资源开发与设计

◆刘 坤

(苏州健雄职业技术学院软件与服务外包学院 江苏 215411)

云计算、大数据已经成为了当前社会IT行业前沿技术。各高职院校也都开始着手建设云计算技术及应用新专业。针对新专业的开设,如何进行课程资源开发与设计?本文基于主流云平台OpenStack开源系统,以其核心组件Keystone为例设计案例,详细介绍了基于OpenStack云计算技术教学资源的开发设计。

云计算;大数据;OpenStack开源系统

0 引言

云计算是分布式处理、并行处理和网格计算的发展,或者说是这些计算机科学概念的商业实现。它是基于互联网的计算共享资源、软件和信息,以按需的方式提供服务,是一种商业模式,它将计算任务分布到大量的计算机、服务器构成的资源池上,使用用户能够按需获取计算能力、存储空间和信息服务。云计算是一种 IT 资源的交付和使用模式,通过网络以按需、易扩展的方式提供用户所需的硬件、平台、软件及服务等资源。“云”的计算能力通常是由分布式的大规模集群和服务器虚拟化软件搭建,通过互联网为用户提供服务,就像城市的电厂、水厂通过电网、管网将水电送入千家万户。

OpenStack作为一个开源的云计算解决方案,也可以将OpenStack理解为一个开源的操作系统,它是由Python语言编写,主要通过命令行(CLI)、程序接口(API)或者基于Web界面(GUI)实现对底层的计算资源、存储资源、网络资源的集中管理功能。在设计系统架构可以直接运用物理硬件作为底层,我们主要将其作为基础设施即服务(IaaS)方案使用。

目前全国已有多家高职院校开设云计算技术专业,这也是将来高职院校适应时代发展一个必将趋势。对于一个新开设的专业和学科,如何开发设计好课程体系结构,课程教学内容关系到一门课程、一个专业的发展。本文利用目前已经成熟的开源平台OpenStack,搭建云计算机平台,开发设计适合课程教学需要的实训项目。

1 云计算平台构建

云计算的主要服务形式有:SaaS(Software as a Service),PaaS(Platform as a Service),IaaS(Infrastructure as a Service)。IaaS(基础架构即服务)是指消费者使用“基础计算资源”,如处理能力、存储空间、网络组件或中间件。消费者能掌控操作系统、存储空间、已部署的应用程序及网络组件(如防火墙、负载平衡器等),但并不掌控云基础架构。例如:Amazon AWS、Rackspace。PaaS平台即服务是指消费者使用主机操作应用程序。消费者掌控运作应用程序的环境(也拥有主机部分掌控权),但并不掌控操作系统、硬件或运作的网络基础架构。平台通常是应用程序基础架构。SaaS软件即服务是指消费者使用应用程序,但并不掌控操作系统、硬件或运作的网络基础架构,是一种服务观念的基础,软件服务供应商,以租赁的概念提供客户服务,而非购买,比较常见的模式是提供一组账号密码,具体层次功能划分见图1所示。

图1 云计算服务形式

在云计算平台研发方面,国外有IBM、微软、Google 以及OpenStack 的鼻祖亚马逊的 AWS 等,国内则以 Ucloud、海云捷迅、UnitedStack、EasyStack、金山云、阿里云等。现在比较流行的以 CloudStack、Eucalyptus、vCloud Director 和 OpenStack,而 OpenStack 则在市场中占据了绝对的份额优势。OpenStack 社区聚集着一批有实力的厂商和研发公司,他们把自己代码贡献给社区,不断完善和推动 OpenStack 技术的发展。OpenStack是一个云管理的项目,随着 OpenStack 组件的数据不断的增加,新支持的功能也是在不断丰富,OpenStack服务如下图2所示,所以本文选择OpenStack云平台。

图2 OpenStack服务

Nova、Keystone、Glance、Neutron、Cinder是OpenStack的核心组件,其使用率也是最高,正在生产和测试也是最高。OpenStack服务之间的调用关系是一个非常复杂的过程,可以总结为以下几点:

(1)OpenStack 各个组件之间是松耦合;

(2)OpenStack的每一个服务都通过Restful的方式提供自己对外的访问APIs;

(3)服务之间通过消息服务进行通信;

(4)每个服务状态的变化都会在数据库中记录。

为促进校企合作、赛项资源转化、推动云计算机技术专业建设,迫切需要利用企业提供的云平台和技术,设计适合高校教学的课程资源。这样既能为高校节省专业建设投入资金,又能为高校引进先进的技术资源,同时培养的专业高层次人才又能为企业服务。本文以Openstack核心组件Keystone为例,开发设计云计算技术教学实训项目,其它核心组件可以参考完成实训项目的设计开发,从而完成以OpenStack开源平台学习云计算技术的课程资源建设。

2 实训项目开发与设计

2.1 实训环境网络拓扑搭建

图3 云实训平台网络拓扑结构

本文利用OpenStack开源系统搭建云平台实训项目,根据OpenStack部署网络中需要的控制节点、网络节点、计算节点,进行硬件环境配置。在服务器上安装操作系统及KVM,在控制节点、存储节点、网络节点安装OpenStack服务组件,计算节点安装OpenStack客户端和代理程序,最后配置和调试计算、网络、存储完成实训环境的拓扑搭建,如图3所示。用户可以通过web页面或者终端的方式进行访问云平台。

2.2 Keystone认证服务权限管理

Keystone服务是权限管理也是OpenStack核心组件,主要用于用户的管理授权。Keystone服务目录,类似一个服务总线,或者说是整个OpenStack框架的注册表,其它服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互的调用,需要经过keystone的身份验证,从而获得相应的Endpoint来找到目标服务。

图4 Keystone模块

其中Token是用来生成和管理token,Catalog用来存储和管理service/endpoint,Identity:用来管理tenant/user/role和验证,Policy用来管理访问权限,通过请求身份令牌来验证服务。Keystone可以实现云平台用户、租户创建,角色权限指派等工作,具体角色定义如下:

(1)user(用户)-用于身份认证,一个用户可以关联到多个租户;

(2)Tenant(租户)-相当于用户的概念,一个租户可以容纳多个用户;

(3)Role(角色)-关联到“用户-租户对”的元数据,可以关联到多个“用户-租户对”;

(4)Token(令牌)-用于验证用户或者“用户-租户对”的请求是否合法;

(5)Service(服务)-服务类型和名称;

(6)Endpoint(短点)-服务的实例(URL入口)。

云平台可以通过界面、命令、shell文件等方式实现Keystone用户、租户、角色的创建。

(1)创建用户:一个名称为“test”账户,密码为“test123456”、邮箱为“test@example.com”。

$ keystone user-create --name=test --pass= test123456”--email=test@example.com

(2)创建租户:一个租户就是一个项目、团队或组织,当请求OpenStack服务时,必须定义一个租户,创建租户的命令操作结果如图5所示。

图5 创建租户

(3)创建角色如下创建一个角色“compute-user”:$ keystone role-create

--name=compute-user,绑定用户和租户权限身份认证关联用户、用户所在租户和角色,可以使用命令keystone user-role-add完成,语法格式为:

$ keystone user-role-add --user <user> --role <role> [--tenant<tenant>]

假设给用户“alice”分配“acme”租户下的“compute-user” 角色,命令如下:

2.3 以 keystone核心服务为例设计实训项目

搭建好OpenStack网络环境,学习了Keystone组件的功能和基本语法后,本文以Keystone功能为例,设计适合高职教学的案例,通过案例讲解、操作、演示使学生对Keystone组件功能能够较好的掌握和理解。

某小型企业内部有100名员工,其中50名为项目研发部(研发环境),45名为业务部(办公环境),5人销售部(产品销售)。根据企业人员部门分配,现构建3个租户,100个用户,管理人员拥有管理员权限,其余人员拥有普通用户权限,规划表如下表1所示。

表1 企业员工角色规划表

(1)创建租户

创建项目研发部名为R_Dept的租户、业务部名为B_Dept的租户、IT工程部名为I_Dept的租户,通过dashboard界面为研发部创建一个名为R_Dept的租户,通过命令行为业务部创建一个名为B_Dept的租户,通过脚本Keystone-manage-tenant.sh,为IT工程部创建一个名为I_Dept的租户。

(2)创建用户账号

为项目研发部创建50个用户,分别名为rduser001- rduser050密码为cloudpasswd,为业务部创建45个用户,分别名为bsuser001- bsuser045密码为cloudpasswd,为IT工程部创建5个用户,分别名为ituser001- ituser001密码为cloudpasswd。可使用GUI和CLI界面,辅助可使用shell。

①通过dashboard界面为研发部创建用户rduser001,密码为cloudpasswd,进入dashboard找到管理员选项,打开认证面板,选中“用户”,选择“创建用户”,在创建用户界面,输入用户名、邮箱、初始密码、主项目和角色。

②通过命令行为项目研发部创建用户rduser002,密码为cloudpasswd。

③通过编写Keystone-manage-user.sh执行Shell脚本为项目研发部创建用户rduser003- rduser050,密码为cloudpasswd。

3 结论

云计算、大数据是计算机网络随时代发展的产品,云计算技术专业也是各高职院校最近几年新开设的专业。对于云计算专业建设、课程设置、课程资源建设都还处于摸索阶段,本文对于云计算技术专业课程资源开发给出了详细课程案例,对课程资源建设有一定的帮助作用,其它的云平台核心服务课程资源开发,也可以通过案例分析,在实训平台上设计开始实施。

[1]张小斌.OpenStack企业云平台架构与实践[M].电子工业出版社,2015.

[2]黄高攀,张明明等.OpenStack云计算平台安全解析 [J].信息技术与信息化,2015.

[3]乔然,胡俊,荣星.云计算客户虚拟机间的安全机制研究与实现 [J].计算机工程,2014.

[4]吴登攀.基于OpenStack云平台的用户管理系统设计与实现 [J].电子科技大学学报,2015.

[5]吴玉宁,王欢,苏伟,严晔,秦雪.OpenStack身份认证安全性分析与改进 [J].长春理工大学学报(自然科学版),2015.

[6]金永霞,孙宁.基于OpenStack的云计算实验平台建设与应用[J].实验技术与管理,2016.

[7]王霄飞.基于OpenStack构建私有云计算平台[J].华南理工大学学报,2012.

猜你喜欢
租户开源组件
无人机智能巡检在光伏电站组件诊断中的应用
多租户数据隔离及加密研究
新型碎边剪刀盘组件
基于多租户隔离的云安全建设
U盾外壳组件注塑模具设计
五毛钱能买多少头牛
2019开源杰出贡献奖
基于MVC模式的多租户portlet应用研究*
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0