Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
Fujitsu ETERNUS バックエンドガイド
Red Hat OpenStack Platform 環境で Fujitsu ETERNUS バックエンドを使用するためのガイド
OpenStack Documentation Team
rhos-docs@redhat.com
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 はじめに
本書では、Block Storage サービスのバックエンドとして Fujitsu ETERNUS Disk Storage System を使用するように Red Hat OpenStack Platform を設定する方法を説明します。本書では、オーバークラウドのデプロイメントで ETERNUS デバイスが提供する Fibre Channel および iSCSI バックエンドを定義する方法について説明します。このプロセスでは、両方のバックエンドを Block Storage サービスの custom back end
として定義します。デフォルトでは、コントローラーノードには Block Storage サービスが含まれます。
前提条件
-
富士通プラグインのコンテナー
registry.connect.redhat.com/fujitsu/rhosp13-fujitsu-cinder-volume-161
を使用して、Red Hat OpenStack Platform オーバークラウドが director を介してデプロイされている。詳細は、ベンダープラグインのプラグイン を参照してください。 - Block Storage バックエンドには、Fujitsu ETERNUS Disk Storage System デバイスおよびドライバーのみを使用する。
- オーバークラウドデプロイメントで作成した director インストールユーザーを使用できる。詳細は、Director のインストールおよび使用法 から スタックユーザーの作成 を参照してください。
-
ETERNUS Web GUI または CLI から ETERNUS デバイスの
Admin
アカウントにアクセスできる。
Red Hat は、Fujitsu ETERNUS デバイスでの Fibre Channel または iSCSI インターフェイスの使用と、それぞれのドライバーおよび設定の使用をサポートしています。
カスタムバックエンドの定義に関する詳しい情報は、カスタム Block Storage バックエンドデプロイメントガイド を参照してください。
第2章 Fujitsu ETERNUS デバイスの設定
Fujitsu ETERNUS デバイスを Block Storage バックエンドとして定義する前に、デバイスにストレージプールおよびポートを設定します。各手順の詳細については、デバイスのドキュメントを参照してください。
手順
- Block Storage サービスをホストするコントローラーノードと ETERNUS デバイスの MNT ポート間の LAN 接続を設定します。
- コンピュートノードと ETERNUS デバイスの CA ポートとの間の SAN 接続を設定します。
-
Admin
ロールのアカウントを使用して ETERNUS デバイスにログインします。 - ETERNUS DX の SMI-S を有効にします。
- SSH キーを設定します。
-
software
ロール のユーザーアカウントを追加します。 -
Advanced Copy Feature
ライセンスを登録し、コピーテーブルのサイズを設定します。 -
ボリュームのストレージプールを作成します。このプールは後で、「Fujitsu ETERNUS バックエンドごとのドライバー定義の作成」 の
EternusPool
設定で使用します。 -
オプション: ボリュームのスナップショット用に別のストレージプールを作成します。このプールは、「Fujitsu ETERNUS バックエンドごとのドライバー定義の作成」 の
EternusSnapPool
設定を表します。 オプション:
Snap Data Pool Volume (SDPV)
を作成して、create a snapshot
機能を作成する ための Snap Data Pool (SDP) を有効にします。ヒントEternusSnapPool
にシンプロビジョニングプールを使用する場合は、この手順を省略します。-
Block Storage サービスが使用する
storage ports
を設定します。 -
storage ports
ポートをCA
モードに設定します。 ストレージポートの
host-affinity
を有効にするには、各ポートに対して ETERNUS CLI から次のコマンドを入力します。set <PROTO>-parameters -host-affinity enable -port <CM#> <CA#> <PORT>
-
<PROTO> を、
fc
やiscsi
などのストレージプロトコルに置き換えます。 - <CM#> および <CA#> を、ポートが置かれているコントローラーエンクロージャーの名前に置き換えます。
- <PORT> をポート番号に置き換えます。
-
<PROTO> を、
以下のコマンドを使用してアンダークラウドで SSH キーを生成し、
eternus.ietf
ファイルを ETERNUS デバイスにアップロードします。ssh-keygen -t rsa -N "" -f ./eternus ssh-keygen -e -f ./eternus.pub > ./eternus.ietf
注記後で使用できるように
eternus
ファイルを保存します。セキュリティー上の理由から、アンダークラウドまたはオーバークラウドからコピーしたり、移動したりしないでください。
第3章 Fujitsu ETERNUS heat テンプレートの準備
Red Hat Open Stack Platform オーバークラウドへの今後の更新を通じて設定が維持されるようにするには、director を介したデプロイメント中にすべてのサービス設定を実行します。
Block Storage サービスをホストする ETERNUS バックエンドのコントローラーノードに、以下の設定を追加します。
- 各バックエンドのドライバー設定に XML 設定ファイルを含めます。
- ETERNUS デバイスと通信するための SSH サーバーキーを含めます。
heat テンプレートを使用して、director で両方のタスクをオーケストレーションすることができます。director heat テンプレートの構文の詳細については、オーバークラウの詳細ドガイドの Heat テンプレートの概要 を参照してください。
以下のテンプレート eternus-temp.yaml
は、必要な heat テンプレートの基本的な構文を示しています。
eternus-temp.yaml
heat_template_version: 2014-10-16 description: > Add XML configuration file for the driver settings of each back end parameters: server: type: string resources: EternusSetup: # 1 type: OS::Heat::SoftwareConfig properties: group: script config: | # 2 #!/bin/bash # 3 ExtraPreDeployment: type: OS::Heat::SoftwareDeployment properties: config: {get_resource: EternusSetup} server: {get_param: server} actions: ['CREATE','UPDATE']
- 1
EternusSetup
セクションには、コントローラーノードのタスクをオーケストレーションするリソースが含まれます。- 2
config
セクションには、コントローラーノードで実行するコマンドが含まれます。- 3
- Block Storage サービスがホストされる各コントローラーノードに秘密鍵の情報をコピーし、「Fujitsu ETERNUS バックエンドごとのドライバー定義の作成」 の各バックエンドのドライバー設定用に XML 設定ファイルを作成するコマンドを追加します。
このファイルを director ノードのカスタム heat テンプレートディレクトリー /home/stack/templates/
に保存します。
3.1. Fujitsu ETERNUS バックエンドごとのドライバー定義の作成
Block Storage 設定ファイル /etc/cinder/cinder.conf
ではなく、別の XML ファイルで各 ETERNUS バックエンド用のドライバー設定を定義します。各バックエンドに、以下の設定が含まれる XML ファイルがあることを確認します。
- EternusIP
- ETERNUS デバイスの SMI-S 接続の IP アドレス。デバイスの MNT ポートの IP アドレスを使用します。
- EternusPort
- ETERNUS デバイスの SMI-S 接続ポートのポート番号。
- EternusUser
-
接続
EternusIP
のsoftware
ロールのユーザー名。 - EternusPassword
-
EternusIP
上のEternusUser
の対応するパスワード。 - EternusPool
- 2章Fujitsu ETERNUS デバイスの設定 からのボリュームのストレージプールの名前。ETERNUS デバイスのプール RAID Group 名または TPP 名を使用します。
- EternusSnapPool
-
2章Fujitsu ETERNUS デバイスの設定 からのボリュームスナップショットのストレージプールの名前。ETERNUS デバイスのプール RAID Group 名を使用します。スナップショットに別のプールを作成していない場合は、
EternusPool
と同じ値を使用します。
以下の xml の例を使用して Fibre Channel 設定を定義します。
eternus-fc.xml
<?xml version='1.0' encoding='UTF-8'?> <FUJITSU> <EternusIP>0.0.0.0</EternusIP> <EternusPort>5988</EternusPort> <EternusUser>smisuser</EternusUser> <EternusPassword>smispassword</EternusPassword> <EternusPool>raid5_0001</EternusPool> <EternusSnapPool>raid5_0001</EternusSnapPool> </FUJITSU>
以下の xml の例で ISCSI 設定を定義します。
eternus-iscsi.xml
<?xml version='1.0' encoding='UTF-8'?> <FUJITSU> <EternusIP>0.0.0.0</EternusIP> <EternusPort>5988</EternusPort> <EternusUser>smisuser</EternusUser> <EternusPassword>smispassword</EternusPassword> <EternusPool>raid5_0001</EternusPool> <EternusSnapPool>raid5_0001</EternusSnapPool> </FUJITSU>
これらの XML ファイルの作成をオーケストレーションするには、3章Fujitsu ETERNUS heat テンプレートの準備 の /home/stack/templates/eternus-temp.yaml
ファイルの EternusSetup
リソースの config
セクションに bash コマンドを含めます。以下のコマンド例を使用して、eternus-fc.xml
および eternus-iscsi.xml
の作成をオーケストレーションします。
sudo cat > /etc/cinder/eternus-fc.xml <<EOF <?xml version='1.0' encoding='UTF-8'?> <FUJITSU> <EternusIP>0.0.0.0</EternusIP> <EternusPort>5988</EternusPort> <EternusUser>smisuser</EternusUser> <EternusPassword>smispassword</EternusPassword> <EternusPool>raid5_0001</EternusPool> <EternusSnapPool>raid5_0001</EternusSnapPool> </FUJITSU> EOF sudo cat > /etc/cinder/eternus-iscsi.xml <<EOF <?xml version='1.0' encoding='UTF-8'?> <FUJITSU> <EternusIP>0.0.0.0</EternusIP> <EternusPort>5988</EternusPort> <EternusUser>smisuser</EternusUser> <EternusPassword>smispassword</EternusPassword> <EternusPool>raid5_0001</EternusPool> <EternusSnapPool>raid5_0001</EternusSnapPool> </FUJITSU> EOF
sudo cat
コマンドを使用して、必要な数の XML 設定ファイルを作成します。
cinder
ユーザーおよびグループに対するこれらの XML ファイルの所有権および権限を設定します。
sudo chown cinder:cinder /etc/cinder/eternus-*.xml sudo chmod 0600 /etc/cinder/eternus-*.xml
完了した heat テンプレートの例については、「Fujitsu ETERNUS heat テンプレートの例」 を参照してください。
3.2. Fujitsu ETERNUS heat テンプレートの例
以下の /home/stack/templates/eternus-temp.yaml
ファイルには、XML 設定ファイルのサンプルを宣言するために必要なパラメーター (eternus-fc.xml
や eternus-iscsi.xml
など) が含まれます。
/home/stack/templates/eternus-temp.yaml
heat_template_version: 2014-10-16
description: >
Add XML configuration file for the driver settings of each back end
parameters:
server:
type: string
resources:
EternusSetup:
type: OS::Heat::SoftwareConfig
properties:
group: script
config: |
#!/bin/bash
sudo cat > /etc/cinder/eternus-fc.xml <<EOF
<?xml version='1.0' encoding='UTF-8'?>
<FUJITSU>
<EternusIP>0.0.0.0</EternusIP>
<EternusPort>5988</EternusPort>
<EternusUser>smisuser</EternusUser>
<EternusPassword>smispassword</EternusPassword>
<EternusPool>raid5_0001</EternusPool>
<EternusSnapPool>raid5_0001</EternusSnapPool>
</FUJITSU>
EOF
sudo cat > /etc/cinder/eternus-iscsi.xml <<EOF
<?xml version='1.0' encoding='UTF-8'?>
<FUJITSU>
<EternusIP>0.0.0.0</EternusIP>
<EternusPort>5988</EternusPort>
<EternusUser>smisuser</EternusUser>
<EternusPassword>smispassword</EternusPassword>
<EternusPool>raid5_0001</EternusPool>
<EternusSnapPool>raid5_0001</EternusSnapPool>
</FUJITSU>
EOF
sudo cat > /etc/cinder/eternus <<EOF
-----BEGIN RSA PRIVATE KEY----- # 1
MIIEpAIBAAKCAQEAv5yMqonpfniu+l1PJ8qdWZpcf0d4UcHj2uyE7ou7vcZUQ1Cq
s5Q5pjkCgYAxlTIpfOYA8jvLgc7vMEa/ZbhUgAPlYlisxbffmRsBWyJSt9gwHpcW
hvaWo6VD/iUKZ3bOcMK0buUwBdFUt5s9B8mXbYsX6bWovlVkyu8DzQfpDiPnV6C8
...
IB+46IdmCUO0DaciuEz5/KQd4AXBNdTOss2od6OzihDJXKjBwPyP1g==
-----END RSA PRIVATE KEY-----
EOF
ExtraPreDeployment:
type: OS::Heat::SoftwareDeployment
properties:
config: {get_resource: EternusSetup}
server: {get_param: server}
actions: [CREATE,UPDATE]
第4章 Fujitsu ETERNUS 環境ファイルの作成
環境ファイルには、定義する各バックエンドの設定と、その他の関連する設定が含まれています。環境ファイルについての詳細は、オーバークラウドの高度なカスタマイズ の 環境ファイル を参照してください。
また、環境ファイルは、3章Fujitsu ETERNUS heat テンプレートの準備 で作成した heat テンプレートを登録します。heat テンプレートで定義した installation コマンドと echo コマンドは、デプロイメント中に適切なノードで実行されます。
以下の環境ファイルの例には、Block Storage バックエンドとして ETERNUS デバイスを定義するのに必要なセクションが含まれています。また、「Fujitsu ETERNUS バックエンドごとのドライバー定義の作成」 および 「Fujitsu ETERNUS heat テンプレートの例」 でオーケストレーションされる対応する各 XML ファイルのバックエンド定義も作成します。
eternusbackend-env.yaml
resource_registry: OS::TripleO::NodeExtraConfig: /home/stack/templates/eternus-temp.yaml # 1 parameter_defaults: # 2 CinderEnableIscsiBackend: false CinderEnableRbdBackend: false CinderEnableNfsBackend: false NovaEnableRbdBackend: false GlanceBackend: file # 3 controllerExtraConfig: # 4 cinder::config::cinder_config: FJFC/volume_driver: # 5 value: cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_fc.FJDXFCDriver FJFC/cinder_eternus_config_file: # 6 value: /etc/cinder/eternus-fc.xml FJFC/volume_backend_name: # 7 value: FJFC FJFC/fujitsu_private_key_path: value: /etc/cinder/eternus FJISCSI/volume_driver: # 8 value: cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_iscsi.FJDXISCSIDriver FJISCSI/cinder_eternus_config_file: value: /etc/cinder/eternus-iscsi.xml FJISCSI/volume_backend_name: value: FJISCSI FJISCSI/fujitsu_private_key_path: value: /etc/cinder/eternus cinder_user_enabled_backends: ['FJFC','FJISCSI'] # 9 CinderVolumeOptVolumes: 10 - /etc/cinder/eternus-iscsi.xml:/etc/cinder/eternus-iscsi.xml:ro - /etc/cinder/eternus-fc.xml:/etc/cinder/eternus-fc.xml:ro - /etc/cinder/eternus:/etc/cinder/eternus:ro
- 1
Node Extra Config
を使用して、コア Puppet 設定の前にすべてのノードのカスタム設定を定義します。これにより、Block Storage サービスがオーバークラウドにデプロイされる際に、以下の設定が可能になります。- 各バックエンドの XML 設定ファイルが存在する。
- 秘密鍵が生成される。
- 2
- 他のバックエンド種別を無効にするには、以下のパラメーターを
false
に設定します。-
CinderEnableIscsiBackend
: 他の iSCSI バックエンド。 -
CinderEnableRbdBackend
: Red Hat Ceph Storage. -
CinderEnableNfsBackend
: NFS. -
NovaEnableRbdBackend
: ephemeral Red Hat Ceph Storage。
-
- 3
GlanceBackend
パラメーターを使用して、Image サービスのイメージストレージ設定を定義します。以下の値がサポートされます。-
この
ファイル
は、各コントローラーノードの/var/lib/glance/images
にイメージを保存します。 -
swift
は、イメージストレージに Object Storage サービスを使用します。 -
cinder
は、イメージストレージに Block Storage サービスを使用します。
-
この
- 4
controllerExtraConfig
を使用して、全コントローラーノードのカスタム設定を定義します。cinder::config::cinder_config
クラスは Block Storage サービス用です。director は、これらのバックエンド設定を各ノードの/etc/cinder/cinder.conf
ファイルに保存します。- 5
FJFC
という名前のバックエンド定義をFJFC/
文字列で設定し、そのバックエンド定義でvolume_driver
パラメーターを宣言します。volume_driver
パラメーターを使用して、バックエンドの Fibre Channel ETERNUS ドライバーを設定します (例:cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_fc.FJDXFCDriver
)。- 6
cinder_eternus_config_file
を使用して、ドライバーがバックエンドに使用する XML 設定ファイルへのパスを設定します。/home/stack/templates/eternus-temp.yaml
などの heat テンプレートを使用して、/etc/cinder/eternus-fc.xml
の作成をオーケストレーションします。- 7
volume_backend_name
は、Block Storage サービスがバックエンドを有効にするために使用する名前です。- 8
FJISCSI/
文字列で新しいバックエンド定義を設定します。volume_driver
パラメーターを使用して、バックエンドの iSCSI ETERNUS ドライバーを設定します (例:cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_iscsi.FJDXISCSIDriver
)。- 9
cinder_user_enabled_backends
クラスでカスタムバックエンドを設定して有効にします。このクラスは、ユーザー対応バックエンド (cinder::config::cinder_config
クラスで定義されるものなど) にのみ使用します。- 10
CinderVolumeOptVolumes
を使用して、コンテナーで実行中の cinder-volume サービスがホストのカスタム設定ファイルを利用できるようにします。
環境ファイルを作成したら、設定をデプロイできます。環境ファイル /home/stack/templates/eternusbackend-env.yaml
の詳細については、5章設定された Fujitsu ETERNUS バックエンドのデプロイ を参照してください。
第5章 設定された Fujitsu ETERNUS バックエンドのデプロイ
/home/stack/templates/
に eternusbackend-env.yaml ファイルを作成したら、以下の手順を実行します。
手順
-
stack
ユーザーとしてログインします。 - 以下のコマンドを使用して、バックエンド設定をデプロイします。
$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/eternusbackend-env.yaml
オーバークラウドの作成時に追加の環境ファイルを渡した場合には、予定外の変更がオーバークラウドに加えられないように、ここで -e
オプションを使用して環境ファイルを再度渡します。詳細は、director のインストールと使用方法ガイドの オーバークラウド環境の変更 を参照してください。
director のオーケストレーションが完了したら、バックエンドをテストします。6章Fujitsu ETERNUS 設定のテストを参照してください。
第6章 Fujitsu ETERNUS 設定のテスト
新しい ETERNUS バックエンドを使用するように Block Storage サービスを設定した後、各バックエンドの volume type
を宣言します。ボリュームタイプを使用して、新しいボリュームを作成するときに使用するバックエンドを指定します。
- Fibre Channel バックエンドを作成し、以下のコマンドで該当するバックエンドにマッピングします。
# cinder type-create FJFC # cinder type-key FJFC set volume_backend_name=FJFC
- iSCSI バックエンドを作成し、以下のコマンドで該当するバックエンドにマッピングします。
# cinder type-create FJISCSI # cinder type-key FJISCSI volume_backend_name=FJISCSI
ボリュームタイプの詳しい情報は、4章Fujitsu ETERNUS 環境ファイルの作成 を参照してください。
-
test_iscsi
という名前の 1GB の iSCSI ボリュームを作成し、設定を確認します。
# cinder create --volume_type FJISCSI --display_name test_iscsi 1
- Fibre Channel バックエンドをテストします。
# cinder create --volume_type FJFC --display_name test_fc 1