天天看點

OpenStack-nova元件部署

控制節點Nova服務配置

建立nova資料庫,并執行授權操作

mysql -uroot -p123456
create database nova_api;
create database nova;
 create database nova_cell0;
grant all privileges on nova_api.* to 'nova'@'localhost' identified by 'nova_dbpass';
 grant all privileges on nova_api.* to 'nova'@'%' identified by 'nova_dbpass'; 
 grant all privileges on nova.* to 'nova'@'%' identified by 'nova_dbpass';
grant all privileges on nova.* to 'nova'@'localhost' identified by 'nova_dbpass';
grant all privileges on nova_cell0.* to 'nova'@'localhost' identified by 'nova_dbpass';pass';
grant all privileges on nova_cell0.* to 'nova'@'%' identified by 'nova_dbpass'; 
flush privileges;
 exit;
           

管理Nova使用者及服務

建立nova使用者

openstack user create --domain default --password nova_pass nova
           

把nova使用者添加到service項目,擁有admin權限

openstack role add --project service --user nova admin
           

建立nova服務

openstack service create --name nova --description "OpenStack Compute" compute
           

給Nova服務關聯endpoint(端點)

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
           

安裝nova元件(nova-api、nova-conductor、nova-novncproxy、nova-scheduler)

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

修改nova配置檔案(nova.conf)

cp -a /etc/nova/nova.conf{,.bak}
grep -Ev '^$|#' /etc/nova/nova.conf.bak > /etc/nova/nova.conf
 openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata
 openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.31.11 ##修改為 ct的IP(内部IP)
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron true
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:[email protected]
openstack-config --set /etc/nova/nova.conf api_database connection mysql+pymysql://nova:[email protected]/nova_api
openstack-config --set /etc/nova/nova.conf database connection mysql+pymysql://nova:[email protected]/nova
openstack-config --set /etc/nova/nova.conf placement_database connection mysql+pymysql://placement:[email protected]/placement
 openstack-config --set /etc/nova/nova.conf api auth_strategy keystone
 openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:5000/v3
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password nova_pass
openstack-config --set /etc/nova/nova.conf vnc enabled true
openstack-config --set /etc/nova/nova.conf vnc server_listen '$my_ip'
openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address '$my_ip'
openstack-config --set /etc/nova/nova.conf glance api_servers http://controller:9292
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf placement region_name RegionOne
openstack-config --set /etc/nova/nova.conf placement project_domain_name Default
openstack-config --set /etc/nova/nova.conf placement project_name service
openstack-config --set /etc/nova/nova.conf placement auth_type password
openstack-config --set /etc/nova/nova.conf placement user_domain_name Default
openstack-config --set /etc/nova/nova.conf placement auth_url http://controller:5000/v3
openstack-config --set /etc/nova/nova.conf placement username placement
openstack-config --set /etc/nova/nova.conf placement password placement_pass
           

初始化資料庫

初始化nova_api資料庫

su -s /bin/sh -c "nova-manage api_db sync" nova
           

注冊cell0資料庫;

nova服務内部把資源劃分到不同的cell中,把計算節點劃分到不同的cell中;openstack内部基于cell把計算節點進行邏輯上的分組

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資料庫;

可以通過 /var/log/nova/nova-manage.log 日志判斷是否初始化成功

su -s /bin/sh -c "nova-manage db sync" nova
           

驗證cell0和cell1是否注冊成功

su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
           
OpenStack-nova元件部署

啟動Nova服務

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

檢查nova服務端口

netstat -tnlup|egrep '8774|8775'
           
OpenStack-nova元件部署
curl http://controller:8774
           
OpenStack-nova元件部署

計算節點配置Nova服務

兩計算節點除ip位址外,其他操作與配置相同

安裝nova-compute元件

yum -y install openstack-nova-compute
           

修改配置檔案

cp -a /etc/nova/nova.conf{,.bak}
grep -Ev '^$|#' /etc/nova/nova.conf.bak > /etc/nova/nova.conf
openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata
openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:[email protected]
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.31.12 #修改為對應節點的内部IP
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron true
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf api auth_strategy keystone
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:5000/v3
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password nova_pass
openstack-config --set /etc/nova/nova.conf vnc enabled true
openstack-config --set /etc/nova/nova.conf vnc server_listen 0.0.0.0
openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address '$my_ip'
openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://192.168.31.11:6080/vnc_auto.html
openstack-config --set /etc/nova/nova.conf glance api_servers http://controller:9292
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf placement region_name RegionOne
openstack-config --set /etc/nova/nova.conf placement project_domain_name Default
openstack-config --set /etc/nova/nova.conf placement project_name service
openstack-config --set /etc/nova/nova.conf placement auth_type password
openstack-config --set /etc/nova/nova.conf placement user_domain_name Default
openstack-config --set /etc/nova/nova.conf placement auth_url http://controller:5000/v3
openstack-config --set /etc/nova/nova.conf placement username placement
openstack-config --set /etc/nova/nova.conf placement password placement_pass
openstack-config --set /etc/nova/nova.conf libvirt virt_type qemu
           

開啟服務

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

controller節點操作

檢視compute節點是否注冊到controller上,通過消息隊列;需要在controller節點執行

openstack compute service list --service nova-compute
           

掃描目前openstack中有哪些計算節點可用,發現後會把計算節點建立到cell中,後面就可以在cell中建立虛拟機;相當于openstack内部對計算節點進行分組,把計算節點配置設定到不同的cell中

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

預設每次添加個計算節點,在控制端就需要執行一次掃描,這樣會很麻煩,是以可以修改控制端nova的主配置檔案:

vim /etc/nova/nova.conf
[scheduler]
discover_hosts_in_cells_interval = 300			#每300秒掃描一次
           
systemctl restart openstack-nova-api.service
           

驗證計算節點服務:

檢查 nova 的各個服務是否都是正常,以及 compute 服務是否注冊成功

openstack compute service list
           
OpenStack-nova元件部署

檢視各個元件的 api 是否正常

openstack catalog list
           
OpenStack-nova元件部署

檢視是否能夠拿到鏡像

openstack image list
           
OpenStack-nova元件部署

檢視cell的api和placement的api是否正常,隻要其中一個有誤,後期無法建立虛拟機

nova-status upgrade check
           
OpenStack-nova元件部署

小結

Nova分為控制節點、計算節點;

Nova元件核心功能是排程資源,在配置檔案中需要展現的部分:指向認證節點位置(URL、ENDPOINT)、調用服務、注冊、提供支援等,配置檔案中的所有配置參數基本都是圍繞此範圍(對執行個體生命周期管理)進行設定

繼續閱讀