CentOS 7
Sponsored Link

OpenStack Pike : Computeノードを追加する2017/09/03

 
Computeノードを追加します。Computeノードを追加することにより、より多くのインスタンスを扱うことができます。
当例では以下のような環境を例に Nova Compute ノードを追加します。
     ------------+-----------------------------+------------
                 |                             |
             eth0|10.0.0.30                eth0|10.0.0.51
     +-----------+-----------+     +-----------+-----------+
     |    [ Control Node ]   |     |    [ Compute Node ]   |
     |                       |     |                       |
     |  MariaDB    RabbitMQ  |     |        Libvirt        |
     |  Memcached  httpd     |     |      Nova Compute     |
     |  Keystone   Glance    |     |                       |
     |  Nova API             |     |                       |
     +-----------------------+     +-----------------------+

[1]
追加する Compute ノードに こちらを参考にして KVMハイパーバイザーをインストールしておきます。 リンク先 [2] のブリッジの設定は不要です。
[2] Nova-Compute をインストールします。
# Pike, EPEL からインストール

[root@node01 ~]#
yum --enablerepo=centos-openstack-pike,epel -y install openstack-nova-compute
[3] Nova の基本設定です。
[root@node01 ~]#
mv /etc/nova/nova.conf /etc/nova/nova.conf.org

[root@node01 ~]#
vi /etc/nova/nova.conf
# 新規作成

[DEFAULT]
# 自ホストのIP
my_ip = 10.0.0.51
state_path = /var/lib/nova
enabled_apis = osapi_compute,metadata
log_dir = /var/log/nova
# RabbitMQ サーバー接続情報
transport_url = rabbit://openstack:password@10.0.0.30

[api]
auth_strategy = keystone

# VNC を有効にする
[vnc]
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://10.0.0.30:6080/vnc_auto.html 

# Glance サーバーを指定
[glance]
api_servers = http://10.0.0.30:9292

[oslo_concurrency]
lock_path = $state_path/tmp

# Keystone サーバー接続情報
[keystone_authtoken]
auth_uri = http://10.0.0.30:5000
auth_url = http://10.0.0.30:35357
memcached_servers = 10.0.0.30:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = servicepassword

[placement]
auth_url = http://10.0.0.30:35357
os_region_name = RegionOne
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = placement
password = servicepassword

[wsgi]
api_paste_config = /etc/nova/api-paste.ini

[root@node01 ~]#
chmod 640 /etc/nova/nova.conf

[root@node01 ~]#
chgrp nova /etc/nova/nova.conf

[4] SELinux を有効にしている場合は、ポリシーの変更が必要です。
[root@node01 ~]#
vi nova-compute_pol.te
# 以下の内容で新規作成

module nova-compute_pol 1.0;

require {
        type nova_t;
        type nova_var_lib_t;
        type nova_log_t;
        type virtlogd_t;
        type sysctl_net_t;
        type netutils_exec_t;
        class file { read append getattr create open execute };
        class dir { write search add_name };
        class capability { dac_override kill sys_ptrace };
        class capability2 block_suspend;
}

#============= nova_t ==============
allow nova_t netutils_exec_t:file execute;
allow nova_t self:capability kill;
allow nova_t sysctl_net_t:dir search;
allow nova_t sysctl_net_t:file { read getattr open };
allow nova_t self:capability sys_ptrace;
allow nova_t self:capability2 block_suspend;

#============= virtlogd_t ==============
allow virtlogd_t nova_var_lib_t:dir search;
allow virtlogd_t nova_var_lib_t:file { append getattr open };
allow virtlogd_t self:capability dac_override;

[root@node01 ~]#
checkmodule -m -M -o nova-compute_pol.mod nova-compute_pol.te

checkmodule: loading policy configuration from nova-compute_pol.te
checkmodule: policy configuration loaded
checkmodule: writing binary representation (version 17) to nova-compute_pol.mod
# 中間ファイルからモジュール生成

[root@node01 ~]#
semodule_package --outfile nova-compute_pol.pp --module nova-compute_pol.mod

# モジュールインストール

[root@node01 ~]#
semodule -i nova-compute_pol.pp

[5] Firewalld を有効にしている場合は、サービスポートの許可が必要です。
[root@dlp ~(keystone)]#
firewall-cmd --add-port=5900-5999/tcp --permanent

success
[root@dlp ~(keystone)]#
firewall-cmd --reload

success
[6] Nova Compute サービス起動を起動します。
[root@node01 ~]#
systemctl start openstack-nova-compute

[root@node01 ~]#
systemctl enable openstack-nova-compute

[7] 制御ノード上でサービスの稼働状況を確認します。以下のように計算ノード分が追加されていれば OK です。
# Compute ノード ディスカバー

[root@dlp ~(keystone)]#
su -s /bin/bash nova -c "nova-manage cell_v2 discover_hosts"
[root@dlp ~(keystone)]#
openstack compute service list

+----+------------------+------------------+----------+---------+-------+----------------------------+
| ID | Binary           | Host             | Zone     | Status  | State | Updated At                 |
+----+------------------+------------------+----------+---------+-------+----------------------------+
|  4 | nova-consoleauth | dlp.srv.world    | internal | enabled | up    | 2017-09-04T09:40:20.000000 |
|  5 | nova-conductor   | dlp.srv.world    | internal | enabled | up    | 2017-09-04T09:40:18.000000 |
|  6 | nova-scheduler   | dlp.srv.world    | internal | enabled | up    | 2017-09-04T09:40:18.000000 |
|  7 | nova-compute     | dlp.srv.world    | nova     | enabled | up    | 2017-09-04T09:40:15.000000 |
|  8 | nova-compute     | node01.srv.world | nova     | enabled | up    | 2017-09-04T09:40:19.000000 |
+----+------------------+------------------+----------+---------+-------+----------------------------+
関連コンテンツ