OpenStack安装流程(juno版)- 添加计算服务(nova)

在controller节点上安装和配置

建立nova的数据库,服务证书和API端点

  1. 建立数据库:
    使用root身份进入数据库:
    $ mysql -u root -p

    建立nova数据库:
    <pre>CREATE DATABASE nova;</pre>html

    把nova数据库的访问权限赋予名为nova,来自任何主机地址的用户,并设定访问密码为NOVA_DBPASS(替换为合适的密码):
    <pre>GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';python

GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';</pre>mysql

退出数据库。sql

  1. 启动admin证书:
    $ source admin-openrc.sh
  2. 建立服务证书:
    建立nova用户:
    <pre>$ keystone user-create --name nova --pass NOVA_PASS
Property Value
email
enabled True
id 127790ae638a4ae08e09907d64972fb6
name nova
username nova

+----------+----------------------------------+</pre>
用合适的密码代替NOVA_PASS。数据库

admin角色赋予给nova用户:
$ keystone user-role-add --user nova --tenant service --role admin
这条命令不产生输出显示。api

建立nova服务实体:
<pre>$ keystone service-create --name nova --type compute \网络

--description "OpenStack Compute"
Property Value
description OpenStack Compute
enabled True
id 33b16e3a184f436da27b3655bfd2c336
name nova
type compute

+-------------+----------------------------------+</pre>curl

  1. 建立计算服务的API端点:
    <pre>$ keystone endpoint-create \

--service-id $(keystone service-list | awk '/ compute / {print $2}') \
--publicurl http://controller:8774/v2/%(tenant_id)s \
--internalurl http://controller:8774/v2/%(tenant_id)s \
--adminurl http://controller:8774/v2/%(tenant_id)s \ide

--region regionOne
Property Value
adminurl http://controller:8774/v2/%(tenant_id)s
id 91e19b234a6d4a61961ea6136b75e7a7
internalurl http://controller:8774/v2/%(tenant_id)s
publicurl http://controller:8774/v2/%(tenant_id)s
region regionOne
service_id 33b16e3a184f436da27b3655bfd2c336

+-------------+-----------------------------------------+</pre>测试

在controller节点上安装和配置nova组件

  1. 安装所需包:

# apt-get install nova-api nova-cert nova-conductor nova-consoleauth \
nova-novncproxy nova-scheduler python-novaclient

  1. 编辑# vi /etc/nova/nova.conf文件:

    [database]部分,设定数据库的访问选项:
    <pre>[database]

...
connection = mysql://nova:NOVA_DBPASS@controller/nova</pre>
NOVA_DBPASS为建立nova数据库时设立的密码。

[DEFAULT]部分,设定RabbitMQ的访问选项:
<pre>[DEFAULT]
...
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS
</pre>
RABBIT_PASS为RabbitMQ guest帐户的密码。

[DEFAULT] [keystone_authtoken] 部分,设定认证服务的访问选项:
<pre>[DEFAULT]
...
auth_strategy = keystone
</pre>
<pre>[keystone_authtoken]
...
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = nova
admin_password = NOVA_PASS
</pre>
NOVA_PASS为建立nova用户时使用的密码。在[keystone_authtoken]部分,注释掉 auth_host,auth_port,和auth_protocol的选项,由于identity_uri选项是直接代替它们的。

[DEFAULT]部分,设定my_ip选项,其值为controller节点在management网络中的IP地址:
<pre>[DEFAULT]
...
my_ip = 10.10.10.10
</pre>

[DEFAULT]部分,设定VNC proxy(Virtual Network Computer),其值为controller节点在management网络中的IP地址:
<pre>[DEFAULT]
...
vncserver_listen = 10.10.10.10
vncserver_proxyclient_address = 10.10.10.10
</pre>

[DEFAULT]部分,开启“详细输出日志”选项:
<pre>[DEFAULT]
...
verbose = True
</pre>

[glance]部分,设定镜像服务的位置:
<pre>[glance]
...
host = controller
</pre>

  1. 同步数据库:
    # nova-manage db sync

完成安装

  1. 重启计算服务:

# service nova-api restart
# service nova-cert restart
# service nova-consoleauth restart
# service nova-scheduler restart
# service nova-conductor restart
# service nova-novncproxy restart

  1. 删除Ubuntu默认产生的SQLite数据库:
    # rm -f /var/lib/nova/nova.sqlite

在compute节点上安装和配置

安装和配置计算服务的hypervisor组件:

  1. 安装所需包:

