Ubuntu16手动安装OpenStack——nova篇。。转
前言:
本文转自https://www.voidking.com/dev-ubuntu16-manual-openstack-nova/ ,过程非常的详细,作者也说本实验最终失败,因为课程要求我们只要求做到nova,其实open stack还有很多的组件。前面搭建中都很成功没有遇到任何问题,但是在nova篇,安装组件的时候apt-get -y install nova-compute-kvm,获取nova,但重启nova-compute服务却没办法启动,反复看了下却没有nova服务。installopenstack-nova-compute 后通过这个命令下载nova,却无法定位软件包,按照常理换源即可,同学的也是换源便可以下载,但是我用和同学相同的源也没有成功解决这个问题。而老师给的指导书是只要求在客户机安装计算节点皆可。到这里openstack已经over,如果有想往下走的 请查看原文博主,因原文博主写的很详细,我便没有自己写,或许开始就弄一台Ubuntu和centos会便捷一点,版本推荐Ubuntu 16,14可能很多依赖没有,而18会经常遇到卡顿崩溃。注实验顺利。
nova简介
使用OpenStack Compute来托管和管理云计算系统。OpenStack Compute是基础架构即服务(IaaS)系统的主要部分。主要模块用Python实现。
OpenStack Compute与OpenStack Identity交互以进行身份验证;OpenStack 镜像服务用于磁盘和镜像管理;OpenStack Dashboard用于用户界面和管理界面。镜像访问受项目和用户的限制;配额受每个项目限制(例如,实例数)。OpenStack Compute可以在标准硬件上水平扩展,下载镜像,然后启动实例。
OpenStack Compute包含以下组件:
nova-api service
接受并响应终端用户compute API调用。该服务支持OpenStack Compute API。它强制执行某些策略并启动大多数活动,例如运行实例。
nova-api-metadata service
接受来自实例的元数据请求。在nova-network的多主机模式下运行时,通常会使用nova-api-metadata服务。
nova-compute service
通过虚拟机管理程序API,创建和终止虚拟机实例。例如:
- XenAPI for XenServer/XCP
- libvirt for KVM or QEMU
- VMwareAPI for VMware
处理相当复杂。基本上,nova-compute守护程序接受来自队列的操作,并执行一系列系统命令,例如启动KVM实例并更新其在数据库中的状态。
nova-placement-api service
跟踪每个provider的库存和使用情况。
nova-scheduler service
从队列中获取虚拟机实例请求,并确定它运行的计算服务器主机。
nova-conductor module
负责nova-compute服务和数据库之间的交互。它消除了nova-compute服务对云数据库的直接访问。nova-conductor module可以水平伸缩。不要将其部署在运行nova-compute服务的节点上。
nova-consoleauth daemon
在控制台代理为用户授权tokens,参见nova-novncproxy和nova-xvpvncproxy。必须运行此服务才能使控制台代理生效。可以针对群集配置中的单个nova-consoleauth服务运行任一类型的代理。
nova-novncproxy daemon
提供正在运行的实例的代理,该代理通过VNC连接访问。支持基于浏览器的novnc客户端。
nova-spicehtml5proxy daemon
提供正在运行的实例的代理,该代理通过SPICE连接访问。支持基于浏览器的HTML5客户端。
nova-xvpvncproxy daemon
提供正在运行的实例的代理,该代理通过VNC连接访问。支持OpenStack特定的Java客户端。
The queue
用于在守护进程之间传递消息的中央集线器。通常用RabbitMQ实现,也可以用另一个AMQP消息队列实现,比如ZeroMQ。
SQL database
存储云基础架构的大多数构建时和运行时状态,包括:
- Available instance types
- Instances in use
- Available networks
- Projects
从理论上讲,OpenStack Compute可以支持SQLAlchemy支持的任何数据库。常见的数据库是用于测试和开发工作的SQLite3,MySQL,MariaDB和PostgreSQL。
控制节点
root用户
为了避免权限问题,建议切换到root用户进行操作(否则要加很多sudo)。sudo -i
数据库
1、登录数据库mysql -uroot -p,密码为openstack。
2、创建nova_api,nova,nova_placement和nova_cell0数据库
1 |
CREATE DATABASE nova_api; |
3、授权
1 |
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova_placement.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova_placement.* TO 'nova'@'%' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'openstack'; |
4、退出数据库exit;
服务证书和端点
1、使admin环境生效. admin-openrc
2、创建nova用户openstack user create --domain default --password-prompt nova
根据提示设置密码为openstack。
3、添加admin角色给nova用户openstack role add --project service --user nova admin
4、创建nova服务实体openstack service create --name nova --description "OpenStack Compute" compute
5、创建计算服务API endpoints
1 |
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1 openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1 openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1 |
服务证书和端点2
1、创建Placement service useropenstack user create --domain default --password-prompt placement
按照提示设置密码为openstack。
2、添加Placement user到service project,并且赋予admin角色openstack role add --project service --user placement admin
3、创建placement服务实体openstack service create --name placement --description "Placement API" placement
4、创建Placement API服务端点
1 |
openstack endpoint create --region RegionOne placement public http://controller:8778 openstack endpoint create --region RegionOne placement internal http://controller:8778 openstack endpoint create --region RegionOne placement admin http://controller:8778 |
安装配置组件
1、安装组件apt-get -y install nova-api nova-placement-api nova-conductor nova-consoleauth nova-scheduler nova-novncproxy python-novaclient
2、备份nova.confmv /etc/nova/nova.conf /etc/nova/nova.conf.bak
3、vim /etc/nova/nova.conf,新建nova.conf内容为:
1 |
[DEFAULT] |
4、更改权限chmod 640 /etc/nova/nova.conf
chgrp nova /etc/nova/nova.conf
5、生成数据库表结构
1 |
su -s /bin/bash nova -c "nova-manage api_db sync" |
完成后查看日志:tail /var/log/nova/nova-manage.log
不放心的话,就登录数据库查看数据。
6、验证一下cell0和cell1是否被正确注册nova-manage cell_v2 list_cells
7、重启服务,完成安装
1 |
for service in api conductor scheduler consoleauth novncproxy; do |
8、查看计算服务列表openstack compute service list
计算节点
本节介绍如何在计算节点上安装和配置Compute服务,该服务支持多个虚拟机管理程序来部署实例或虚拟机(VM)。为简单起见,此配置使用Quick EMUlator(QEMU)虚拟机管理程序,和支持虚拟机硬件加速的KVM扩展。可以按照教程进行小改,以便水平扩展计算节点。
安装方法主要参考OpenStack Queens : Add Compute Nodes。
root用户
为了避免权限问题,建议切换到root用户进行操作(否则要加很多sudo)。sudo -i
安装配置
1、安装组件apt-get -y install nova-compute-kvm
2、备份nova.confmv /etc/nova/nova.conf /etc/nova/nova.conf.bak
3、vim /etc/nova/nova.conf,新建nova.conf内容为:
1 |
[DEFAULT] |
4、设置权限chmod 640 /etc/nova/nova.conf
chgrp nova /etc/nova/nova.conf
5、硬件加速(可选)egrep -c '(vmx|svm)' /proc/cpuinfo
如果看到大于等于1的数字,说明主机支持硬件加速,不需要额外的配置。
如果此命令返回零值,则计算节点不支持硬件加速,您必须将libvirt配置为使用QEMU而不是KVM。
编辑/etc/nova/nova-compute.conf文件,libvirt部分修改为:
1 |
[libvirt] |
6、重启nova-compute服务systemctl restart nova-compute
添加计算节点到数据库
以下操作在controller节点操作。
1、使admin环境生效. admin-openrc
2、查看计算服务列表openstack compute service list
发现,此时已经多了nova-compute服务。
3、查看计算节点openstack compute service list --service nova-compute
4、如果没有看到计算节点,那么需要查找计算节点,并且进行注册su -s /bin/bash nova -c "nova-manage cell_v2 discover_hosts"
添加新的compute节点时,必须在控制器节点上运行nova-manage cell_v2 discover_hosts以注册这些新计算节点。或者,可以在/etc/nova/nova.conf中设置适当的间隔来自动发现和注册节点:
1 |
[scheduler] |
验证操作
以下操作在controller节点操作。
1、使admin环境生效. admin-openrc
2、列出服务组件,以验证每个进程的成功启动和注册openstack compute service list
成功的话可以看到四个服务:nova-scheduler、nova-consoleauth、nova-conductor和nova-compute。
3、列出Identity服务中的API端点,以验证与Identity服务的连接openstack catalog list

