前言:

本文转自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
2
3
4
CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_placement;
CREATE DATABASE nova_cell0;

3、授权

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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
2
3
4
5
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 user
openstack 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
2
3
4
5
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.conf
mv /etc/nova/nova.conf /etc/nova/nova.conf.bak

3、vim /etc/nova/nova.conf,新建nova.conf内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
[DEFAULT]
# define own IP
my_ip = 192.168.56.110
state_path = /var/lib/nova
enabled_apis = osapi_compute,metadata
log_dir = /var/log/nova
# RabbitMQ connection info
transport_url = rabbit://openstack:openstack@controller [api]
auth_strategy = keystone # Glance connection info
[glance]
api_servers = http://controller:9292 [oslo_concurrency]
lock_path = $state_path/tmp # MariaDB connection info
[api_database]
connection = mysql+pymysql://nova:openstack@controller/nova_api [database]
connection = mysql+pymysql://nova:openstack@controller/nova # Keystone auth info
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = openstack [placement]
auth_url = http://controller:5000
os_region_name = RegionOne
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = placement
password = openstack [placement_database]
connection = mysql+pymysql://nova:openstack@controller/nova_placement [wsgi]
api_paste_config = /etc/nova/api-paste.ini

4、更改权限
chmod 640 /etc/nova/nova.conf

chgrp nova /etc/nova/nova.conf

5、生成数据库表结构

1
2
3
4
su -s /bin/bash nova -c "nova-manage api_db sync"
su -s /bin/bash nova -c "nova-manage cell_v2 map_cell0"
su -s /bin/bash nova -c "nova-manage db sync"
su -s /bin/bash nova -c "nova-manage cell_v2 create_cell --name cell1"

完成后查看日志:tail /var/log/nova/nova-manage.log
不放心的话,就登录数据库查看数据。

6、验证一下cell0和cell1是否被正确注册
nova-manage cell_v2 list_cells

7、重启服务,完成安装

1
2
3
for service in api conductor scheduler consoleauth novncproxy; do
systemctl restart nova-$service
done

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.conf
mv /etc/nova/nova.conf /etc/nova/nova.conf.bak

3、vim /etc/nova/nova.conf,新建nova.conf内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
[DEFAULT]
# define own IP address
my_ip = 192.168.56.111
state_path = /var/lib/nova
enabled_apis = osapi_compute,metadata
log_dir = /var/log/nova
# RabbitMQ connection info
transport_url = rabbit://openstack:openstack@controller [api]
auth_strategy = keystone # enable VNC
[vnc]
enabled = True
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html # Glance connection info
[glance]
api_servers = http://controller:9292 [oslo_concurrency]
lock_path = $state_path/tmp # Keystone auth info
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = openstack [placement]
auth_url = http://controller:5000
os_region_name = RegionOne
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = placement
password = openstack [wsgi]
api_paste_config = /etc/nova/api-paste.ini

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
2
3
[libvirt]
# ...
virt_type = qemu

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
2
[scheduler]
discover_hosts_in_cells_interval = 300

验证操作

以下操作在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
2
3
4
5
6
# enable VNC
[vnc]
enabled = True
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html

3、硬件加速(可选)
egrep -c '(vmx|svm)' /proc/cpuinfo

如果看到大于等于1的数字,说明主机支持硬件加速,不需要额外的配置。

如果此命令返回零值,则计算节点不支持硬件加速,您必须将libvirt配置为使用QEMU而不是KVM。

编辑/etc/nova/nova-compute.conf文件,libvirt部分修改为:

1
2
3
[libvirt]
# ...
virt_type = qemu

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篇。。转的更多相关文章

  1. Ubuntu16手动安装OpenStack——glance篇--转

    全文转自https://www.voidking.com/dev-ubuntu16-manual-openstack-glance/ 目标 紧接着<Ubuntu16手动安装OpenStack—— ...

  2. Ubuntu16手动安装OpenStack——keystone篇

    本博客来自于https://www.voidking.com/dev-ubuntu16-manual-openstack-keystone/ 赶紧做笔记 keystone简介 OpenStack身份识 ...

  3. Ubuntu16手动安装OpenStack

    记录大佬的博客全文转载于https://www.voidking.com/dev-ubuntu16-manual-openstack-env/ 前言 <Ubuntu16安装OpenStack&g ...

  4. ubuntu16.0 安装 openstack

    主要参考官方文档:https://docs.openstack.org/liberty/zh_CN/install-guide-ubuntu/environment-nosql-database.ht ...

  5. 手动安装OpenStack Mistral

    Prepare packages: $ sudo apt-get install python-dev python-setuptools python-pip libffi-dev libxslt1 ...

  6. openstack奠基篇:devstack (liberty)于centos 7安装

    openstack是什么,能做什么,我就不说了,他的优势和伟大,可以想想AWS的云服务平台.学习和研究openstack(IaaS),个人的习惯是有一个可以操作的平台,然后结合代码看看详细逻辑,这个过 ...

  7. 云计算与OpenStack(虚拟机Nova篇)

    <云计算与OpenStack(虚拟机Nova篇)> 基本信息 作者: 伯龙 程志鹏 张杰 出版社:电子工业出版社 ISBN:9787121201202 上架时间:2013-8-5 出版日期 ...

  8. CentOS7安装OpenStack(Rocky版)-05.安装一个nova计算节点实例

    上一篇文章分享了控制节点的nova计算服务的安装方法,在实际生产环境中,计算节点通常会安装一些单独的节点提供服务,本文分享单独的nova计算节点的安装方法 ----------------  完美的分 ...

  9. CentOS7安装OpenStack(Rocky版)-04.安装Nova计算服务(控制节点)

    上一篇文章分享了glance镜像服务的安装配置,本文主要分享openstack的计算服务Nova的安装和配制方法 ------------------ 完美的分割线 ----------------- ...

随机推荐

  1. Keras mlp 手写数字识别示例

    #基于mnist数据集的手写数字识别 #构造了三层全连接层组成的多层感知机,最后一层为输出层 #基于Keras 2.1.1 Tensorflow 1.4.0 代码: import keras from ...

  2. 理解C/C++的复杂声明

      理解C/C++的复杂声明        曾经碰到过让你迷惑不解.类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复C/C ...

  3. Mac-安装Git以及Git的配置

    开始使用mac,发现真的不会用.最主要的是不熟悉,使用了才知道,mac默认是带了Git命令的. 原本使用Git生成一对密钥使用,生成的默认文件夹下面去了,与Windows一致,然后就找不到了. 打开命 ...

  4. kubernetes实战(三十):CentOS 8 二进制 高可用 安装 k8s 1.17.x

    1. 基本说明 本文章将演示CentOS 8二进制方式安装高可用k8s 1.17.x,相对于其他版本,二进制安装方式并无太大区别. 2. 基本环境配置 主机信息 192.168.1.19 k8s-ma ...

  5. javaweb-选课系统

    选课系统中用到了4个表,分别是classs.yonghu.teacher.student.在用户中存放管理员的信息name和password以及id,在另三个表中存放对应的数据如图: calss: t ...

  6. 急速搭建 Serverless AI 应用:为你写诗

    前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算 ...

  7. 【题解】Leyni,罗莉和队列(树状数组)

    [题解]Leyni,罗莉和队列(树状数组) HRBUST - 1356 将整个序列reverse一下,现在就变成了从高到低的排队.题目就变成了,定位一个妹子,问这个妹子前面的比这个妹子小的妹子中,下标 ...

  8. 洛谷训练新手村之“BOSS战-入门综合练习2”题解

    P1426 小鱼会有危险吗 题目链接:https://www.luogu.com.cn/problem/P1426 题目大意: 有一次,小鱼要从A处沿直线往右边游,小鱼第一秒可以游7米,从第二秒开始每 ...

  9. 「洛谷P1262」间谍网络 解题报告

    P1262 间谍网络 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意 ...

  10. Go合集,gRPC源码分析,算法合集

    年初时,朋友圈见到的最多的就是新的一年新的FlAG,年末时朋友圈最多的也是xxxx就要过去了,你的FLAG实现了吗? 这个公众号2016就已经创建了,但截至今年之前从来没发表过文章,现在想想以前很忙, ...