7.3. iSCSI ゲートウェイのインストール
ストレージ管理者は、必要なソフトウェアパッケージをインストールしてからでないと、Ceph iSCSI ゲートウェイの利点を活用できません。Ansible デプロイメントツールを使用するか、コマンドラインインターフェイス を使用して、Ceph iSCSI ゲートウェイをインストールできます。
各 iSCSI ゲートウェイは、Linux I/O ターゲットカーネルサブシステム (LIO) を実行して、iSCSI プロトコルをサポートします。LIO はユーザー空間パススルー (TCMU) を使用して Ceph librbd
ライブラリーと対話し、RBD イメージを iSCSI クライアントに公開します。Ceph の iSCSI ゲートウェイの場合には、従来のストレージエリアネットワーク (SAN) のすべての機能および利点を使用して、完全に統合されたブロックストレージインフラストラクチャーを効率的に実行できます。
7.3.1. 前提条件
- Red Hat Enterprise Linux 8 または 7.7 以降。
- 稼働中の Red Hat Ceph Storage 4 以降のクラスター。
7.3.2. Ansible を使用した Ceph iSCSI ゲートウェイのインストール
Ansible ユーティリティーを使用して、パッケージをインストールし、Ceph iSCSI ゲートウェイのデーモンを設定します。
前提条件
-
ceph-ansible
パッケージがインストールされている Ansible 管理ノード
手順
- iSCSI ゲートウェイノードで、Red Hat Ceph Storage 4 Tools リポジトリーを有効にします。詳細は、Red Hat Ceph Storage インストールガイドの Red Hat Ceph Storage リポジトリーの有効化 セクションを参照してください。
Ansible 管理ノードで、ゲートウェイグループの
/etc/ansible/hosts
ファイルにエントリーを追加します。iSCSI ゲートウェイを OSD ノードと同じ場所に配置する場合には、OSD ノードを[iscsigws]
セクションに追加します。[iscsigws] ceph-igw-1 ceph-igw-2
-
Ansible は、
/usr/share/ceph-ansible/group_vars/
ディレクトリーにファイル (iscsigws.yml.sample
) を配置します。iscsigws.yml
という名前を付けて、iscsigws.yml.sample
ファイルのコピーを作成します。 -
iscsigws.yml
ファイルを開いて編集します。 trusted_ip_list
オプションのコメントを解除し、IPv4 アドレスまたは IPv6 アドレスを使用して値を適宜更新します。例
IPv4 アドレスが 10.172.19.21 および 10.172.19.22 の 2 つのゲートウェイを追加して、
trusted_ip_list
を以下のように設定します。trusted_ip_list: 10.172.19.21,10.172.19.22
必要に応じて、iSCSI Gateway Variables セクションの Ansible 変数と説明を確認し、
iscsigws.yml
を更新します。警告ゲートウェイ設定の変更は、一度に 1 つのゲートウェイからのみサポートされます。複数のゲートウェイで同時に変更を実行しようとすると、設定が不安定になり、不整合が発生する可能性があります。
警告ansible-playbook
コマンドが使用されると、Ansible はceph-iscsi
パッケージをインストールして、group_vars/iscsigws.yml
ファイルの設定をもとに/etc/ceph/iscsi-gateway.cfg
ファイルを作成して更新します。コマンドラインインターフェイスを使用した iSCSI ゲートウェイのインストール で記載のとおり、コマンドラインインターフェイスを使用してceph-iscsi
パッケージを以前にインストールした場合には、既存の設定をiscsi-gateway.cfg
ファイルからgroup_vars/iscsigws.yml
ファイルにコピーします。Ansible 管理ノードで、Ansible Playbook を実行します。
ベアメタル デプロイメント:
[admin@ansible ~]$ cd /usr/share/ceph-ansible [admin@ansible ceph-ansible]$ ansible-playbook site.yml -i hosts
コンテナー デプロイメント:
[admin@ansible ~]$ cd /usr/share/ceph-ansible [admin@ansible ceph-ansible]$ ansible-playbook site-container.yml -i hosts
警告スタンドアロン iSCSI ゲートウェイノードで、正しい Red Hat Ceph Storage 4 ソフトウェアリポジトリーが有効であることを確認します。リポジトリーが利用できない場合には、Ansible は誤ったパッケージをインストールする可能性があります。
ターゲット、LUN、およびクライアントを作成するには、
gwcli
ユーティリティーまたは Red Hat Ceph Storage ダッシュボードを使用します。重要targetcli
ユーティリティーを使用して設定を変更しないでください。これにより、ALUA のご設定とパスのフェイルオーバーという問題が発生します。データが破損して iSCSI ゲートウェイ間で設定が一致しない場合や、WWN 情報が一致しなくなる可能性があり、クライアントのパスに問題が生じます。
関連情報
-
完全なサンプルファイルを確認するには、サンプルの
iscsigws.yml
ファイル を参照してください。 - コマンドラインインターフェイスを使用した iSCSI ターゲットの設定
- iSCSI ターゲットの作成
7.3.3. コマンドラインインターフェイスを使用した Ceph iSCSI ゲートウェイのインストール
Ceph iSCSI ゲートウェイは、iSCSI ターゲットノードおよび Ceph クライアントノードです。Ceph iSCSI ゲートウェイはスタンドアロンノードにすることも、Ceph Object Store Disk (OSD) ノードと同じ場所に配置することもできます。Ceph iSCSI ゲートウェイをインストールするには、以下の手順を実施します。
前提条件
- Red Hat Enterprise Linux 8 または 7.7 以降
- Red Hat Ceph Storage 4 クラスター以降
ストレージクラスターのすべての Ceph Monitor ノードで、
root
ユーザーとしてceph-mon
サービスを再起動します。構文
systemctl restart ceph-mon@MONITOR_HOST_NAME
例
[root@mon ~]# systemctl restart ceph-mon@monitor1
-
Ceph iSCSI ゲートウェイが OSD ノードと同じ場所に配置されていない場合には、
/etc/ceph/
ディレクトリーにある Ceph 設定ファイルを、ストレージクラスターにある実行中の Ceph ノードから iSCSI ゲートウェイノードすべてにコピーしてください。Ceph 設定ファイルは、/etc/ceph/
の iSCSI ゲートウェイノードに存在している必要があります。 - すべての Ceph iSCSI ゲートウェイノードで、Ceph Tools リポジトリーを有効にします。詳細は、インストールガイドの Red Hat Ceph Storage リポジトリーの有効化 セクションを参照してください。
- すべての Ceph iSCSI ゲートウェイノードに、Ceph コマンドラインインターフェイスをインストールおよび設定します。詳細は、Red Hat Ceph Storage 4 インストールガイドの Ceph コマンドラインインターフェイスのインストール の章を参照してください。
- 必要に応じて、すべての Ceph iSCSI ノードのファイアウォールで TCP ポート 3260 および 5000 を開きます。
- 新規を作成するか、既存の RADOS ブロックデバイス (RBD) を使用します。
手順
すべての Ceph iSCSI ゲートウェイノードで、
ceph-iscsi
パッケージとtcmu-runner
パッケージをインストールします。[root@iscsigw ~]# yum install ceph-iscsi tcmu-runner
重要これらのパッケージの以前のバージョンが存在する場合には、新しいバージョンをインストールする前に削除します。これらの新しいバージョンを Red Hat Ceph Storage リポジトリーからインストールする必要があります。
必要に応じて、すべての Ceph iSCSI ゲートウェイノードで OpenSSL ユーティリティーをインストールし、設定します。
openssl
パッケージをインストールします。[root@iscsigw ~]# yum install openssl
プライマリー iSCSI ゲートウェイノードで、SSL キーを保存するディレクトリーを作成します。
[root@iscsigw ~]# mkdir ~/ssl-keys [root@iscsigw ~]# cd ~/ssl-keys
プライマリー iSCSI ゲートウェイノードで、証明書およびキーファイルを作成します。プロンプトが表示されたら、環境情報を入力します。
[root@iscsigw ~]# openssl req -newkey rsa:2048 -nodes -keyout iscsi-gateway.key -x509 -days 365 -out iscsi-gateway.crt
プライマリー iSCSI ゲートウェイノードで、PEM ファイルを作成します。
[root@iscsigw ~]# cat iscsi-gateway.crt iscsi-gateway.key > iscsi-gateway.pem
プライマリー iSCSI ゲートウェイノードで、公開鍵を作成します。
[root@iscsigw ~]# 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/
ディレクトリーにコピーします。
Ceph iSCSI ゲートウェイノードに設定ファイルを作成し、これをすべての iSCSI ゲートウェイノードにコピーします。
/etc/ceph/
ディレクトリーにiscsi-gateway.cfg
という名前のファイルを作成します。[root@iscsigw ~]# touch /etc/ceph/iscsi-gateway.cfg
iscsi-gateway.cfg
ファイルを編集し、以下の行を追加します。構文
[config] cluster_name = CLUSTER_NAME gateway_keyring = CLIENT_KEYRING api_secure = false trusted_ip_list = IP_ADDR,IP_ADDR
例
[config] cluster_name = ceph gateway_keyring = ceph.client.admin.keyring api_secure = false trusted_ip_list = 192.168.0.10,192.168.0.11
-
iscsi-gateway.cfg
ファイルをすべての iSCSI ゲートウェイノードにコピーします。このファイルは、すべての iSCSI ゲートウェイノードで同じでなければなりません。
すべての Ceph iSCSI ゲートウェイノードで、API サービスを有効にして起動します。
[root@iscsigw ~]# systemctl enable rbd-target-api [root@iscsigw ~]# systemctl start rbd-target-api [root@iscsigw ~]# systemctl enable rbd-target-gw [root@iscsigw ~]# systemctl start rbd-target-gw
- 次に、ターゲット、LUN、およびクライアントを設定します。詳細は、コマンドラインインターフェイスを使用した iSCSI ターゲットの設定 セクションを参照してください。
関連情報
- オプションの詳細については、iSCSI ゲートウェイ変数 セクションを参照してください。
- iSCSI ターゲットの作成
7.3.4. 関連情報
- Ceph iSCSI ゲートウェイの Anisble 変数の詳細は、付録B iSCSI ゲートウェイ変数 を参照してください。