# apt-get install nova-compute sysfsutils

  1. 编辑# vi /etc/nova/nova.conf文件:

    [DEFAULT]部分,设定RabbitMQ的访问选项:
    <pre>[DEFAULT]

...
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS</pre>
RABBIT_PASS为RabbitMQ guest帐户的密码。

[DEFAULT] [keystone_authtoken] 部分,设定认证服务的访问选项:
<pre>[DEFAULT]
...
auth_strategy = keystone
</pre>
<pre>[keystone_authtoken]
...
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = nova
admin_password = NOVA_PASS
</pre>
NOVA_PASS为建立nova用户时使用的密码。在[keystone_authtoken]部分,注释掉 auth_host,auth_port,和auth_protocol的选项,由于identity_uri选项是直接代替它们的。

[DEFAULT]部分,设定my_ip选项:
<pre>[DEFAULT]
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
</pre>
MANAGEMENT_INTERFACE_IP_ADDRESS为compute节点在management网络中的IP地址,10.10.10.11。

[DEFAULT]部分,启用和配置远程控制台访问选项:
<pre>[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
</pre>
MANAGEMENT_INTERFACE_IP_ADDRESS为compute节点在management网络中的IP地址,10.10.10.11。

[DEFAULT]部分,开启“详细输出日志”选项:
<pre>[DEFAULT]
...
verbose = True
</pre>

[glance]部分,设定镜像服务的位置:
<pre>[glance]
...
host = controller
</pre>

完成安装

  1. 测试compute节点是否支持对虚拟机的硬件加速:

$ egrep -c '(vmx|svm)' /proc/cpuinfo
若是结果返回“1”或更大的值,说明compute节点支持硬件加速,不需作额外的设置。
若是返回“0”,则说明不支持硬件加速,需在libvirt选项里用QEMU代替KVM。
编辑# vi /etc/nova/nova-compute.conflibvirt部分:
<pre>[libvirt]
...
virt_type = qemu
</pre>

  1. 重启计算服务

# service nova-compute restart

  1. 删除Ubuntu默认产生的SQLite数据库:

# rm -f /var/lib/nova/nova.sqlite

验证操做

在controller节点上执行如下操做。

  1. 启动admin证书:

$ source admin-openrc.sh

  1. 确保计算服务每一个组件的服务都已成功启动:
    <pre>$ nova image-list
Id Binary Host Zone Status State Updated_at Disabled Reason
1 nova-cert controller internal enabled up 2015-11-26T05:30:46.000000 -
2 nova-consoleauth controller internal enabled up 2015-11-26T05:30:46.000000 -
3 nova-scheduler controller internal enabled up 2015-11-26T05:30:47.000000 -
4 nova-conductor controller internal enabled up 2015-11-26T05:30:47.000000 -
5 nova-compute compute nova enabled up 2015-11-26T05:30:49.000000 -

+----+------------------+------------+----------+---------+-------+----------------------------+-----------------+</pre>

  1. 检查计算服务与镜像服务和认证服务之间的链接:
    <pre>$ nova image-list
ID Name Status Server
6db9f9c9-4011-4cf5-a12b-dc70423ec0c3 cirros-0.3.3-x86_64 ACTIVE

+--------------------------------------+---------------------+--------+--------+</pre>

至此nova服务安装完毕。

安装时出现的问题及解决方法

  • 安装完成后,运行$ nova service-list命令后,全部服务的Status都是down,检查/etc/nova/下的log文件,发现有ERROR提示:“AMQP server controller:5672 closed the connection. Check login credentials:”。这个问题通常是因为RabbitMQ访问密码没设置对,核实/etc/nova/nova.conf文件中相应设置;若是核实完仍是出现上述现象,能够# rabbitmqctl change_password guest RABBIT_PASS重置RabbitMQ的访问密码,# service rabbitmq-server restart重启服务后再尝试。
  • 安装完成后,运行$ nova service-list命令后,controller节点上全部服务没有问题,compute节点上的计算服务是down的状态,通常重启compute节点上计算服务便可。也会出现上述操做仍是不起做用的状况,检查/etc/nova/下的log文件,发现ERROR提示:“AMQP server on controller:5672 is unreachable: [Errno 113] EHOSTUNREACH.”。说明仍是访问RabbitMQ出现了问题,最后发现是由于未知的缘由致使节点之间通讯中断了,相互之间不能ping通,这个未能找到解决方案,只能恢复到安装nova前的初始状态从新安装。
相关文章
相关标签/搜索