OpenStack 計算服務 Nova介紹和控制節點部署(七)


介紹

       Nova是openstack最早的兩塊模塊之一,另一個是對象存儲swift。在openstack體系中一個叫做計算節點,一個叫做控制節點。這個主要和nova相關,我們把安裝為計算節點nova-compute,把除了nova-compute叫做控制節點。nova-compute是創建虛擬機的,只是創建虛擬機,所有的控制都在另一台上。

nova組件(服務)

  • API:負責接受和響應外部請求。支持OpenStack API,EC2 API
  • Cert:負責身份認證EC2
  • Scheduler:用於雲主機調度
  • Conductor:計算節點訪問數據的中間件
  • Consoleauth:用於控制台的授權驗證
  • Novncproxy:VNC代理

提示:EC2是亞馬遜彈性計算雲

 

Nova API

  • nova-api組件實現了RESTful API功能,是外部訪問Nova的唯一途徑。
  • 接收外部的請求並通過Messages Queue將請求發送給其他的服務組件,同時也兼容EC2 API,所以也可以用EC2的管理工具對nova進行日常管理。

 

 

Nova scheduler

Nova scheduler模塊在openstack中的作用就是決策虛擬機創建在那個主機(計算節點)上。

決策一個虛擬機應該調度到那個物理節點,需要分兩個步驟:

  • 過濾(Filter)
  • 計算權值(Weight)

Q:實際操作中可能會出現找不到有效的主機?實際上是有資源的,為什么?

因為在openstack中nova scheduler認為沒有資源創建虛擬機,即使你有100G內存,如果nova scheduler認為你沒有資格,就無法進行創建虛擬機。這個時候可能是某一個節點故障,如網絡或者其它。

Q:如果決策虛擬機創建在那個主機?

1、Filter Scheduler首先得到未經過濾的主機列表,然后根據過濾屬性,選擇符合條件的計算節點主機。

2、計算權重,經過主機過濾后,需要對主機進行權值的計算,根據策略選擇相應的某一台主機(對於每一個要創建的虛擬機而言)。

 

Nova 控制節點部署

1、安裝軟件包

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

2、數據庫配置

  • 修改配置文件/etc/nova/nova.conf
[root@linux-node1 ~]# vim /etc/nova/nova.conf
[database]
connection=mysql+pymysql://nova:nova@192.168.137.11/nova
[api_database]
connection=mysql+pymysql://nova:nova@192.168.137.11/nova_api
  • 同步數據庫
su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage db sync" nova

提示:有警告可以忽略

  • 檢查是否有表結構
mysql -h 192.168.137.11 -unova -pnova -e "use nova;show tables;"
mysql -h 192.168.137.11 -unova -pnova -e "use nova_api;show tables;"

3、配置keystone

[root@linux-node1 ~]# vim /etc/nova/nova.conf
[keystone_authtoken]
auth_uri = http://192.168.137.11:5000
auth_url = http://192.168.137.11:35357
memcached_servers = 192.168.137.11:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova
[DEFAULT]
auth_strategy=keystone

4、RabbitMq(消息隊列配置)

[root@linux-node1 ~]# vim /etc/nova/nova.conf
rpc_backend=rabbit
rabbit_host=192.168.137.11
rabbit_port=5672
rabbit_userid=openstack
rabbit_password=openstack

5、配置nova自己的一些功能

  • 設置啟用的元數據API
[DEFAULT]
enabled_apis=osapi_compute,metadata
  • 啟動網絡服務支持和關閉防火牆
[DEFAULT]
use_neutron=true
firewall_driver=nova.virt.firewall.NoopFirewallDriver
  • 配置VNC代理使用控制節點的管理接口IP地址
[vnc]
vncserver_listen=192.168.137.11
vncserver_proxyclient_address=192.168.137.11
  • 配置鏡像服務 API 的位置
[glance]
api_servers=http://192.168.137.11:9292
  • 配置鎖路徑
[oslo_concurrency]
lock_path = /var/lib/nova/tmp

6、設置開機啟動,並啟動服務

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

7、keystone上注冊nova服務

  • 創建nova服務
source  /root/admin-openstack.sh
openstack service create --name nova --description "Openstack Compute " compute

  • 創建Compute服務api端點(公有、私有、admin)
openstack endpoint create --region RegionOne \
compute public http://192.168.137.11:8774/v2.1/%\(tenant_id\)s

openstack endpoint create --region RegionOne \
compute internal http://192.168.137.11:8774/v2.1/%\(tenant_id\)s

openstack endpoint create --region RegionOne \
compute admin http://192.168.137.11:8774/v2.1/%\(tenant_id\)s

8、檢查控制節點是否成功

openstack host list

 


免責聲明!

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



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