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前的初始狀態從新安裝。
相關文章
相關標籤/搜索