6.3. Block Storage サービスの設定
6.3.1. Block Storage サービスのデータベース接続の設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Block Storage サービスによって使用されるデータベース接続文字列は、
/etc/neutron/plugin.ini ファイルで定義されます。サービスを起動する前に、有効なデータベースサーバーをポイントするように更新しておく必要があります。
Block Storage サービスをホストする各システムの
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
sql_connection 設定キーの値を設定します。
openstack-config --set /etc/cinder/cinder.conf \ DEFAULT sql_connection mysql://USER:PASS@IP/DB
# 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
# source ~/keystonerc_adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow cinderユーザーを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow PASSWORD は、Block Storage サービスが Identity サービスとの認証を行う際に使用するセキュアなパスワードに置き換えます。servicesテナントのコンテキスト内で、cinderユーザーとadminロールを関連付けます。[(keystone_admin)]# keystone user-role-add --user cinder --role admin --tenant services
[(keystone_admin)]# keystone user-role-add --user cinder --role admin --tenant servicesCopy to Clipboard Copied! Toggle word wrap Toggle overflow cinderおよびcinderv2Block Storage のサービスエントリーを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow cinderエンドポイントエントリーを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# openstack-config --set /etc/cinder/cinder.conf \ DEFAULT auth_strategy keystoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Block Storage サービスが使用する必要のある Identity サービスのホストを設定します。
openstack-config --set /etc/cinder/cinder.conf \ keystone_authtoken auth_host IP
# openstack-config --set /etc/cinder/cinder.conf \ keystone_authtoken auth_host IPCopy to Clipboard Copied! Toggle word wrap Toggle overflow IP は、Identity サービスをホストするシステムの IP アドレスまたはホスト名に置き換えます。 - Block Storage サービスが正しいテナントとして認証を行うように設定します。
openstack-config --set /etc/cinder/cinder.conf \ keystone_authtoken admin_tenant_name services
# openstack-config --set /etc/cinder/cinder.conf \ keystone_authtoken admin_tenant_name servicesCopy to Clipboard Copied! Toggle word wrap Toggle overflow services は、OpenStack Networking を使用するために作成したテナントの名前に置き換えます。本ガイドの例では、servicesを使用しています。 - Block Storage サービスが
cinderの管理ユーザーアカウントを使用して認証を行うように設定します。openstack-config --set /etc/cinder/cinder.conf \ keystone_authtoken admin_user cinder
# openstack-config --set /etc/cinder/cinder.conf \ keystone_authtoken admin_user cinderCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Block Storage サービスが正しい
cinderの管理ユーザーアカウントを使用するように設定します。openstack-config --set /etc/cinder/cinder.conf \ keystone_authtoken admin_password PASSWORD
# openstack-config --set /etc/cinder/cinder.conf \ keystone_authtoken admin_password PASSWORDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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
-A INPUT -p tcp -m multiport --dports 3260,8776 -j ACCEPTCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sysconfig/iptablesファイルへの変更を保存します。iptablesサービスを再起動して、変更を有効にします。systemctl restart iptables.service
# systemctl restart iptables.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.5. Block Storage サービスが SSL を使用するための設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下に記載する
cinder.conf ファイル内のオプションを使用して、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
# openstack-config --set /etc/cinder/cinder.conf \ DEFAULT rpc_backend cinder.openstack.common.rpc.impl_kombuCopy to Clipboard Copied! Toggle word wrap Toggle overflow - RabbitMQ のホスト名を設定します。
openstack-config --set /etc/cinder/cinder.conf \ DEFAULT rabbit_host RABBITMQ_HOST
# openstack-config --set /etc/cinder/cinder.conf \ DEFAULT rabbit_host RABBITMQ_HOSTCopy to Clipboard Copied! Toggle word wrap Toggle overflow RABBITMQ_HOST は、メッセージブローカーの IP アドレスまたはホスト名に置き換えます。 - メッセージブローカーのポートを
5672に設定します。openstack-config --set /etc/cinder/cinder.conf \ DEFAULT rabbit_port 5672
# openstack-config --set /etc/cinder/cinder.conf \ DEFAULT rabbit_port 5672Copy to Clipboard Copied! Toggle word wrap Toggle overflow - RabbitMQ の設定時に Block Storage サービス用に作成した RabbitMQ ユーザー名とパスワードを設定します。
openstack-config --set /etc/cinder/cinder.conf \ DEFAULT rabbit_userid cinder
# openstack-config --set /etc/cinder/cinder.conf \ DEFAULT rabbit_userid cinderCopy to Clipboard Copied! Toggle word wrap Toggle overflow openstack-config --set /etc/cinder/cinder.conf \ DEFAULT rabbit_password CINDER_PASS
# openstack-config --set /etc/cinder/cinder.conf \ DEFAULT rabbit_password CINDER_PASSCopy to Clipboard Copied! Toggle word wrap Toggle overflow cinderおよび CINDER_PASS は、Block Storage サービス用に作成された RabbitMQ ユーザー名とパスワードに置き換えます。 - RabbitMQ の起動時に、
cinderユーザーに全リソースに対するパーミッションが付与されます。このアクセスは、特別に仮想ホスト/を介して行われます。Block Storage サービスがこの仮想ホストに接続されるように設定します。openstack-config --set /etc/cinder/cinder.conf \ DEFAULT rabbit_virtual_host /
# openstack-config --set /etc/cinder/cinder.conf \ DEFAULT rabbit_virtual_host /Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.7. Block Storage サービスとメッセージブローカーとの間の SSL 通信の有効化 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
メッセージブローカーで SSL を有効化した場合は、Block Storage サービスも相応に設定する必要があります。以下の手順では、エクスポートしたクライアントの証明書とキーファイルが必要です。これらのファイルのエクスポートの方法に関する説明は、「クライアント用 SSL 証明書のエクスポート」を参照してください。
- メッセージブローカーとの SSL 通信を有効化します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。- /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
# openstack-config --set /etc/cinder/cinder.conf \ DEFAULT kombu_ssl_ca_certs /path/to/ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow /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
# su cinder -s /bin/shCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/cinder/cinder.confで特定されているデータベースを初期化し、データを投入します。cinder-manage db sync
$ cinder-manage db syncCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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
# openstack-config --set /etc/cinder/cinder.conf \
DEFAULT osapi_volume_workers CORES
CORES はマシン上の CPU コア/スレッド数に置き換えてください。