1.7. コンテナーへの Ceph iSCSI ゲートウェイのインストール
Ansible デプロイメントアプリケーションは、コンテナーに Ceph iSCSI ゲートウェイを設定するために必要なデーモンとツールをインストールします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスター
手順
root ユーザーとして、
/etc/ansible/hosts
ファイルを開いて編集します。iSCSI ゲートウェイグループにノード名エントリーを追加します。例
[iscsigws] ceph-igw-1 ceph-igw-2
/usr/share/ceph-ansible
ディレクトリーに移動します。[root@admin ~]# cd /usr/share/ceph-ansible/
iscsigws.yml.sample
ファイルのコピーを作成し、iscsigws.yml
という名前を付けます。[root@admin ceph-ansible]# cp group_vars/iscsigws.yml.sample group_vars/iscsigws.yml
重要新しいファイル名 (
iscsigws.yml
) と新しいセクション見出し (iscsigws
) は、Red Hat Ceph Storage 3.1 以降にのみ適用されます。以前のバージョンの Red Hat Ceph Storage から 3.1 にアップグレードすると、古いファイル名 (iscsi-gws.yml
) と古いセクション見出し (iscsi-gws
) が引き続き使用されます。重要現在、Red Hat は、コンテナーベースのデプロイメントで ceph-ansible を使用してインストールする以下のオプションをサポートしていません。
-
gateway_iqn
-
rbd_devices
-
client_connections
これらのオプションを手動で設定する手順について は、コンテナーでの Ceph iSCSI ゲートウェイの設定 セクションを参照してください。
-
-
iscsigws.yml
ファイルを開いて編集します。 IPv4 アドレスまたは IPv6 アドレスを使用して、iSCSI ゲートウェイ IP アドレスを追加して、
gateway_ip_list
オプションを設定します。例
gateway_ip_list: 192.168.1.1,192.168.1.2
重要IPv4 アドレスと IPv6 アドレスを混在させることはできません。
必要に応じて、
trusted_ip_list
オプションのコメントを解除し、SSL を使用する場合は IPv4 または IPv6 アドレスを適宜追加します。SSL を設定するには、iSCSI ゲートウェイコンテナーへのroot
アクセスが必要です。SSL を設定するには、以下の手順を実行します。-
必要に応じて、すべての iSCSI ゲートウェイコンテナー内に
openssl
パッケージをインストールします。 プライマリー iSCSI ゲートウェイコンテナーで、SSL キーを保持するディレクトリーを作成します。
# mkdir ~/ssl-keys # cd ~/ssl-keys
プライマリー iSCSI ゲートウェイコンテナーで、証明書とキーファイルを作成します。
# openssl req -newkey rsa:2048 -nodes -keyout iscsi-gateway.key -x509 -days 365 -out iscsi-gateway.crt
注記環境情報を入力するよう求められます。
プライマリー iSCSI ゲートウェイコンテナーで、PEM ファイルを作成します。
# cat iscsi-gateway.crt iscsi-gateway.key > iscsi-gateway.pem
プライマリー iSCSI ゲートウェイコンテナーで、公開鍵を作成します。
# openssl x509 -inform pem -in iscsi-gateway.pem -pubkey -noout > iscsi-gateway-pub.key
-
プライマリー iSCSI ゲートウェイコンテナーから、
iscsi-gateway.crt
、iscsi-gateway.pem
、iscsi-gateway-pub.key
、およびiscsi-gateway.key
ファイルを他の iSCSI ゲートウェイコンテナーの/etc/ceph/
ディレクトリーにコピーします。
-
必要に応じて、すべての iSCSI ゲートウェイコンテナー内に
必要に応じて、次の iSCSI ターゲット API サービスオプションのいずれかを確認し、コメントを解除します。
#api_user: admin #api_password: admin #api_port: 5000 #api_secure: false #loop_delay: 1 #trusted_ip_list: 192.168.122.1,192.168.122.2
必要に応じて、次のリソースオプションのいずれかを確認してコメントを外し、ワークロードのニーズに応じて更新します。
# TCMU_RUNNER resource limitation #ceph_tcmu_runner_docker_memory_limit: 1g #ceph_tcmu_runner_docker_cpu_limit: 1 # RBD_TARGET_GW resource limitation #ceph_rbd_target_gw_docker_memory_limit: 1g #ceph_rbd_target_gw_docker_cpu_limit: 1 # RBD_TARGET_API resource limitation #ceph_rbd_target_api_docker_memory_limit: 1g #ceph_rbd_target_api_docker_cpu_limit: 1
Ansible のユーザーとして、Ansible のプレイブックを実行します。
[user@admin ceph-ansible]$ ansible-playbook site-docker.yml --limit iscsigws
Red Hat Enterprise Linux Atomic の場合、
--skip-tags=with_pkg
オプションを追加します。[user@admin ceph-ansible]$ ansible-playbook site-docker.yml --limit iscsigws --skip-tags=with_pkg
Ansible Playbook が完了したら、
trusted_ip_list
オプションにリストされている各ノードで、TCP ポート3260
とiscsigws.yml
ファイルで指定されたapi_port
を開きます。注記api_port
オプションが指定されていない場合、デフォルトのポートは5000
です。
関連情報
- コンテナーへの Red Hat Ceph Storage の インストールに関する詳細は、コンテナーへの Red Hat Ceph Storage クラスター のインストールセクションを参照してください。
- Ceph の iSCSI ゲートウェイオプションの詳細については、Red Hat Ceph Storage Block Device Guide の 表 8.1 を参照してください。
- iSCSI ターゲット API オプションの詳細については、Red Hat Ceph Storage Block Device Guide の 表 8.2 を参照してください。
-
iscsigws.yml
ファイルの例については、Red Hat Ceph Storage Block Device Guide の 付録 A を参照してください。
1.7.1. コンテナーでの Ceph iSCSI ゲートウェイの設定
Ceph iSCSI ゲートウェイの設定は、iSCSI ターゲット、論理ユニット番号 (LUN)、およびアクセス制御リスト (ACL) を作成および管理するための gwcli
コマンドラインユーティリティーを使用して行います。
前提条件
- 稼働中の Red Hat Ceph Storage クラスター
- iSCSI ゲートウェイソフトウェアのインストール。
手順
root
ユーザーとして、iSCSI ゲートウェイのコマンドラインインターフェイスを開始します。# docker exec -it rbd-target-api gwcli
IPv4 アドレスまたは IPv6 アドレスのいずれかを使用して iSCSI ゲートウェイを作成します。
構文
>/iscsi-target create iqn.2003-01.com.redhat.iscsi-gw:$TARGET_NAME > goto gateways > create $ISCSI_GW_NAME $ISCSI_GW_IP_ADDR > create $ISCSI_GW_NAME $ISCSI_GW_IP_ADDR
例
>/iscsi-target create iqn.2003-01.com.redhat.iscsi-gw:ceph-igw > goto gateways > create ceph-gw-1 10.172.19.21 > create ceph-gw-2 10.172.19.22
重要IPv4 アドレスと IPv6 アドレスを混在させることはできません。
RADOS ブロックデバイス (RBD) を追加します。
構文
> cd /disks >/disks/ create $POOL_NAME image=$IMAGE_NAME size=$IMAGE_SIZE[m|g|t] max_data_area_mb=$BUFFER_SIZE
例
> cd /disks >/disks/ create rbd image=disk_1 size=50g max_data_area_mb=32
重要プール名またはイメージ名にピリオド (.) を含めることはできません。
警告Red Hat サポートからの指示がない限り、
max_data_area_mb
オプションを調整しないでください。max_data_area_mb
オプションは、iSCSI ターゲットと Ceph クラスターの間で SCSI コマンドデータを渡す時に各イメージが使用できるメモリー量をメガバイト単位で制御します。この値が小さすぎると、パフォーマンスに影響を与える過剰なキューのフル再試行が発生する可能性があります。値が大きすぎると、1 つのディスクがシステムのメモリーを過剰に使用する結果になり、他のサブシステムの割り当てエラーを引き起こす可能性があります。デフォルト値は 8 です。この値は、
reconfigure
コマンドを使用して変更できます。このコマンドを有効にするには、イメージが iSCSI イニシエーターによって使用されていてはなりません。構文
>/disks/ reconfigure max_data_area_mb $NEW_BUFFER_SIZE
例
>/disks/ reconfigure max_data_area_mb 64
クライアントを作成します。
構文
> goto hosts > create iqn.1994-05.com.redhat:$CLIENT_NAME > auth chap=$USER_NAME/$PASSWORD
例
> goto hosts > create iqn.1994-05.com.redhat:rh7-client > auth chap=iscsiuser1/temp12345678
重要CHAP の無効化は、Red Hat Ceph Storage 3.1 以降でのみサポートされています。Red Hat は、CHAP が有効になっているクライアントと CHAP が無効になっているクライアントの混在をサポートしていません。すべてのクライアントの CHAP を有効にするか、無効にする必要があります。デフォルトの動作としては、イニシエーター名でイニシエーターを認証するだけです。
イニシエーターがターゲットへのログインに失敗している場合、一部のイニシエーターで CHAP 認証が正しく設定されていない可能性があります。
例
o- hosts ................................ [Hosts: 2: Auth: MISCONFIG]
hosts
レベルで次のコマンドを実行して、すべての CHAP 認証をリセットします。/> goto hosts /iscsi-target...csi-igw/hosts> auth nochap ok ok /iscsi-target...csi-igw/hosts> ls o- hosts ................................ [Hosts: 2: Auth: None] o- iqn.2005-03.com.ceph:esx ........... [Auth: None, Disks: 4(310G)] o- iqn.1994-05.com.redhat:rh7-client .. [Auth: None, Disks: 0(0.00Y)]
ディスクをクライアントに追加します。
構文
>/iscsi-target..eph-igw/hosts> cd iqn.1994-05.com.redhat:$CLIENT_NAME > disk add $POOL_NAME.$IMAGE_NAME
例
>/iscsi-target..eph-igw/hosts> cd iqn.1994-05.com.redhat:rh7-client > disk add rbd.disk_1
次のコマンドを実行して、iSCSI ゲートウェイの設定を確認します。
> ls
必要に応じて、API が SSL を正しく使用していることを確認し、
/var/log/rbd-target-api.log
ファイルでhttps
を調べます。次に例を示します。Aug 01 17:27:42 test-node.example.com python[1879]: * Running on https://0.0.0.0:5000/
- 次のステップは、iSCSI イニシエーターを設定することです。
関連情報
- コンテナーへの Red Hat Ceph Storage の インストールに関する詳細は、コンテナーへの Red Hat Ceph Storage クラスター のインストールセクションを参照してください。
- コンテナーへの iSCSI ゲートウェイソフトウェアのインストールの詳細については、コンテナー への Ceph iSCSI ゲートウェイのインストール セクションを参照してください。
- iSCSI イニシエーターの接続に関する詳細は、Red Hat Ceph Storage Block Device Guide の Configuring the iSCSI Initiator セクションを参照してください。