openstack(queens)多節點手動安裝(三):控制節點和計算節點nova組件的安裝

nova計算服務概述

nova是openstack中的核心組件之一,主要負責與計算相關的服務,如對虛擬機生命週期的管理。nova組件主要包括以下幾大服務:
1.nova-api服務:對外提供REST API服務,是nova服務的入口
2.nova-compute服務:提供計算服務,是nova中對虛擬機管理的核心服務,它可以通過調用不同Hypervisor的API來實現對虛擬機生命週期的管理。常見的Hypervisor有KVM,Xen和VMWare等。
3.nova-conductor服務:是nova中各個服務組件與數據庫交互的接口。nova架構設計中,因爲nova-compute服務經常需要更新數據,因此出於安全性和可擴展性的考慮,nova-compute不會直接訪問數據庫,而是通過nova-conductor來訪問數據庫。(其他的nova服務包括nova-api,nova-scheduler可以直接訪問數據庫)
4.nova-scheduler服務:提供對計算資源的調度,它提供了多種算法來應對不同場景下nova對資源的調度
5.nova-novncproxy服務:提供一個代理,用於訪問正在運行的實例,通過VNC協議,支持基於瀏覽器的novnc客戶端
6.nova-placement-api服務:Placement API 在 Newton 版本中被引入 Nova,主要用於跟蹤記錄 Resource Provider 的 Inventory 和 Usage,並使用不同的 Resource Classes 來標記資源類型。例如:一個 resource provider 可以是一個 compute node,一個 shared storage pool,或者是一個 IP allocation pool。
通常情況下,nova服務會部署於控制節點和計算節點上,其中nova-compute部署在計算節點,其他服務部署在控制節點。爲了後續能夠進行虛擬機在不同節點之間冷遷移和熱遷移的實驗,本次部署了兩個計算節點1和2,兩個計算節點的部署方法完全相同,所以nova的安裝部署教程主要分爲兩個部分,控制節點的安裝部署和計算節點的安裝部署。

控制節點nova的安裝部署

在數據庫中創建nova的表

mysql -uroot -pwwwwww
CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'nova';

創建nova和placement的user並綁定role,創建nova和placement服務

nova:

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

placement:

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

創建nova和placement服務的endpoint

nova:

openstack endpoint create --region RegionOne compute public http://控制節點主機名:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://控制節點主機名:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://控制節點主機名:8774/v2.1

placement

openstack endpoint create --region RegionOne placement public http://控制節點主機名:8778
openstack endpoint create --region RegionOne placement internal http://控制節點主機名:8778
openstack endpoint create --region RegionOne placement admin http://控制節點主機名:8778

安裝並配置nova組件

yum install -y openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api

編輯配置文件/etc/nova/nova.conf

cp /etc/nova/nova.conf /etc/nova/nova.conf.bak
vim /etc/nova/nova.conf
[DEFAULT]

enabled_apis = osapi_compute,metadata

transport_url = rabbit://openstack:wwwwww@控制節點主機名

my_ip = 控制節點ip

use_neutron = True

firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api_database]

connection = mysql://nova:nova@控制節點主機名/nova_api

[database]

connection = mysql://nova:nova@控制節點主機名/nova

[api]

auth_strategy = keystone

[keystone_authtoken]

auth_url = http://控制節點主機名:35357/v3
memcached_servers = 控制節點主機名:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova

[vnc]

enabled = true

server_listen = $my_ip

server_proxyclient_address = $my_ip

[glance]

api_servers = http://控制節點主機名:9292

[oslo_concurrency]

lock_path = /var/lib/nova/tmp

[placement]

os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://控制節點主機名:35357/v3
username = placement
password = placement

爲了實現對placement API的訪問,還需要在/etc/httpd/conf.d/00-nova-placement-api.conf添加如下配置並重啓httpd服務

<Directory /usr/bin>
   <IfVersion >= 2.4>
      Require all granted
   </IfVersion>
   <IfVersion < 2.4>
      Order allow,deny
      Allow from all
   </IfVersion>
</Directory>

systemctl restart httpd
systemctl status httpd

同步nova相關數據庫

# 填充nova-api數據庫(忽略此輸出中的任何棄用消息):
su -s /bin/sh -c “nova-manage api_db sync” nova

# 註冊cell0數據庫:
su -s /bin/sh -c “nova-manage cell_v2 map_cell0” nova

# 創建cell1單元格:
su -s /bin/sh -c “nova-manage cell_v2 create_cell --name=cell1 --verbose” nova

# 填充nova數據庫:
su -s /bin/sh -c “nova-manage db sync” nova

進入nova相關數據庫驗證是否寫入成功,此時nova庫中應該有110張表,nova-api庫中應該有32張表

完成安裝並啓動服務

systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

systemctl start openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

systemctl status openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

計算節點nova-compute的安裝部署

該服務支持多個虛擬機管理程序來部署實例或虛擬機(VM)。爲簡單起見,此配置使用Quick EMUlator(QEMU)虛擬機管理程序和支持虛擬機硬件加速的計算節點上的基於內核的VM(KVM)擴展。在傳統硬件上,此配置使用通用QEMU管理程序。您可以通過稍作修改來遵循這些說明,以使用其他計算節點水平擴展您的環境。爲了後續實驗虛擬機在不同計算節點的冷熱遷移,安裝部署了兩個計算節點,兩個節點的安裝部署步驟完全相同

安裝配置nova-compute服務

yum install openstack-nova-compute

修改/etc/nova/nova.conf的配置

cp /etc/nova/nova.conf /etc/nova/nova.conf.bak
vim /etc/nova/nova.conf
[DEFAULT]

enabled_apis = osapi_compute,metadata

transport_url = rabbit://openstack:wwwwww@控制節點主機名

my_ip = 本計算節點ip地址

use_neutron = true

firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api]

auth_strategy = keystone

[keystone_authtoken]

www_authenticate_uri = http://控制節點主機名:5000/
auth_url = http://控制節點主機名:35357/
memcached_servers = 控制節點主機名:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = nova

[vnc]

enabled = true
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
novncproxy_base_url = http://控制節點主機名:6080/vnc_auto.html

[glance]

api_servers = http://控制節點主機名:9292

[oslo_concurrency]

lock_path = /var/lib/nova/tmp

[placement]

region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://控制節點主機名:35357/v3
username = placement
password = placement

檢查計算節點是否支持虛擬機的硬件加速

egrep -c '(vmx|svm)' /proc/cpuinfo

如果返回值爲0,表明計算節點不支持虛擬機的硬件加速,需要在/etc/nova/nova.conf文件中修改如下配置

[libvirt]

virt_type = qemu

啓動nova-compute服務

systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service

將計算節點加入nova_cell數據庫

完成兩個計算節點的安裝配置後,在控制節點進行同步數據庫操作,將兩個節點加入nova_cell數據庫中

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

nova官方安裝文檔:https://docs.openstack.org/nova/train/install/get-started-compute.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章