Show Table of Contents
6.3. Block Storage サービスの設定
6.3.1. Block Storage サービスのデータベース接続の設定
Block Storage サービスによって使用されるデータベース接続文字列は、
/etc/neutron/plugin.ini
ファイルで定義されます。サービスを起動する前に、有効なデータベースサーバーをポイントするように更新しておく必要があります。 Block Storage サービスをホストする各システムの
sql_connection
設定キーの値を設定します。 #
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT sql_connection mysql://USER:PASS@IP/DB
以下の値を置き換えてください。
- USER は、Block Storage サービスのデータベースのユーザー名 (通常は
cinder
) に置き換えます。 - PASS は選択したデータベースユーザーのパスワードに置き換えます。
- IP は、データベースサービスをホストするシステムの IP アドレスまたはホスト名に置き換えます。
- DB は、Block Storage サービスのデータベースの名前 (通常は
cinder
) に置き換えます。
重要
この接続設定キーに指定する IP アドレスまたはホスト名は、Block Storage サービスのデータベースの作成時に Block Storage サービスのデータベースユーザーがアクセスを許可された IP アドレスまたはホスト名と一致する必要があります。また、データベースがローカルでホストされ、Block Storage サービスのデータベースの作成時に「localhost」へのアクセス権を付与した場合には、「localost」と入力する必要があります。
6.3.2. Block Storage サービス用のアイデンティティーレコードの作成
Block Storage サービスで必要な Identity サービスのレコードを作成して設定します。これらのエントリーは、Block Storage サービスに対する認証を提供し、Block Storage が提供するボリューム機能を探してアクセスを試みる他の OpenStack サービスを誘導します。
以下の手順では、管理ユーザーと
services
テナントが作成済みであることを前提としています。詳しい説明は、以下のリンクを参照してください。 以下の手順は、Identity サービスのサーバーまたは
keystonerc_admin
ファイルをコピーして keystone コマンドラインユーティリティーをインストールした任意のマシンで実行してください。
手順6.2 Block Storage サービス用のアイデンティティーレコードの作成
- Keystone に管理ユーザーとしてアクセスするためのシェルを設定します。
#
source ~/keystonerc_admin
cinder
ユーザーを作成します。[(keystone_admin)]#
openstack user create --password PASSWORD cinder
+----------+----------------------------------+ | Field | Value | +----------+----------------------------------+ | email | None | | enabled | True | | id | cb4dafc849df4ea180e9e29346a29038 | | name | cinder | | username | cinder | +----------+----------------------------------+PASSWORD は、Block Storage サービスが Identity サービスとの認証を行う際に使用するセキュアなパスワードに置き換えます。services
テナントのコンテキスト内で、cinder
ユーザーとadmin
ロールを関連付けます。[(keystone_admin)]#
openstack role add --project services --user cinder admin
cinder
およびcinderv2
Block Storage サービスエントリーを作成します。[(keystone_admin)]#
openstack service create --name cinder \
--description "Cinder Volume Service" \
volume
cinder
エンドポイントエントリーを作成します。[(keystone_admin)]#
openstack endpoint create \
--publicurl 'http://IP:8776/v1/%(tenant_id)s' \
--adminurl 'http://IP:8776/v1/%(tenant_id)s' \
--internalurl 'http://IP:8776/v1/%(tenant_id)s'\
--region RegionOne \
cinder
IP は、Block Storage API サービス (openstack-cinder-api
) をホストするシステムの IP アドレスまたはホスト名に置き換えます。複数の API サービスインスタンスをインストールして実行するには、各インスタンスの IP アドレスまたはホスト名を使用してこのステップを繰り返します。
6.3.3. Block Storage サービスの認証設定
Block Storage サービスが認証に Identity サービスを使用するように設定します。以下の手順に記載するステップはすべて、Block Storage サービスをホストする各サーバーに
root
ユーザーとしてログインして実行する必要があります。
手順6.3 Block Storage サービスが Identity サービスを使用して認証を行うための設定
- 認証ストラテジーを
keystone
に設定します。#
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT auth_strategy keystone
- Block Storage サービスが使用する必要のある Identity サービスのホストを設定します。
#
openstack-config --set /etc/cinder/cinder.conf \
keystone_authtoken auth_host IP
IP は、Identity サービスをホストするシステムの IP アドレスまたはホスト名に置き換えます。 - Block Storage サービスが正しいテナントとして認証を行うように設定します。
#
openstack-config --set /etc/cinder/cinder.conf \
keystone_authtoken admin_tenant_name services
services は、OpenStack Networking を使用するために作成したテナントの名前に置き換えます。本ガイドの例では、services
を使用しています。 - Block Storage サービスが
cinder
の管理ユーザーアカウントを使用して認証を行うように設定します。#
openstack-config --set /etc/cinder/cinder.conf \
keystone_authtoken admin_user cinder
- Block Storage サービスが正しい
cinder
の管理ユーザーアカウントを使用するように設定します。#
openstack-config --set /etc/cinder/cinder.conf \
keystone_authtoken admin_password PASSWORD
PASSWORD は、cinder
ユーザーの作成時に設定したパスワードに置き換えます。
6.3.4. Block Storage サービスのトラフィックを許可するためのファイアウォール設定
OpenStack 環境内の各コンポーネントは、認証に Idenity サービスを使用するため、このサービスへアクセスできる必要があります。Block Storage サービスをホストするシステムのファイアウォール設定を変更して、これらのポートでのネットワークトラフィックを許可する必要があります。以下の手順に記載するステップはすべて、Block Storage サービスをホストする各システムに
root
ユーザーとしてログインして実行する必要があります。
手順6.4 Block Storage サービスのトラフィックを許可するためのファイアウォール設定
- テキストエディターで
/etc/sysconfig/iptables
ファイルを開きます。 - このファイルに、ポート
3260
および8776
で TCP トラフィックを許可する INPUT ルールを追加します。新規ルールは、トラフィックを REJECT する INPUT ルールよりも前に記載する必要があります。-A INPUT -p tcp -m multiport --dports 3260,8776 -j ACCEPT
/etc/sysconfig/iptables
ファイルへの変更を保存します。iptables
サービスを再起動して、変更を有効にします。#
systemctl restart iptables.service
6.3.5. Block Storage サービスが SSL を使用するための設定
以下に記載する
cinder.conf
ファイル内のオプションを使用して、SSL を設定します。
表6.1 Block Storage の SSL オプション
設定オプション | 説明 |
---|---|
backlog | ソケットの設定を行うバックログ要求の数 |
tcp_keepidle | サーバーソケットごとに設定する TCP_KEEPIDLE の値 (秒単位) |
ssl_ca_file | クライアントの接続を検証するのに使用する CA 証明書ファイル |
ssl_cert_file | サーバーをセキュアに起動する際に使用する証明書ファイル |
ssl_key_file | サーバーをセキュアに起動する際に使用する秘密鍵ファイル |
6.3.6. Block Storage サービスのための RabbitMQ メッセージブローカーの設定
RabbitMQ はデフォルト (かつ推奨の) メッセージブローカーです。RabbitMQ メッセージングサービスは、rabbitmq-server パッケージにより提供されます。以下の手順で記載する全ステップは、Block Storage サービスをホストするサーバーに
root
ユーザーとしてログインして実行する必要があります。
手順6.5 Block Storage サービスが RabbitMQ メッセージブローカーを使用するための設定
- RPC バックエンドとして RabbitMQ を設定します。
#
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rpc_backend cinder.openstack.common.rpc.impl_kombu
- RabbitMQ のホスト名を設定します。
#
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rabbit_host RABBITMQ_HOST
RABBITMQ_HOST は、メッセージブローカーの IP アドレスまたはホスト名に置き換えます。 - メッセージブローカーのポートを
5672
に設定します。#
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rabbit_port 5672
- RabbitMQ の設定時に Block Storage サービス用に作成した RabbitMQ ユーザー名とパスワードを設定します。
#
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rabbit_userid cinder
#
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rabbit_password CINDER_PASS
cinder
および CINDER_PASS は、Block Storage サービス用に作成された RabbitMQ ユーザー名とパスワードに置き換えます。 - RabbitMQ の起動時に、
cinder
ユーザーに全リソースに対するパーミッションが付与されます。このアクセスは、特別に仮想ホスト/
を介して行われます。Block Storage サービスがこの仮想ホストに接続されるように設定します。#
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rabbit_virtual_host /
6.3.7. Block Storage サービスとメッセージブローカーとの間の SSL 通信の有効化
メッセージブローカーで SSL を有効化した場合は、Block Storage サービスも相応に設定する必要があります。以下の手順では、エクスポートしたクライアントの証明書とキーファイルが必要です。これらのファイルのエクスポートの方法に関する説明は、「クライアント用 SSL 証明書のエクスポート」を参照してください。
- メッセージブローカーとの SSL 通信を有効化します。
#
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rabbit_use_ssl True
#
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT kombu_ssl_certfile /path/to/client.crt
#
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT kombu_ssl_keyfile /path/to/clientkeyfile.key
以下の値を置き換えてください。- /path/to/client.crt はエクスポートされたクライアント証明書の絶対パスに置き換えます。
- /path/to/clientkeyfile.key はエクスポートされたキーファイルの絶対パスに置き換えます。
- 証明書がサードパーティーの認証局 (CA) によって署名されている場合には、次のコマンドを実行する必要もあります。
#
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT kombu_ssl_ca_certs /path/to/ca.crt
/path/to/ca.crt は、サードパーティー CA によって提供された CA ファイルの絶対パスに置き換えます (詳細は 「RabbitMQ メッセージブローカーでの SSL の有効化」 を参照)。
6.3.8. Block Storage データベースへのデータ投入
Block Storage データベース接続文字列を適切に設定した後には、Block Storage データベースにデータを投入します。
重要
この手順は、データベースの初期化とデータ投入のために 1 回のみ実行する必要があります。Block Storage サービスをホストするシステムの追加時には繰り返す必要はありません。
手順6.6 Block Storage サービスのデータベースへのデータ投入
- Block Storage サービスをホストするシステムにログインします。
cinder
ユーザーに切り替えます。#
su cinder -s /bin/sh
/etc/cinder/cinder.conf
で特定されているデータベースを初期化し、データを投入します。$
cinder-manage db sync
6.3.9. Block Storage API サービスのスループットの増加
デフォルトでは、Block Storage API サービス (
openstack-cinder-api
) は 1 プロセスで実行されます。これにより、Block Storage サービスが常時処理可能な要求件数が制限されます。実稼働環境では、マシンのキャパシティーが許す限り多くのプロセスで openstack-cinder-api
の実行を許可することによって、Block Storage API のスループットを増加させることをお勧めします。 Block Storage API サービスオプション
osapi_volume_workers
により、openstack-cinder-api
向けに起動する API サービスワーカーの数 (または OS プロセス数) を指定することができます。 このオプションを設定するには、
openstack-cinder-api
ホストで以下のコマンドを実行します。 #
openstack-config --set /etc/cinder/cinder.conf \
DEFAULT osapi_volume_workers CORES
CORES はマシン上の CPU コア/スレッド数に置き換えてください。
Comments