openstack-ocata-計算服務4


一、  計算服務概覽
使用OpenStack計算服務來托管和管理雲計算系統。OpenStack計算服務是基礎設施即服務(IaaS)系統的主要部分,模塊主要由Python實現。
OpenStack計算組件請求OpenStack Identity服務進行認證;請求OpenStack Image服務提供磁盤鏡像;為OpenStack dashboard提供用戶與管理員接口。磁盤鏡像訪問限制在項目與用戶上;配額以每個項目進行設定(例如,每個項目下可以創建多少實例)。OpenStack組件可以在標准硬件上水平大規模擴展,並且下載磁盤鏡像啟動虛擬機實例。

OpenStack計算服務由下列組件所構成:
nova-api 服務
接收和響應來自最終用戶的計算API請求。此服務支持OpenStack計算服務API,Amazon EC2 API,以及特殊的管理API用於賦予用戶做一些管理的操作。它會強制實施一些規則,發起多數的編排活動,例如運行一個實例。
nova-api-metadata 服務
接受來自虛擬機發送的元數據請求。nova-api-metadata服務一般在安裝nova-network服務的多主機模式下使用。更詳細的信息,請參考OpenStack管理員手冊中的鏈接`Metadata service <http://docs.openstack.org/admin-guide/compute-networking-nova.html#metadata-service>`__ in the OpenStack Administrator Guide。
nova-compute服務
一個持續工作的守護進程,通過Hypervior的API來創建和銷毀虛擬機實例。
例如:
XenServer/XCP 的 XenAPI
KVM 或 QEMU 的 libvirt
VMware 的 VMwareAPI
過程是蠻復雜的。最為基本的,守護進程同意了來自隊列的動作請求,轉換為一系列的系統命令如啟動一個KVM實例,然后,到數據庫中更新它的狀態。
nova-placement-api 服務
跟蹤每個提供者的庫存和使用情況。see Placement API。
nova-scheduler服務
拿到一個來自隊列請求虛擬機實例,然后決定那台計算服務器主機來運行它。
nova-conductor模塊
媒介作用於nova-compute服務與數據庫之間。它排除了由nova-compute服務對雲數據庫的直接訪問。nova-conductor模塊可以水平擴展。但是,不要將它部署在運行nova-compute服務的主機節點上。參考Configuration Reference Guide <http://docs.openstack.org/mitaka/config-reference/compute/conductor.html> 。
nova-cert模塊
服務器守護進程向Nova Cert服務提供X509證書。用來為euca-bundle-image生成證書。僅僅是在EC2 API的請求中使用
nova-consoleauth 守護進程
授權控制台代理所提供的用戶令牌。詳情可查看``nova-novncproxy``和 nova-xvpvncproxy。該服務必須為控制台代理運行才可奏效。在集群配置中你可以運行二者中任一代理服務而非僅運行一個nova-consoleauth服務。更多關於nova-consoleauth的信息,請查看`About nova-consoleauth <http://docs.openstack.org/admin-guide/compute-remote-console-access.html#about-nova-consoleauth>。
nova-novncproxy 守護進程
提供一個代理,用於訪問正在運行的實例,通過VNC協議,支持基於瀏覽器的novnc客戶端。
nova-spicehtml5proxy 守護進程
提供一個代理,用於訪問正在運行的實例,通過 SPICE 協議,支持基於瀏覽器的 HTML5 客戶端。
nova-xvpvncproxy 守護進程
提供一個代理,用於訪問正在運行的實例,通過VNC協議,支持OpenStack特定的Java客戶端。
The queue隊列
守護進程間傳遞信息的中心。通常用RabbitMQ實現,也可以使用另一個AMQP消息隊列來實現,比如ZeroMQ。
SQL database (SQL數據庫)
存儲構建時和運行時的狀態,為雲基礎設施,包括有:
可用實例類型
使用中的實例
可用網絡
項目
理論上,OpenStack計算可以支持任何和SQL-Alchemy所支持的后端數據庫,通常使用SQLite3來做測試可開發工作,MySQL和PostgreSQL 作生產環境。
二、 安裝並配置控制節點
這個部分將描述如何在控制節點上安裝和配置 Compute 服務,即 nova。
1. 先決條件
在安裝和配置 Compute 服務前,你必須創建數據庫服務的憑據以及 API endpoints。
① 為了創建數據庫,必須完成這些步驟:
mysql -u root -p
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';
flush privileges ;
exit

      

        ②  獲得admin憑證來獲取只有管理員能執行的命令的訪問權限
. admin-openrc
③ 創建計算服務憑證
創建nova用戶:
openstack user create --domain default --password-prompt nova

      

        給nova用戶添加 admin 角色:
openstack role add --project service --user nova admin
創建nova服務實體
openstack service create --name nova --description "OpenStack Computr" compute

      

        ④  創建計算API服務端點
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1

      

        openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1

      

        openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1

      

        ⑤  創建placement service的一個用戶placement
openstack user create --domain default --password-prompt placement

      

        ⑥  增加placement用戶到service project和admin角色
openstack role add --project service --user placement admin
⑦ 創建placement API服務目錄
openstack service create --name placement --description "Placement API" placement

      

        ⑧  創建placement API 服務端點
openstack endpoint create --region RegionOne placement public http://http://controller:8778
openstack endpoint create --region RegionOne placement internal http://controller:8778
openstack endpoint create --region RegionOne placement admin http://controller:8778

         

   2. 安裝並配置組件

        ①  安裝數據包
yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api
② 編輯/etc/nova/nova.conf文件完成以下操作。
在[DEFAULT]部分下,只激活compute和metadata API
[DEFAULT]
enabled_apis = osapi_compute,metadata
在[api_database]和[database]部分下,配置數據庫連接
[api_database]
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
[database]
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
在 “[DEFAULT]”部分,配置 “RabbitMQ” 消息隊列訪問:
[DEFAULT]
transport_url = rabbit://openstack:RABBIT_PASS@controller
#RABBIT_PASS:也就是安裝rabbitmq時候創建的openstack的用戶名和密碼

在 “[api]” 和 “[keystone_authtoken]” 部分,配置認證服務訪問:
[api]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = NOVA_PASS
在 [DEFAULT 部分,配置my_ip來使用控制節點的管理接口的IP 地址。
[DEFAULT]
my_ip = 10.0.0.11
在 [DEFAULT] 部分,激活支持Networking 服務:
[DEFAULT]
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
注意:
默認情況下,計算服務使用內置的防火牆服務。由於網絡服務包含了防火牆服務,你必須使用nova.virt.firewall.NoopFirewallDriver防火牆服務來禁用掉計算服務內置的防火牆服務。

在[vnc]部分,配置VNC代理使用控制節點的管理接口IP地址 :
[vnc]
enabled = true
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
在 [glance] 區域,配置鏡像服務 API 的位置:
[glance]
api_servers = http://controller:9292
在 [oslo_concurrency] 部分,配置鎖路徑:
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
在[placement]部分,配置placement API:
[placement]
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:35357/v3
username = placement
password = PLACEMENT_PASS
由於數據包bug,必須啟用訪問位置API通過添加以下配置/etc/httpd/conf.d/00-nova-placement-api.conf:
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
③ 填充nova-api數據庫(同步compute數據庫)
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 cell
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova 109e1d4b-536a-40d0-83c6-5f121b82b650
⑥ 填充nova數據庫
su -s /bin/sh -c "nova-manage db sync" nova

        

        ⑦  核查nova cell0和cell1 是否注冊成功
nova-manage cell_v2 list_cells

        

    3. 完成安裝
啟動compute服務和設置開機自動啟動
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
三、 安裝和配置一個計算節點
本節描述如何安裝和配置在一個計算節點的計算服務。服務支持多種虛擬機監控程序或vm部署實例。為簡單起見,這個配置使用QEMU虛擬機監控程序在計算節點上通過KVM擴展,支持虛擬機的硬件加速。在傳統硬件,這個配置使用通用QEMU虛擬機監控程序。您可以遵循這些指令和少量修改與額外的計算節點橫向擴展您的環境。
這部分假設您遵循本指南中的說明一步一步配置第一個計算節點。如果你想配置額外的計算節點,他們准備以類似的方式對第一個計算節點在示例架構部分。每個額外的計算節點需要一個唯一的IP地址。
接下來操作在計算節點上操作
1. 安裝和配置組件
① 安裝數據包
yum install openstack-nova-compute -y
② 編輯/etc/nova/nova.conf文件完成以下操作。
在[DEFAULT]部分,僅僅激活compute和metadata APIS:
[DEFAULT]
enabled_apis = osapi_compute,metadata
在[DEFAULT]部分,配置RabbitMQ信息隊列接入:
[DEFAULT]
transport_url = rabbit://openstack:RABBIT_PASS@controller
在[api]和[keystone_authtoken]部分,配置身份服務接入:
[api]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = NOVA_PASS

在[DEFAULT]部分,配置my_ip選項:(ip是計算節點的管理段ip:10.0.0.31)
[DEFAULT]
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
在[DEFAULT]部分,激活支持networking服務:
[DEFAULT]
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
通知:
默認情況下,計算使用內部防火牆服務。因為網絡包含防火牆服務,您必須使用nova.virt.firewall禁用防火牆計算服務 通過nova.virt.firewall.NoopFirewallDriver firewall driver

在[vnc]部分,激活和配置遠程console接入:
[vnc]
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
服務器組件監聽所有IP地址和代理組件只監聽管理界面計算節點的IP地址。基URL顯示的位置你可以使用一個web瀏覽器來訪問遠程主機的實例計算節點。

在[glance]部分,配置鏡像服務的API位置:
[glance]
api_servers = http://controller:9292
在[oslo_concurrency]部分,配置鎖定路徑:
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
在[placement]部分,配置placement API:
[placement]
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:35357/v3
username = placement
password = PLACEMENT_PASS
2. 完成安裝
① 確定您的計算節點支持虛擬機的硬件加速:
egrep -c '(vmx|svm)' /proc/cpuinfo
如果這個命令的返回值是1或者更大,則代表支持虛擬化。
如果這個命令的返回值為零,計算節點不支持硬件加速,您必須配置libvirt KVM使用QEMU。
編輯/etc/nova/nova.conf,在[libvirt]部分,virt_type = qemu
② 啟動計算服務包括依賴項和開機自動啟動
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service
注意:
如果nova-compute服務啟動失敗,檢查/var/log/nova/nova-compute.log。錯誤消息:The error message AMQP server on controller:5672 is unreachable likely indicates that the firewall on the controller node is preventing access to port 5672,表明控制器節點上的防火牆阻止訪問端口5672。在控制節點配置防火牆打開5672端口控制器節點和計算節點重啟nova-compute服務。
3. 增加一個計算節點到cell數據庫
  接下來操作在控制節點上操作
1. 獲得 admin 憑證來獲取只有管理員能執行的命令的訪問權限,並確認1個計算節點是在主機列表中:
   . admin-openrc
  openstack hypervisor list

       

        2. 發現compute主機列表:
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

      

        注意:
當你添加新的計算節點,您必須運行nova-manage cell_v2 discover_hosts控制器節點上注冊新計算節點
四、 驗證操作
接下來操作在控制節點上操作
1. 獲得 admin 憑證來獲取只有管理員能執行的命令的訪問權限,
. admin-openrc
2. 列出服務組件:

    

        該輸出顯示三個服務組件在控制節點上啟用,一個服務組件在計算節點上啟用。
3. 在標識服務API端點列表與身份驗證連接服務:
注意:下面端點列表可能不同,這取決於OpenStack的安裝組件。在這個輸出忽略任何警告。
openstack catalog list

      

    4. 驗證鏡像服務和鏡像列表:
openstack image list

      


計算服務安裝完成!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM