1、Nova介紹node
Nova是openstack最先的兩塊模塊之一,另外一個是對象存儲swift
。在openstack體系中一個叫作計算節點
,一個叫作控制節點
。這個主要和nova相關,咱們把安裝爲計算節點nova-compute
,把除了nova-compute叫作控制節點。nova-compute是建立虛擬機的,只是建立虛擬機,全部的控制都在另外一臺上。mysql
1.1 功能和特色:linux
實例生命週期的管理sql
管理計算資源數據庫
網絡和認證管理swift
REST風格的APIapi
異步的一致性通訊bash
Hypervisor透明:支持Xen,XenServer/XCP,KVM,UML,VMware vSphere and Hyper-V網絡
1.2 Nova 雲架構包括如下主要組件:架構
API Server(nova-api)
Message Queue(rabbitmq server)
Compute Worker(nova-compute)
Network Controller(nova-network)
Volume Worker (Nova-volume)
Scheduler(nova-scheduler)
1.2.1 組件介紹
API:實現了RESTful API功能,是外部訪問Nova的惟一途徑。
接收外部的請求並經過Message Queue將請求發送給其餘的服務組件,同時也兼容EC2 API,因此也能夠用EC2的管理工具對nova進行平常管理。
Scheduler:模塊在OpenStack中負責決策虛擬機建立在那臺主機(計算節點)上。
決策一個虛擬機應該調度到某物理節點,須要分兩個步驟:
1.過濾(Fliter) 首先獲取過未過濾的主機列表,根據過濾屬性,選擇服務條件的計算節點主機。
2.計算權值(Weight) 通過主機過濾,須要對主機進行權值的計算,根據策略選擇相應的某一臺主機。
Cert:負責身份認證
Conductor:計算節點訪問數據庫的中間件
Consoleauth:用於控制檯的受權驗證
Novncproxy:VNC代理
2、安裝配置Nova服務
2.1 修改配置文件
[root@linux-node1 ~]# grep -n '^[a-z]' /etc/nova/nova.conf 14:auth_strategy=keystone #keystone鏈接 2062:use_neutron=true #啓用neutron網絡 3052:enabled_apis=osapi_compute,metadata #啓用計算和元數據 3265:firewall_driver=nova.virt.firewall.NoopFirewallDriver 3601:transport_url=rabbit://openstack:openstack@192.168.56.11 3662:connection=mysql://nova:nova@192.168.56.11/nova 4679:connection=mysql+pymysql://nova:nova@192.168.56.11/nova 4814:api_servers= 5429 [keystone_authtoken]下面添加 5431:auth_uri = http://192.168.56.11:5000 5432:auth_url = http://192.168.56.11:35357 5433:memcached_servers = 192.168.56.11:11211 5434:auth_type = password 5435:project_domain_name = default 5436:user_domain_name = default 5437:project_name = service 5438:username = nova 5439:password = nova 6706:lock_path=/var/lib/nova/tmp 8385:vncserver_listen=0.0.0.0 8397:vncserver_proxyclient_address=192.168.56.11
2.2 同步數據庫
[root@linux-node1 ~]# su -s /bin/sh -c "nova-manageapi_db sync" nova [root@linux-node1 ~]# su -s /bin/sh -c "nova-managedb sync" nova
2.3 數據庫驗證
mysql -h192.168.56.11 -unova-pnova -e "use nova;show tables;" #若是存在表就證實成功了
2.4 啓動nova
[root@linux-node1 ~]# systemctl enableopenstack-nova-api.service \ openstack-nova-consoleauth.serviceopenstack-nova-scheduler.service \ openstack-nova-conductor.service openstack-nova-novncproxy.service [root@linux-node1 ~]# systemctlstart openstack-nova-api.service \ openstack-nova-consoleauth.serviceopenstack-nova-scheduler.service \ openstack-nova-conductor.serviceopenstack-nova-novncproxy.service
2.5 項目及端點配置
root@linux-node1 ~]# openstack service create --name nova \ > --description "OpenStack Compute" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Compute | | enabled | True | | id | 200e9f78a4654e0394eec200c4dab31d | | name | nova | | type | compute | +-------------+----------------------------------+ [root@linux-node1 ~]# openstack endpoint create --region RegionOne \ > compute public http://192.168.56.11:8774/v2.1/%\(tenant_id\)s +--------------+----------------------------------------------+ | Field | Value | +--------------+----------------------------------------------+ | enabled | True | | id | dfb98d75fe7e44da898280d48e331a63 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 200e9f78a4654e0394eec200c4dab31d | | service_name | nova | | service_type | compute | | url | http://192.168.56.11:8774/v2.1/%(tenant_id)s | +--------------+----------------------------------------------+ [root@linux-node1 ~]# openstack endpoint create --region RegionOne \ > compute public http://192.168.56.11:8774/v2.1/%\(tenant_id\)s +--------------+----------------------------------------------+ | Field | Value | +--------------+----------------------------------------------+ | enabled | True | | id | a656fdf0dce34db39fdce5c3fd3d3e40 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 200e9f78a4654e0394eec200c4dab31d | | service_name | nova | | service_type | compute | | url | http://192.168.56.11:8774/v2.1/%(tenant_id)s | +--------------+----------------------------------------------+ [root@linux-node1 ~]# openstack endpoint create --region RegionOne \ > compute admin http://192.168.56.11:8774/v2.1/%\(tenant_id\)s +--------------+----------------------------------------------+ | Field | Value | +--------------+----------------------------------------------+ | enabled | True | | id | 85a0a9b5d4db449cab48b7c033aabac3 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 200e9f78a4654e0394eec200c4dab31d | | service_name | nova | | service_type | compute | | url | http://192.168.56.11:8774/v2.1/%(tenant_id)s | +--------------+----------------------------------------------+
2.6 驗證nova鏡像
[root@linux-node1 ~]# openstack host list +-------------+-------------+----------+ | Host Name | Service | Zone | +-------------+-------------+----------+ | linux-node1 | consoleauth | internal | | linux-node1 | conductor | internal | | linux-node1 | scheduler | internal | +-------------+-------------+----------+