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 管理ノード

手順

  1. iSCSI ゲートウェイノードで、Red Hat Ceph Storage 4 Tools リポジトリーを有効にします。詳細は、Red Hat Ceph Storage インストールガイドRed Hat Ceph Storage リポジトリーの有効化 セクションを参照してください。
  2. Ansible 管理ノードで、ゲートウェイグループの /etc/ansible/hosts ファイルにエントリーを追加します。iSCSI ゲートウェイを OSD ノードと同じ場所に配置する場合には、OSD ノードを [iscsigws] セクションに追加します。

    [iscsigws]
    ceph-igw-1
    ceph-igw-2
  3. Ansible は、/usr/share/ceph-ansible/group_vars/ ディレクトリーにファイル (iscsigws.yml.sample) を配置します。iscsigws.yml という名前を付けて、iscsigws.yml.sample ファイルのコピーを作成します。
  4. iscsigws.yml ファイルを開いて編集します。
  5. 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
  6. 必要に応じて、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 ファイルにコピーします。

  7. 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 は誤ったパッケージをインストールする可能性があります。

  8. ターゲット、LUN、およびクライアントを作成するには、gwcli ユーティリティーまたは Red Hat Ceph Storage ダッシュボードを使用します。

    重要

    targetcli ユーティリティーを使用して設定を変更しないでください。これにより、ALUA のご設定とパスのフェイルオーバーという問題が発生します。データが破損して iSCSI ゲートウェイ間で設定が一致しない場合や、WWN 情報が一致しなくなる可能性があり、クライアントのパスに問題が生じます。

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) を使用します。

手順

  1. すべての Ceph iSCSI ゲートウェイノードで、ceph-iscsi パッケージと tcmu-runner パッケージをインストールします。

    [root@iscsigw ~]# yum install ceph-iscsi tcmu-runner
    重要

    これらのパッケージの以前のバージョンが存在する場合には、新しいバージョンをインストールする前に削除します。これらの新しいバージョンを Red Hat Ceph Storage リポジトリーからインストールする必要があります。

  2. 必要に応じて、すべての Ceph iSCSI ゲートウェイノードで OpenSSL ユーティリティーをインストールし、設定します。

    1. openssl パッケージをインストールします。

      [root@iscsigw ~]# yum install openssl
    2. プライマリー iSCSI ゲートウェイノードで、SSL キーを保存するディレクトリーを作成します。

      [root@iscsigw ~]# mkdir ~/ssl-keys
      [root@iscsigw ~]# cd ~/ssl-keys
    3. プライマリー iSCSI ゲートウェイノードで、証明書およびキーファイルを作成します。プロンプトが表示されたら、環境情報を入力します。

      [root@iscsigw ~]# openssl req -newkey rsa:2048 -nodes -keyout iscsi-gateway.key -x509 -days 365 -out iscsi-gateway.crt
    4. プライマリー iSCSI ゲートウェイノードで、PEM ファイルを作成します。

      [root@iscsigw ~]# cat iscsi-gateway.crt iscsi-gateway.key > iscsi-gateway.pem
    5. プライマリー iSCSI ゲートウェイノードで、公開鍵を作成します。

      [root@iscsigw ~]# openssl x509 -inform pem -in iscsi-gateway.pem -pubkey -noout > iscsi-gateway-pub.key
    6. プライマリー iSCSI ゲートウェイノードから、iscsi-gateway.crtiscsi-gateway.pemiscsi-gateway-pub.key および iscsi-gateway.key ファイルを、他の iSCSI ゲートウェイノードの /etc/ceph/ ディレクトリーにコピーします。
  3. Ceph iSCSI ゲートウェイノードに設定ファイルを作成し、これをすべての iSCSI ゲートウェイノードにコピーします。

    1. /etc/ceph/ ディレクトリーに iscsi-gateway.cfg という名前のファイルを作成します。

      [root@iscsigw ~]# touch /etc/ceph/iscsi-gateway.cfg
    2. 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

    3. iscsi-gateway.cfg ファイルをすべての iSCSI ゲートウェイノードにコピーします。このファイルは、すべての iSCSI ゲートウェイノードで同じでなければなりません。
  4. すべての 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
  5. 次に、ターゲット、LUN、およびクライアントを設定します。詳細は、コマンドラインインターフェイスを使用した iSCSI ターゲットの設定 セクションを参照してください。

関連情報

7.3.4. 関連情報