openstack【Kilo】入门 【nova篇】十二:安装配置nova


问题导读


1.本文配置需要注意哪些问题?
2.libvirt什么情况下由QEMU 代替KVM?
3.MANAGEMENT_INTERFACE_IP_ADDRESS代表的含义是什么?


openstack【Kilo】入门 【nova篇】十二:安装配置nova

openstack【Kilo】入门 【nova篇】十二:安装配置nova



安装 和 配置控制节点

配置准备

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
sourceadmin-openrc.sh



3.创建keystone认证,完成下面内容

a.创建nova用户
[Bash shell] 纯文本查看 复制代码
?
1
openstack user create --password-prompt nova


openstack【Kilo】入门 【nova篇】十二:安装配置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

openstack【Kilo】入门 【nova篇】十二:安装配置nova


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


openstack【Kilo】入门 【nova篇】十二:安装配置nova

安装配置计算控制节点组件【控制节点】


1.安装nova
[Bash shell] 纯文本查看 复制代码
?
1
2
apt-getinstallnova-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
[database]
...
connection = mysql://nova:[email protected]/nova


记得密码替换为自己设置密码,这是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
这里的密码跟前面设置需要一致,这里使用的是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-getinstallnova-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
sourceadmin-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:

此警告不影响安装,可以忽略


openstack【Kilo】入门 【nova篇】十二:安装配置nova