4、列出镜像服务中的镜像,以验证与镜像服务的连接openstack image list

5、检查cells and placement API是否工作正常nova-status upgrade check
控制节点安装计算服务
1、安装组件apt -y install nova-compute-kvm
2、vim /etc/nova/nova.conf,添加vnc配置:
1 |
# enable VNC |
3、硬件加速(可选)egrep -c '(vmx|svm)' /proc/cpuinfo
如果看到大于等于1的数字,说明主机支持硬件加速,不需要额外的配置。
如果此命令返回零值,则计算节点不支持硬件加速,您必须将libvirt配置为使用QEMU而不是KVM。
编辑/etc/nova/nova-compute.conf文件,libvirt部分修改为:
1 |
[libvirt] |
4、重启nova-compute服务systemctl restart nova-compute
5、添加到数据库su -s /bin/bash nova -c "nova-manage cell_v2 discover_hosts"
6、查看计算节点openstack compute service list --service nova-compute
Ubuntu16手动安装OpenStack——nova篇。。转的更多相关文章
- Ubuntu16手动安装OpenStack——glance篇--转
全文转自https://www.voidking.com/dev-ubuntu16-manual-openstack-glance/ 目标 紧接着<Ubuntu16手动安装OpenStack—— ...
- Ubuntu16手动安装OpenStack——keystone篇
本博客来自于https://www.voidking.com/dev-ubuntu16-manual-openstack-keystone/ 赶紧做笔记 keystone简介 OpenStack身份识 ...
- Ubuntu16手动安装OpenStack
记录大佬的博客全文转载于https://www.voidking.com/dev-ubuntu16-manual-openstack-env/ 前言 <Ubuntu16安装OpenStack&g ...
- ubuntu16.0 安装 openstack
主要参考官方文档:https://docs.openstack.org/liberty/zh_CN/install-guide-ubuntu/environment-nosql-database.ht ...
- 手动安装OpenStack Mistral
Prepare packages: $ sudo apt-get install python-dev python-setuptools python-pip libffi-dev libxslt1 ...
- openstack奠基篇:devstack (liberty)于centos 7安装
openstack是什么,能做什么,我就不说了,他的优势和伟大,可以想想AWS的云服务平台.学习和研究openstack(IaaS),个人的习惯是有一个可以操作的平台,然后结合代码看看详细逻辑,这个过 ...
- 云计算与OpenStack(虚拟机Nova篇)
<云计算与OpenStack(虚拟机Nova篇)> 基本信息 作者: 伯龙 程志鹏 张杰 出版社:电子工业出版社 ISBN:9787121201202 上架时间:2013-8-5 出版日期 ...
- CentOS7安装OpenStack(Rocky版)-05.安装一个nova计算节点实例
上一篇文章分享了控制节点的nova计算服务的安装方法,在实际生产环境中,计算节点通常会安装一些单独的节点提供服务,本文分享单独的nova计算节点的安装方法 ---------------- 完美的分 ...
- CentOS7安装OpenStack(Rocky版)-04.安装Nova计算服务(控制节点)
上一篇文章分享了glance镜像服务的安装配置,本文主要分享openstack的计算服务Nova的安装和配制方法 ------------------ 完美的分割线 ----------------- ...
随机推荐
- 如何用python“优雅的”调用有道翻译?
前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js“斗争”的过程! 当然,本文仅 ...
- BZOJ 3166
BZOJ3196: Tyvj 1730 二逼平衡树 传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3196 题意: 1.查询k在区间内的排名 ...
- php二维数组转成一维数组
$arr是需要转换的数组集合 array_reduce($arr, 'array_merge', array());
- Oracle Net Manager 的使用方法(监听的配置方法)
一,在服务端配置oracle端口 win+R 输入netca 弹出如下窗口后 选择监听程序配置,点击下一步 二.配置端口后使用Telnet工具调试端口是否联通 在命令行输入telnet 服务器ip ...
- 基于MIG IP核的DDR3控制器(二)
上一节中,记录到了ddr控制器的整体架构,在本节中,准备把ddr控制器的各个模块完善一下. 可以看到上一节中介绍了DDR控制器的整体架构,因为这几周事情多,又要课设什么的麻烦,今天抽点时间把这个记录完 ...
- golang实现依赖注入
golang实现依赖注入 依赖注入是软件工程中经常使用到的一种技术,它提供了一种控制反转的机制,把控制权利交给了调用方.调用方来决定使用哪些参数,哪些对象来进行具体的业务逻辑. 它有几个好处: 1 它 ...
- JVM系列(三):java的垃圾回收机制
java垃圾回收机制介绍 上一篇讲述了JVM的内存模型,了解了到了绝大部分的对象是分配在堆上面的,我们在编码的时候并没有显示的指明哪些对象需要回收,但是程序在运行的过程中是会一直创建对象的,之所 ...
- 洛谷P1082 同余方程 题解
题目链接:https://www.luogu.com.cn/problem/P1082 题目大意: 求关于 \(x\) 的同余方程 ax≡1(mod b) 的最小正整数解. 告诉你 \(a,b\) 求 ...
- 1043 输出PATest (20 分)C语言
给定一个长度不超过 10^4的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest- 这样的顺序输出,并忽略其它字符.当然,六种字符的个数不一定是一样多的,若某种字符已经输 ...
- HTTP请求中的GET-POST方式
目录 一.前言部分(概念) 二.对比 GET 与 POST 二者最大的差异 GET 与 POST 请求本质上并无区别 深层了解:POST 请求产生两个数据包? 三.两种请求方式如何灵活使用? 四.常见 ...