Ubuntu16手动安装OpenStack——nova篇

目标

紧接着《Ubuntu16手动安装OpenStack——glance篇》,本文我们来安装nova,主要参考Compute serviceInstall and configure controller node for UbuntuInstall and configure a compute node for Ubuntu

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数据库

CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_placement; 
CREATE DATABASE nova_cell0;

3、授权

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

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服务端点

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内容为:

[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、生成数据库表结构

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

image

7、重启服务,完成安装

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

8、查看计算服务列表
openstack compute service list

image

计算节点

本节介绍如何在计算节点上安装和配置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内容为:

[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部分修改为:

[libvirt]
# ...
virt_type = qemu

6、重启nova-compute服务
systemctl restart nova-compute

添加计算节点到数据库

以下操作在controller节点操作。

1、使admin环境生效
. admin-openrc

2、查看计算服务列表
openstack compute service list

image

发现,此时已经多了nova-compute服务。

3、查看计算节点
openstack compute service list --service nova-compute

4、如果没有看到计算节点,那么需要查找计算节点,并且进行注册
su -s /bin/bash nova -c "nova-manage cell_v2 discover_hosts"

image

添加新的compute节点时,必须在控制器节点上运行nova-manage cell_v2 discover_hosts以注册这些新计算节点。或者,可以在/etc/nova/nova.conf中设置适当的间隔来自动发现和注册节点:

[scheduler]
discover_hosts_in_cells_interval = 300

验证操作

以下操作在controller节点操作。

1、使admin环境生效
. admin-openrc

2、列出服务组件,以验证每个进程的成功启动和注册
openstack compute service list

image

成功的话可以看到四个服务:nova-scheduler、nova-consoleauth、nova-conductor和nova-compute。

3、列出Identity服务中的API端点,以验证与Identity服务的连接
openstack catalog list

image

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

image

5、检查cells and placement API是否工作正常
nova-status upgrade check

image

控制节点安装计算服务

1、安装组件
apt -y install nova-compute-kvm

2、vim /etc/nova/nova.conf,添加vnc配置:

# 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部分修改为:

[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

image

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容