您的位置:首页 > 运维架构

OpenStack多节点安装(四):Compute

2017-07-08 12:59 387 查看
上篇文章讲述了如何安装镜像服务(Glance),本文将继续讲解如何搭建Openstack计算服务组件(Compute)。废话不多说,直接开始。(就是干!)

在安装和配置Compute服务之前,必须先完成数据库,服务凭证以及API endpoints的创建

1.创建数据库

mysql -u root -p

CREATE DATABASE nova_api;
CREATE DATABSE nova;
CREATE DATABASE nova_cell0;

GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';

GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';

GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';

GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';

GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';

GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';用合适的密码替换NOVA_DBPASS。
2. 创建服务凭证

. admin-openrc

openstack user create --domain default --password-prompt nova

openstack role add --project service --user nova admin

openstack service create --name nova \
--description "OpenStack Compute" compute

3. 创建API endpoints
openstack endpoint create --region RegionOne \
compute public http://192.168.152.166:8774/v2.1
openstack endpoint create --region RegionOne \
compute internal http://192.168.152.166:8774/v2.1
openstack endpoint create --region RegionOne \
compute admin http://192.168.152.166:8774/v2.1
4. 创建Placement service(过程类似上面的第2,3步,这里直接一次性给出运行命令)

openstack user create --domain default --password-prompt placement

openstack role add --project service --user placement admin

openstack service create --name placement --description "Placement API" placement

openstack endpoint create --region RegionOne placement public http://192.168.152.166:8778
openstack endpoint create --region RegionOne placement internal http://192.168.152.166:8778
openstack endpoint create --region RegionOne placement admin http://192.168.152.166:8778
5. 安装并配置组件
sudo apt install nova-api nova-conductor nova-consoleauth \
nova-novncproxy nova-scheduler nova-placement-api
编辑配置文件/etc/nova/nova.conf,在[api_database]和[databse]部分配置数据库连接

[api_database]
# ...
connection = mysql+pymysql://nova:NOVA_DBPASS@192.168.152.166/nova_api

[database]
# ...
connection = mysql+pymysql://nova:NOVA_DBPASS@192.168.152.166/nova
在[default]部分,配置RabbitMQ消息队列访问权限,配置my_ip,来使用控制节点的管理接口的ip地址以及启用网络服务支持

[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller
my_ip = 192.168.152.166
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver



在[api]和[keystone_authtoken]部分,设置identity service的访问控制

[api]
# ...
auth_strategy = keystone

[keystone_authtoken]
# ...
auth_uri = http://192.168.152.166:5000 auth_url = http://192.168.152.166:35357 memcached_servers = 192.168.152.166:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = NOVA_PASS 在[vnc]部分,配置VNC代理使用控制节点的管理接口IP地址
[vnc]
enabled = true
# ...
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip 在[glance]部分,配置镜像服务API的位置
[glance]
# ...
api_servers = http://192.168.152.166:9292 在[oslo_concurrency]部分,配置锁路径
[oslo_concurrency]
# ...
lock_path = /var/lib/nova/tmp 在[placement]部分,配置Placement API
[placement]
# ...
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:35357/v3 username = placement
password = PLACEMENT_PASS
初始化数据库
sudo su -s /bin/sh -c "nova-manage api_db sync" nova
注册cell0数据库
sudo su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
创建cell1 cell
sudo su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
同步数据库
sudo su -s /bin/sh -c "nova-manage db sync" nova

重启服务

sudo service nova-api restart
sudo service nova-consoleauth restart
sudo service nova-scheduler restart
sudo service nova-conductor restart
sudo service nova-novncproxy restart
以上操作均在控制节点上进行,接下讲述计算节点上的安装与配置

安装并配置组件

sudo apt install nova-compute

由于配置文件的修改与控制节点上类似,下面仅将不同的配置部分介绍一下,其它部分的配置均与控制节点上一样。
第一点,不用配置[database]部分

第二点,[default]部分中的my_ip配置为计算节点的管理IP地址,而不再是控制节点的管理IP地址

[DEFAULT]
# ...
my_ip = 192.168.152.167(我自己的计算节点的IP地址,替换成你自己的)
第三点,在[vnc]部分的配置如下:

[vnc]
# ...
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://192.168.152.166:6080/vnc_auto.html
完成安装
确定您的计算节点虚拟机是否支持硬件加速

egrep -c '(vmx|svm)' /proc/cpuinfo
如果这个命令返回了1或更大的值,那么无需额外的配置如果这个命令返回了0,那么说明你的计算节点不支持硬件加速,必须修改配置文件/etc/nova/nova-compute.conf,
在其[libvirt]部分,作如下修改:

[libvirt]
# ...
virt_type = qemu

重启服务
sudo service nova-compute restart

接下来讲解如何将刚才配置好的的计算节点添加到cell数据库中(在控制节点上进行操作):
. admin-openrc

openstack hypervisor list
sudo su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova



注意:当你添加新的计算节点时,必须在控制节点上运行nova-manage cell_v2 discover_hosts来注册这些计算节点。

验证计算服务(在控制节点上操作)

. admin-openrc

openstack compute service list
如果运行命令出现以下类似的效果,则证明计算服务安装成功:

+----+--------------------+------------+----------+---------+-------+----------------------------+
| Id | Binary | Host | Zone | Status | State | Updated At |
+----+--------------------+------------+----------+---------+-------+----------------------------+
| 1 | nova-consoleauth | controller | internal | enabled | up | 2016-02-09T23:11:15.000000 |
| 2 | nova-scheduler | controller | internal | enabled | up | 2016-02-09T23:11:15.000000 |
| 3 | nova-conductor | controller | internal | enabled | up | 2016-02-09T23:11:16.000000 |
| 4 | nova-compute | compute1 | nova | enabled | up | 2016-02-09T23:11:20.000000 |
+----+--------------------+------------+----------+---------+-------+----------------------------+
后面继续讲解如何安装网络服务组件(Neutron),坚持哈,胜利就在前方!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  OpenStack 云计算 Nova