周有利
摘要:云平台包括三个层次的服务,分别是:基础设施级服务,平台级服务,软件级服务。描述OpenStack云平台架构及其核心组件的相互关系 ;OpenStack旗下包含了一组由社区维护的开源项目,它们分别是OpenStackCompute(Nova),OpenStackObjectStorage(Swift),以及OpenStackImageService(Glance)。笔者就OpenStack单节点平台搭建跟大家探讨
关键词:单节点;OpenStack;搭建
中图分类号:TP311.5 文献标识码:A 文章编号:1009-3044(2016)28-0060-03
在开源服务器操作系统Ubuntu上搭建一个开源的 Openstack云计算平台,集成nova、keystone、glance等云平台组件,提供以服务方式启动、停止Openstack云计算服务,提供以Web界面来管理镜像等资源。
要求能够根据给定的云计算设备和分配的IP地址,制定Openstack云计算平台规划方案,能够依据制定的规划方案在指定节点安装Ubuntu操作系统,安装MySQL数据库管理系统,创建数据库,集成nova、keystone、glance等云平台组件到Openstack云计算平台,能够以Web界面来操作Openstack云计算平台。
1 控制节点系统及环境安装
1.1 准备安装环境和软件
ubuntu-12.04-server-amd64.iso
1.2 设置 root 权限
# sudo passwd root
就可以给 root 设置一个密码。直接用 root 运行。
1.3 设置网络
本文档中的配置,是将 eth0 作为公网及管理网络和网桥虚拟网络。
单节点的情况下,网络控制器(运行nova-network)与计算(运行nova-compute,或者更确切的说,运行虚拟机实例)部署在一个主机。在这样情况下,我们就不要依赖控制点与计算机节点之间的通信,可以降低入门者的难度,为以后的深入研究打下基础。
单网卡时,我们可以使用一种混杂模式, public网络的接口 和flat网络的接口作为单节点的网络接口 。不过建立的网络与双网卡类似,都分为flat网络和public网络。使用单网卡,需要建立eth0模式, 在nova.conf中使public_interface和flat_interface的接口。并且重启网络,让修改生效:
# /etc/init.d/networking restart
1.4 安装 OS
Openstack 开始部分、基本部分都是来自Stackops, 我们在搭建Openstack的服务平台的时候。通常下载一个iso,安装通用的ubuntu系统,然后运转建立到普通的的web,在运行过程中不断的调整配置参数,我们在运行过程中不断的对chef分布调整。更新源里的包,更新系统。 注意先后顺序,调整数据包。
1.5 配置 SecureCRT
sshd_config 是 ssh 的配置文件,其中有一个选项PermitRootLogin 用来配置是否允许 root 用户登录,默认的without-password 表示不允许使用密码进行全登录认证,yes 则是允许 root 登录。
1.6 安装 bridge
# apt-get install bridge-utils
重启网络或者重启一下机器都可以:
# /etc/init.d/networking restart
1.7 设置 NTP
Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS 等等)做同步化,它可以提供高精准度的时间校正(LAN 上与标准间差小于1 毫秒,WAN 上几十毫秒),且可借由加密确认的方式来防止恶毒的协议攻击。
2 安装 mysql 和创建相关数据库
OpenStack 云平台的组件:nova,keystone,glance,都需要数
据库。
2.1 安装 mysql
安装过程中,会提示输入 root 密码。(设置为 openstack)
# apt-get install -y mysql-server python-mysqldb 耗时长
2.2 安装 phpmyadmin(mysql 数据库的管理软件)
安装 phpmyadmin,是为了可以比较方便管理数据库:
# apt-get install phpmyadmin
安装的时候,首先出现图形化界面,选择第一个 apache(按空格键,出现*符号,表示已经选中);接着提示是输入 mysql 数据库root 用户的密码。
2.3 创建数据库
nova 数据库, 管理员:novadbadmin, 密码是:openstack
glance 数据库, 管理员:glancedbadmin, 密码是:openstack
keystone 数据库, 管理员:keystonedbadmin,密码是:openstack
3 安装和配置 keystone(认证服务)
OpenStack中的所有组件可以称为服务,比如keystone、swift、nova等,服务的功能多有不同,swift负责存储数据对象,nova管理计算实例的生命周期,keystone为其他服务提供认证和授权等,而有些服务是属于共享范畴的,比如Keystone,为OpenStack中的所有其他服务管理者endpoint的目录,并负责认证和授权。 理解为访问OpenStack中所有服务的请求都需要通过keystone的认证和授权, Keystone守卫者的功能比较突出,进入其中的访客都需要经过的检查,认可了才可以进入其中。 系统的概括Keystone职责为:
1)跟踪用户及其权限
2)提供可用服务及它们API端点的目录
基本过程为:
1) 安装 keystone
2)配置 keystone
3)创建服务
# keystone service-create --name keystone --type identity
--description OPENSTACK Identity Service
4)验证安装
安装完后对用户名和密码进行设置验证
4 安装和配置 glance
4.1 安装软件
利用apt install安装glance
4.2 配置glance-api-paste.ini
# vi编辑修改文件参数
admin_tenant_name = %租户服务名称%
admin_user = %用户名%
admin_password = %服务密码 %
4.3 设置 / glance-registry-paste.ini参数
# vi / 存储目录下的glance-registry-paste.ini文件
修改方式和上面租户的修改方式一样
4.4 配置/etc/glance/glance-registry.conf
# vi /etc/glance/glance-registry.conf
4.5 配置/etc/glance/glance-api.conf
# vi /etc/glance/glance-api.conf
4.6 同步数据库
先安装 phpmyadmin ,因为glance 需要手工同步数据库 , 确认 glance 数据库内容为空。
#显示版本号
# glance-manage 显示版本名称
重启服务:
# service glance-api restart 激活系统,
运行以下命令,没有任何的输出。表示正常。
# glance index
# glance --version
输出结果:glance 2012.1
4.7 下载镜像并上传(可以上传本地镜像,不用下载。)
上传镜像:
# glance add name="Ubuntu 12.04 cloudimg amd64" is_public=true
container_format=ovf disk_format=qcow2 <
/root/precise-server-cloudimg-amd64-disk1.img
上传完镜像后,运行
# glance index
就可以看到上传的 image。
5 nova安装和服务配置
5.1 安装和设置nova及参数
使用apt-get命令安装以下组件: install nova-api、nova-cert、nova-common、nova-compute-kvm、nova-doc、nova-network、nova-objectstore、nova-scheduler、nova-volume、python-nova、python-novaclient、nova-consoleauth、python-novnc、novnc
5.2 配置 /etc/nova/nova.conf(重点)
# vi /etc/nova/nova.conf
5.3 配置/etc/nova/api-paste.ini
# vi /etc/nova/api-paste.ini
5.4 停止和重启 nova 相关服务
5.5 同步数据库
# nova-manage db sync
如出现图示中,则为正常。
创建网络
再重启相关服务:
5.6 检查 nova 服务
# nova list
# nova image-list
# nova floating-ip-create
#nova-manage service list
(state 的状态为笑脸表示该服务正常)
6 安装和配置 Dashbaord UI 界面
6.1 安装 dashbaord
# apt-get install libapache2-mod-wsgi openstack-dashboard
6.2 重启服务
# service apache2 restart
这个时候,就可以登录 dashboard:
http://192.168.1.110
user:admin password:openstack
以下部分不用执行:
添加用户角色到租户中:
1)添加环境变量
# echo "export MYSQL_URL=192.168.1.110" >>.bashrc
# echo "export MYSQL_USERNAME=keystonedbadmin" >>.bashrc
# echo "export MYSQL_PASSWORD=openstack" >>.bashrc
# echo "export MYSQL_DATABASE=keystone" >>.bashrc
2)使环境变量生效
# source .bashrc // 重新加载配置文件
3)调用编写python 脚本
我们在实际开发过程中会感觉到Java会比Python写得快。当你都掌握Java和Python这两门脚本编写方法之后。会感觉两者各有长处,有的时候发现用Python写这类程序的速度比用Java还要快。其实用Python在处理简短程序与操作系统的交互编程工作方面感觉更加省时省力。
7 结束语
作为一名走上工作岗位十几年的计算机方向的教师,虽然已经具备了一定的专业知识技能,但是对于新的知识,新技能,新技术的学习上,存在有一定的差距。深深感受到技术的进步,社会的发展,IT行业的飞速发展。通过这段时间的学习, 通过培训几门课程的学习,收获很大,以前一些“云计算”认识模糊的问题,现在搞清楚了,从前对于“大数据”模糊概念,现在有了深切的体验,如今也找到了理论支持,更为重要的是,我深深体会到,IT技术确是一门艺术,一门大学问,值得我用一生的精力去钻研。通过培训,我得到了很大的收获。
参考文献:
[1] 熊振华. 基于OPENSTACK云存储技术的研究[D]. 长春: 吉林大学, 2014.
[2] 郑路路. 基于OpenStack的资源调度算法研究[D]. 北京: 北京工业大学, 2014.
[3] 王霄飞. 基于OpenStack构建私有云计算平台[D]. 广州: 华南理工大学, 2012.
[4] 陈恂. OpenStack平台的虚拟机调度关键技术研究[D]. 杭州: 杭州电子科技大学, 2014.
[5] 付勋. 基于OpenStack的云平台调度算法设计与实现[D]. 北京: 北京邮电大学, 2014.
[6] 余海涛. 基于OpenStack开源云平台的网络模型研究[D]. 长春: 吉林大学, 2014.