openstack【Kilo】入门 【nova篇】十二:安装配置nova
问题导读
1.本文配置需要注意哪些问题?
2.libvirt什么情况下由QEMU 代替KVM?
3.MANAGEMENT_INTERFACE_IP_ADDRESS代表的含义是什么?
安装 和 配置控制节点
配置准备
1.创建数据库,完成下面内容
a.作为root登录mysql
[Bash shell] 纯文本查看 复制代码
1
|
mysql
-u root -p
|
b.创建nova数据库
[Bash shell] 纯文本查看 复制代码
1
|
CREATE
DATABASE nova;
|
c.授权访问nova数据库
[Bash shell] 纯文本查看 复制代码
1
2
3
4
|
GRANT
ALL PRIVILEGES ON nova.* TO 'nova' @ 'localhost' \
IDENTIFIED
BY 'NOVA_DBPASS' ;
GRANT
ALL PRIVILEGES ON nova.* TO 'nova' @ '%' \
IDENTIFIED
BY 'NOVA_DBPASS' ;
|
NOVA_DBPASS替换为自己的密码
d.退出数据库
[Bash shell] 纯文本查看 复制代码
1
|
exit
|
2.生效admin用户名
[Bash shell] 纯文本查看 复制代码
1
|
source admin-openrc.sh
|
3.创建keystone认证,完成下面内容
a.创建nova用户
[Bash shell] 纯文本查看 复制代码
1
|
openstack
user create --password-prompt nova
|
b.添加admin 角色到nova用户
[Bash shell] 纯文本查看 复制代码
1
|
openstack
role add --project service --user nova admin
|
c.创建nova 服务实例
[Bash shell] 纯文本查看 复制代码
1
2
|
openstack
service create --name nova \
--description "OpenStack
Compute"
compute
|
4.创建nova 服务 API endpoint:
[Bash shell] 纯文本查看 复制代码
1
2
3
4
5
6
|
openstack
endpoint create \
--publicurl
http: //controller :8774 /v2/ %\(tenant_id\)s
\
--internalurl
http: //controller :8774 /v2/ %\(tenant_id\)s
\
--adminurl
http: //controller :8774 /v2/ %\(tenant_id\)s
\
--region
RegionOne \
compute
|
安装配置计算控制节点组件【控制节点】
1.安装nova
[Bash shell] 纯文本查看 复制代码
1
2
|
apt-get install nova-api
nova-cert nova-conductor nova-consoleauth \
nova-novncproxy
nova-scheduler python-novaclient -y
|
2.修改配置/etc/nova/nova.conf文件,完成下面内容
a.添加[database] 部分,配置数据库连接
[Bash shell] 纯文本查看 复制代码
1
2
3
|
记得密码替换为自己设置密码,这是mysql的密码,并非nova用户的密码
b.在[DEFAULT] 和 [oslo_messaging_rabbit] 部分,配置RabbitMQ 消息队列访问
[Bash shell] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
9
|
[DEFAULT]
...
rpc_backend
= rabbit
[oslo_messaging_rabbit]
...
rabbit_host
= controller
rabbit_userid
= openstack
rabbit_password
= RABBIT_PASS
|
c. 在[DEFAULT] 和 [keystone_authtoken] 部分,Identity service 访问:
[Bash shell] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
[DEFAULT]
...
auth_strategy
= keystone
[keystone_authtoken]
...
auth_uri
= http: //controller :5000
auth_url
= http: //controller :35357
auth_plugin
= password
project_domain_id
= default
user_domain_id
= default
project_name
= service
username
= nova
password
= NOVA_PASS
|
NOVA_PASS替换为自己的密码,这里设置的密码为123
[Bash shell] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
|
auth_uri
= http: //controller :5000
auth_url
= http: //controller :35357
auth_plugin
= password
project_domain_id
= default
user_domain_id
= default
project_name
= service
username
= nova
password
= 123
|
注释或则删除在 [keystone_authtoken] 部分的选项.
d.在 [DEFAULT] 部分,使用控制节点管理网络ip地址配置my_ip
[Bash shell] 纯文本查看 复制代码
1
2
3
|
[DEFAULT]
...
my_ip
= 10.0.0.11
|
e.在 [DEFAULT]部分,使用控制节点管理网络ip地址配置 VNC proxy
[Bash shell] 纯文本查看 复制代码
1
2
3
4
|
[DEFAULT]
...
vncserver_listen
= 10.0.0.11
vncserver_proxyclient_address
= 10.0.0.11
|
f.在 [glance] 部分, 配置镜像服务位置
[Bash shell] 纯文本查看 复制代码
1
2
3
|
[glance]
...
host
= controller
|
g.在 [oslo_concurrency]部分,配置 lock 路径:
[Bash shell] 纯文本查看 复制代码
1
2
3
|
[oslo_concurrency]
...
lock_path
= /var/lib/nova/tmp
|
h.在[DEFAULT]部分启用日志信息详细记录
[Bash shell] 纯文本查看 复制代码
1
2
3
|
[DEFAULT]
...
verbose
= True
|
3.同步数据库
[Bash shell] 纯文本查看 复制代码
1
|
su -s
/bin/sh -c
"nova-manage
db sync"
nova
|
遇到No handlers could be found for logger "oslo_config.cfg"
下面有解决办法
完成安装
1.重启计算服务
[Bash shell] 纯文本查看 复制代码
1
2
3
4
5
6
|
service
nova-api restart
service
nova-cert restart
service
nova-consoleauth restart
service
nova-scheduler restart
service
nova-conductor restart
service
nova-novncproxy restart
|
2.如果存在SQLite 数据库,则删除
[Bash shell] 纯文本查看 复制代码
1
|
rm -f
/var/lib/nova/nova .sqlite
|
##############################################
安装配置【计算节点】
1.安装nova
[Bash shell] 纯文本查看 复制代码
1
|
apt-get install nova-compute
sysfsutils -y
|
2.编辑文件 /etc/nova/nova.conf完成下面内容
a.在 [DEFAULT] 和 [oslo_messaging_rabbit]部分,配置RabbitMQ 消息队列服务
[Bash shell] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
9
|
[DEFAULT]
...
rpc_backend
= rabbit
[oslo_messaging_rabbit]
...
rabbit_host
= controller
rabbit_userid
= openstack
rabbit_password
= RABBIT_PASS
|
替换为自己的设置密码RABBIT_PASS
b.在 [DEFAULT] 和 [keystone_authtoken] 部分, 配置 Identity service 访问:
[Bash shell] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
[DEFAULT]
...
auth_strategy
= keystone
[keystone_authtoken]
...
auth_uri
= http: //controller :5000
auth_url
= http: //controller :35357
auth_plugin
= password
project_domain_id
= default
user_domain_id
= default
project_name
= service
username
= nova
password
= NOVA_PASS
|
NOVA_PASS 替换为自己设置密码。这里为123
注意:在 [keystone_authtoken] 部分,注释掉或移除其它内容.
c.在[DEFAULT] 部分,配置my_ip 选项
[Bash shell] 纯文本查看 复制代码
1
2
3
|
[DEFAULT]
...
my_ip
= MANAGEMENT_INTERFACE_IP_ADDRESS
|
MANAGEMENT_INTERFACE_IP_ADDRESS这里是计算节点管理网络ip地址 10.0.0.31
d. 在[DEFAULT]部分,启用和配置remote console 访问:
[Bash shell] 纯文本查看 复制代码
1
2
3
4
5
6
|
[DEFAULT]
...
vnc_enabled
= True
vncserver_listen
= 0.0.0.0
vncserver_proxyclient_address
= MANAGEMENT_INTERFACE_IP_ADDRESS
novncproxy_base_url
= http: //controller :6080 /vnc_auto .html
|
MANAGEMENT_INTERFACE_IP_ADDRESS替换为计算节点管理网络ip地址这里是10.0.0.31
注意:如果通过浏览器访问,不能解析hostname controller ,则使用管理网络ip,代替controller
e.在[glance]部分,配置glance服务位置
[Bash shell] 纯文本查看 复制代码
1
2
3
|
[glance]
...
host
= controller
|
f.在[oslo_concurrency] 部分, 配置 lock 路径:
[Bash shell] 纯文本查看 复制代码
1
2
3
|
[oslo_concurrency]
...
lock_path
= /var/lib/nova/tmp
|
g.启用日志详细信息记录
[Bash shell] 纯文本查看 复制代码
1
2
3
|
[DEFAULT]
...
verbose
= True
|
完成安装
1.决定计算节点是否支持虚拟机的硬件加速:
[Bash shell] 纯文本查看 复制代码
1
|
egrep -c
'(vmx|svm)' /proc/cpuinfo
|
如果输出值是1或则比这更大,则不需要额外配置
如果是0,计算节点不支持硬件加速,你必须配置libvirt 为QEMU ,代替KVM
a. 编辑文件/etc/nova/nova-compute.conf在 [libvirt]
[Bash shell] 纯文本查看 复制代码
1
2
3
|
[libvirt]
...
virt_type
= qemu
|
2.重启计算服务
[Bash shell] 纯文本查看 复制代码
1
|
service
nova-compute restart
|
3.如果存在SQLite 数据,则删除
[Bash shell] 纯文本查看 复制代码
1
|
rm -f
/var/lib/nova/nova .sqlite
|
验证安装【控制节点】
1.生效环境变量
[Bash shell] 纯文本查看 复制代码
1
|
source admin-openrc.sh
|
2.目录服务组件来验证每个进程的成功创建和注册:
[Bash shell] 纯文本查看 复制代码
1
|
nova
service-list
|
[Bash shell] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
9
|
+----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
|
Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
|
1 | nova-conductor | controller | internal | enabled | up | 2014-09-16T23:54:02.000000 | - |
|
2 | nova-consoleauth | controller | internal | enabled | up | 2014-09-16T23:54:04.000000 | - |
|
3 | nova-scheduler | controller | internal | enabled | up | 2014-09-16T23:54:07.000000 | - |
|
4 | nova-cert | controller | internal | enabled | up | 2014-09-16T23:54:00.000000 | - |
|
5 | nova-compute | compute1 | nova | enabled | up | 2014-09-16T23:54:06.000000 | - |
+----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
|
这个输出显示四个服务在控制节点启用,一个服务在计算节点
3.列出API endpoints 在 Identity service核实身份验证连接服务
这是官网给出的,似乎有问题。
[Bash shell] 纯文本查看 复制代码
1
|
nova
endpoints
|
[Bash shell] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
+-----------+------------------------------------------------------------+
|
nova | Value |
+-----------+------------------------------------------------------------+
| id |
1fb997666b79463fb68db4ccfe4e6a71 |
|
interface | public |
|
region | RegionOne |
|
region_id | RegionOne |
|
url | http: //controller :8774 /v2/ae7a98326b9c455588edd2656d723b9d |
+-----------+------------------------------------------------------------+
+-----------+------------------------------------------------------------+
|
nova | Value |
+-----------+------------------------------------------------------------+
| id |
bac365db1ff34f08a31d4ae98b056924 |
|
interface | admin |
|
region | RegionOne |
|
region_id | RegionOne |
|
url | http: //controller :8774 /v2/ae7a98326b9c455588edd2656d723b9d |
+-----------+------------------------------------------------------------+
+-----------+------------------------------------------------------------+
|
nova | Value |
+-----------+------------------------------------------------------------+
| id |
e37186d38b8e4b81a54de34e73b43f34 |
|
interface | internal |
|
region | RegionOne |
|
region_id | RegionOne |
|
url | http: //controller :8774 /v2/ae7a98326b9c455588edd2656d723b9d |
+-----------+------------------------------------------------------------+
+-----------+----------------------------------+
|
glance | Value |
+-----------+----------------------------------+
| id |
41ad39f6c6444b7d8fd8318c18ae0043 |
|
interface | admin |
|
region | RegionOne |
|
region_id | RegionOne |
|
url | http: //controller :9292
|
+-----------+----------------------------------+
+-----------+----------------------------------+
|
glance | Value |
+-----------+----------------------------------+
| id |
50ecc4ce62724e319f4fae3861e50f7d |
|
interface | internal |
|
region | RegionOne |
|
region_id | RegionOne |
|
url | http: //controller :9292
|
+-----------+----------------------------------+
+-----------+----------------------------------+
|
glance | Value |
+-----------+----------------------------------+
| id |
7d3df077a20b4461a372269f603b7516 |
|
interface | public |
|
region | RegionOne |
|
region_id | RegionOne |
|
url | http: //controller :9292
|
+-----------+----------------------------------+
+-----------+----------------------------------+
|
keystone | Value |
+-----------+----------------------------------+
| id |
88150c2fdc9d406c9b25113701248192 |
|
interface | internal |
|
region | RegionOne |
|
region_id | RegionOne |
|
url | http: //controller :5000 /v2 .0
|
+-----------+----------------------------------+
+-----------+----------------------------------+
|
keystone | Value |
+-----------+----------------------------------+
| id |
cecab58c0f024d95b36a4ffa3e8d81e1 |
|
interface | public |
|
region | RegionOne |
|
region_id | RegionOne |
|
url | http: //controller :5000 /v2 .0
|
+-----------+----------------------------------+
+-----------+----------------------------------+
|
keystone | Value |
+-----------+----------------------------------+
| id |
fc90391ae7cd4216aca070042654e424 |
|
interface | admin |
|
region | RegionOne |
|
region_id | RegionOne |
|
url | http: //controller :35357 /v2 .0
|
+-----------+----------------------------------+
|
在修改了admin-openrc.sh会返回如下内容:
[Bash shell] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
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
|
+-----------+------------------------------------------------------------+
|
nova | Value |
+-----------+------------------------------------------------------------+
| id |
01200ef9404b4498984ffd64a1632787 |
|
interface | public |
|
region | RegionOne |
|
region_id | RegionOne |
|
url | http: //controller :8774 /v2/0505899607a742ccbc98541d896e6437 |
+-----------+------------------------------------------------------------+
+-----------+----------------------------------+
|
keystone | Value |
+-----------+----------------------------------+
| id |
4811552dd697443cb6627ace8ee5fa2d |
|
interface | public |
|
region | RegionOne |
|
region_id | RegionOne |
|
url | http: //controller :5000 /v2 .0
|
+-----------+----------------------------------+
+-----------+----------------------------------+
|
glance | Value |
+-----------+----------------------------------+
| id |
03165d89ee154452a9fad0d4df876bc4 |
|
interface | internal |
|
region | RegionOne |
|
region_id | RegionOne |
|
url | http: //controller :9292
|
+-----------+----------------------------------+
+-----------+----------------------------------+
|
neutron | Value |
+-----------+----------------------------------+
| id |
180db82ef2db4946b9872af0b1743bd7 |
|
interface | admin |
|
region | RegionOne |
|
region_id | RegionOne |
|
url | http: //controller :9696
|
+-----------+----------------------------------+
|
4.列出 镜像 在 Image service 目录验证连接 Image service:
[Bash shell] 纯文本查看 复制代码
1
|
nova
image-list
|
[Bash shell] 纯文本查看 复制代码
1
2
3
4
5
|
+--------------------------------------+---------------------+--------+--------+
|
ID | Name | Status | Server |
+--------------------------------------+---------------------+--------+--------+
|
38047887-61a7-41ea-9b49-27987d5e8bb9 | cirros-0.3.3-x86_64 | ACTIVE | |
+--------------------------------------+---------------------+--------+--------+
|
###########################################
遇到问题:
su -s /bin/sh -c "nova-manage db sync" nova
No handlers could be found for logger "oslo_config.cfg"
原因:
日志文件的配置项错误
解决办法:
修改logdir为log_dir=/var/log/nova
————————————————————————————————————
ERROR (EndpointNotFound): publicURL endpoint for compute service not found
原先endpoint被删除了
创建后:
总结:
在删除service的时候,endpoint会自动删除。他们之间是级联删除的
————————————————————————————————————
WARNING: nova has no endpoint in ! Available endpoints for this service:
此警告不影响安装,可以忽略