iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 6
0

主題

OpenStack Nova(1)

前言

雖然我前幾天有講過Nova但那時候我是以虛擬化的方式來介紹OpenStack,今天則是從安裝面來去慢慢探討他,那蠻多在前面講過的我就先跳過了。

主要內容

組件介紹

從組件來說分成四類Service,Moudle,Deamon,Client加上兩格外部程式

  • Service : 為對於OpenStack的服務介面端
  • Moudule : 為Nova的中介層
  • Deamon : 為Nova的核心服務
  • Client :為給user的介面端
  • Message
  • Database

Service又分成4類

  • Nova-api : 對於OpenStack服務的介面服務端
  • nova-api-metadata : 處理metadata的服務
  • nova-compute : 處理虛擬化服務的間接層
  • nova-scheduler : 接受VM的請求服務

Moudule又分成2類

  • nova-conductor : 為一個介於service與databace中階的間接程式
  • nova-cert : 在nova服務中對外處理憑證相關服務的程式(X.509)

Demon又分成6類

  • nova-network : nova中的網路服務
  • nova-consoleauth : 作為與虛擬機中間通訊的認證程式
  • nova-novncproxy : 提供Proxy做一個瀏覽器VNC的連線(novnc)
  • nova-spicehtml5proxy : 提供Proxy做一個瀏覽器XPICE的連線(HTML5)
  • nova-xvpvncproxy :提供Proxy做一個OpenStack-specific的VNC連線(JAVA)
  • nova-cert : nova的憑證程式(X.509)

Client只有一個項目

  • nova : 給User連線的介面端

Message使用的是AMQP的訊息傳送模式
這邊使用的是RabbitMQ
詳細之後有時間會詳談

最後就是Database
基本上連線到MySQL沒甚麼好說的

資料庫建立

1.登入資料庫

sudo mysql -u root -p

2.建立資料表(給兩個程式用的)

CREATE DATABASE nova_api;
CREATE DATABASE nova;

3.設定安全性

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

在KetStone上建立使用者及服務

1.登入admin使用者指令模式
2.建立使用者

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

3.將nova加進Service群組中

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

4.建立nova的service服務

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

5.建立安全性

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

安裝&設定程式

1.安裝程式

sudo apt install nova-api nova-conductor nova-consoleauth nova-novncproxy nova-scheduler

2.編輯nova.conf設定檔

vim /etc/nova/nova.conf
[DEFAULT]
transport_url = rabbit://openstack:RABBIT密碼@controller
auth_strategy = keystone
my_ip = 10.0.0.11
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api_database]
connection = mysql+pymysql://nova:NOVA資料庫密碼@controller/nova_api

[database]
connection = mysql+pymysql://nova:NOVA資料庫密碼@controller/nova

[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密碼

[vnc]
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip

[glance]
api_servers = http://controller:9292

[oslo_concurrency]
lock_path = /var/lib/nova/tmp

3.與資料庫資料進行同步

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

重啟服務

sudo service nova-api restart
sudo service nova-consoleauth restart
sudo service nova-scheduler restart
sudo service nova-conductor restart
sudo service nova-novncproxy restart

後記

我明天會繼續往nova的運算主機安裝繼續講,因為今天的重點在於解說Nova的運作以及管理機的安裝部屬,如果說今天有人想要管理機和運算主機放在一起,我本人試過與明天的教程合併再一起即可,那今天我就先講到這邊,明天見啦。
希望大家可以在這一個月中讀到非常多的應用技巧,那如果有問題可以以私訊我的方式是使用問題回復,我會盡可能地回答問題,那會在後面統一做回覆,或者如果有想知道的相關的應用也可以提出討論喔。

參考資料

OpenStack Doc
cnblogs


上一篇
OpenStack Glance
下一篇
OpenStack Nova(2)
系列文
OpenStack-多到數不清的套件改36

尚未有邦友留言

立即登入留言