このガイドは、OpenStak環境でNova(Compute)サービスを構成するのに役立ちます。OpenStackでは、コンピューティングサービス(ノード)がクラウドコンピューティングシステムをホストします。 OpenStackコンピューティングは、IaaSの主要な部分であり、認証のためにKeyStoneと対話し、ディスクとイメージのためのイメージサービス、およびユーザーと管理インターフェースのためのダッシュボードと相互作用します。
OpenStack Computeは、標準のハードウェアで水平方向にスケーリングし、イメージをダウンロードしてコンピューティングインスタンスを起動できます。
コントローラーノードのインストールと構成:
ControllerノードでComputeサービスを構成し、rootユーザーとしてMySQLサーバーにログインします。
# mysql -u root -p
novaデータベースを作成します。
CREATE DATABASE nova;
novaデータベースに適切な権限を付与します。
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password';
「パスワード」を置き換えます 」と適切なパスワード。 MySQLを終了します。
環境スクリプトから管理者クレデンシャルをロードします。
# source admin-openrc.sh
サービス資格情報を作成するためのnovaユーザーを作成します。
# openstack user create --domain default --password-prompt nova User Password: Repeat User Password: +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | default | | enabled | True | | id | a25d5cdc7efa4375b0907dd615eebde0 | | name | nova | +-----------+----------------------------------+
novaユーザーに管理者の役割を追加します。
# openstack role add --project service --user nova admin
novaサービスエンティティを作成します。
# openstack service create --name nova --description "Nova" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Nova | | enabled | True | | id | ad302b8a4e884decb8ed0f4fdf319ba1 | | name | nova | | type | compute | +-------------+----------------------------------+
novaサービスAPIエンドポイントを作成します。
# openstack endpoint create --region RegionOne compute public http://controller:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 3d7bba2b7c3446e7975f8b74c0cab712 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+ # openstack endpoint create --region RegionOne compute internal http://controller:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 240d4430f1c442439c3835c12abf7533 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+ # openstack endpoint create --region RegionOne compute admin http://controller:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 758d41f12fff4617bc7e4c12bd4502fc | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+
コンピュートコントローラーコンポーネントのインストールと構成:
以下のパッケージをコントローラーノードにインストールします。
# apt-get install nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy nova-scheduler python-novaclient
/etc/nova/nova.confを編集します。
# nano /etc/nova/nova.conf
以下の設定を変更し、適切なセクションにエントリを配置してください。以下のエントリの既存のセクションが見つからない場合は、ファイルにそれらの特定のセクションを追加する必要がある場合があります。
[DEFAULT] ... verbose = True rpc_backend = rabbit auth_strategy = keystone ## Management IP of Controller Node my_ip = 192.168.12.21 network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver enabled_apis=osapi_compute,metadata [vnc] ## Management IP of Controller Node vncserver_listen = $my_ip vncserver_proxyclient_address = $my_ip [database] connection = mysql+pymysql://nova:password@controller/nova ## Replace "password" with the password you chose for nova database [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = password ## Replace "password" with the password you chose for the openstack account in RabbitMQ. [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = password ## Replace "password" with the password you chose for nova user in the identity service [glance] host = controller [oslo_concurrency] lock_path = /var/lib/nova/tmp
Computeデータベースにデータを入力します。
# su -s /bin/sh -c "nova-manage db sync" nova
コンピューティングサービスを再起動します。
# service nova-api restart # service nova-cert restart # service nova-consoleauth restart # service nova-scheduler restart # service nova-conductor restart # service nova-novncproxy restart
SQLiteデータベースファイルを削除します。
# rm -f /var/lib/nova/nova.sqlite
Novaのインストールと構成(計算ノード上):
次に、コンピュートノードにコンピュートサービスをインストールして構成します。このサービスは、インスタンス(VM)をデプロイするための複数のハイパーバイザーをサポートします。コンピューティングノードは、KVM拡張機能を備えたQEMUハイパーバイザーを使用して、ハードウェアアクセラレーションによる仮想化をサポートします。
コンピューティングがハードウェア仮想化をサポートしているかどうかを確認します。
# egrep -c '(vmx|svm)' /proc/cpuinfo 1
コマンドが値1以上で返される場合、計算ノードは仮想化をサポートしています。
ComputeNodeでOpenStackKiloリポジトリーが有効になっていることを確認するか、以下の手順に従って有効にしてください。
UbuntuCloudアーカイブキーリングとリポジトリをインストールします。
# apt-get install software-properties-common # add-apt-repository cloud-archive:liberty
システムをアップグレードします。
# apt-get update && apt-get dist-upgrade
各コンピュートノードに次のパッケージをインストールします。
# apt-get install nova-compute sysfsutils
/etc/nova/nova-compute.confを編集して、QEMUを有効にします。
# vi /etc/nova/nova-compute.conf
libvirtセクションでvirt_type=kvmをqemuに変更します。
[libvirt] ... virt_type = qemu
/etc/nova/nova.confを編集します。
# vi /etc/nova/nova.conf
以下の設定を変更し、適切なセクションにエントリを配置してください。
[DEFAULT] ... verbose = True rpc_backend = rabbit auth_strategy = keystone ## Management IP of Compute Node my_ip = 192.168.12.22 network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver [vnc] enabled = True vncserver_listen = 0.0.0.0 vncserver_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = password ## Replace "password" with the password you chose for the openstack account in RabbitMQ. [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = password ## Replace "password" with the password you chose for nova user in the identity service [glance] host = controller ## Replace controller with your controller hostname [oslo_concurrency] lock_path = /var/lib/nova/tmp
コンピューティングサービスを再起動します。
# service nova-compute restart
SQLiteデータベースファイルを削除します。
# rm -f /var/lib/nova/nova.sqlite
操作の確認:
コントローラノードに管理者クレデンシャルをロードします。
# source admin-openrc.sh
検証するコンピューティングサービスコンポーネントを一覧表示し、コントローラーノードで次のコマンドを実行します。
# nova service-list +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+ | 1 | nova-consoleauth | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:25.000000 | - | | 2 | nova-cert | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:24.000000 | - | | 3 | nova-conductor | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:28.000000 | - | | 4 | nova-scheduler | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:24.000000 | - | | 5 | nova-compute | compute.itzgeek.local | nova | enabled | up | 2015-11-25T14:11:30.000000 | - | +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+
コントローラノードで4つのサービスコンポーネントが有効になり、コンピュートノードで1つのサービスコンポーネントが有効になった出力が得られるはずです。
イメージサービスカタログにイメージをリストして、コンピューティングとイメージサービス間の接続を確認します。
# nova image-list +--------------------------------------+---------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+---------------------+--------+--------+ | b19c4522-df31-4331-a2e1-5992abcd4ded | Ubuntu_14.04-x86_64 | ACTIVE | | +--------------------------------------+---------------------+--------+--------+
以上です!!!これで、Novaサービスが正常に構成されました。次は、OpenStack Networking(Neutron)を構成することです。