7.4. iSCSI ターゲットの設定

ストレージ管理者は、gwcli コマンドラインユーティリティーを使用して、ターゲット、LUN、およびクライアントを 設定 できます。iSCSI ターゲットの パフォーマンスを最適化 s して、gwcli reconfigure サブコマンドを使用することもできます。

警告

Red Hat は、gwcli および ceph-ansible など、Ceph iSCSI ゲートウェイツールでエクスポートされた Ceph ブロックデバイスイメージの管理はサポートしていません。また、rbd コマンドを使用して Ceph iSCSI ゲートウェイでエクスポートされた RBD イメージの名前を変更または削除すると、ストレージクラスターが不安定になる可能性があります。

警告

iSCSI ゲートウェイ設定から RBD イメージを削除する前に、オペレーティングシステムからストレージデバイスを削除する標準的な手順に従います。詳細は、Red Hat Enterprise Linux 7 のストレージ管理ガイドストレージデバイスの削除 の章または Red Hat Enterprise Linux 8 向けの システム設計ガイド を参照してください。

7.4.1. 前提条件

  • Ceph iSCSI ゲートウェイソフトウェアのインストール。

7.4.2. コマンドラインインターフェイスを使用した iSCSI ターゲットの設定

Ceph iSCSI ゲートウェイは、iSCSI ターゲットノードおよび Ceph クライアントノードです。Ceph iSCSI ゲートウェイをスタンドアロンノード上に設定するか、Ceph Object Storage Device (OSD) ノードと同じ場所に配置します。

警告

本書に規定されているか、Red Hat サポートからの指示がない限り、gwcli reconfigure サブコマンドを使用して他のオプションを調整しないようにしてください。

前提条件

  • Ceph iSCSI ゲートウェイソフトウェアのインストール。

手順

  1. iSCSI ゲートウェイのコマンドラインインターフェイスを起動します。

    [root@iscsigw ~]# gwcli
  2. IPv4 アドレスまたは IPv6 アドレスのいずれかを使用して iSCSI ゲートウェイを作成します。

    構文

    >/iscsi-targets create iqn.2003-01.com.redhat.iscsi-gw:_target_name_
    > goto gateways
    > create ISCSI_GW_NAME IP_ADDR_OF_GW
    > create ISCSI_GW_NAME IP_ADDR_OF_GW

    >/iscsi-targets 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 アドレスを混在させることはできません。

  3. Ceph ブロックデバイスを追加します。

    構文

    > cd /disks
    >/disks/ create POOL_NAME image=IMAGE_NAME size=IMAGE_SIZE_m|g|t

    > cd /disks
    >/disks/ create rbd image=disk_1 size=50g

    注記

    プールまたはイメージ名では、ピリオド (.) を使用しないでください。

  4. クライアントを作成します。

    構文

    > goto hosts
    > create iqn.1994-05.com.redhat:_client_name_
    > auth use username=USER_NAME password=PASSWORD

    > goto hosts
    > create iqn.1994-05.com.redhat:rh7-client
    > auth username=iscsiuser1 password=temp12345678

    重要

    Red Hat は、Challenge Handshake Authentication Protocol (CHAP) が一部で有効になっており、他で無効になっているなど、クライアントの混同はサポートしていません。すべてのクライアントの CHAP を有効にするか、無効にする必要があります。デフォルトの動作としては、イニシエーター名でイニシエーターを認証するだけです。

    イニシエーターがターゲットへのログインに失敗した場合には、以下のように、イニシエーターに CHAP 認証が正しく設定されない場合があります。

    o- hosts ................................ [Hosts: 2: Auth: MISCONFIG]

    ホスト レベルで次のコマンドを使用して、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)]
  5. ディスクをクライアントに追加します。

    構文

    >/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

  6. API が SSL が正しく使用されていることを確認するには、/var/log/rbd-target-api.log または /var/log/rbd-target/rbd-target-api.log に配置されている rbd-target-api ログファイルを (https など) を検索します。

    Aug 01 17:27:42 test-node.example.com python[1879]:  * Running on https://0.0.0.0:5000/
  7. Ceph ISCSI ゲートウェイが機能していることを確認します。

    /> goto gateways
    /iscsi-target...-igw/gateways> ls
    o- gateways ............................ [Up: 2/2, Portals: 2]
      o- ceph-gw-1  ........................ [ 10.172.19.21 (UP)]
      o- ceph-gw-2  ........................ [ 10.172.19.22 (UP)]

    ステータスが UNKNOWN の場合は、ネットワークの問題と設定ミスがないか確認します。ファイアウォールを使用している場合は、適切な TCP ポートが開いていることを確認します。iSCSI ゲートウェイが trusted_ip_list オプションに一覧表示されていることを確認します。rbd-target-api サービスが iSCSI ゲートウェイノードで実行されていることを確認します。

  8. 必要に応じて、max_data_area_mb オプションを再設定します。

    構文

    >/disks/ reconfigure POOL_NAME/IMAGE_NAME max_data_area_mb NEW_BUFFER_SIZE

    >/disks/ reconfigure rbd/disk_1 max_data_area_mb 64

    注記

    max_data_area_mb オプションは、iSCSI ターゲットと Ceph クラスターの間で SCSI コマンドデータを渡す時に各イメージが使用できるメモリー量をメガバイト単位で制御します。この値が小さすぎると、キューが過剰に再試行され、パフォーマンスに影響する可能性があります。値が大きすぎると、1 つのディスクで過剰にシステムメモリーが使用あれ、他のサブシステムの割り当てに失敗する可能性があります。max_data_area_mb オプションのデフォルト値は 8 です。

  9. iSCSI イニシエーターを設定します。

関連情報

7.4.3. iSCSI ターゲットのパフォーマンスの最適化

ネットワーク上で iSCSI ターゲット転送データを送信する方法を制御する設定は多数あります。これらの設定を使用して、iSCSI ゲートウェイのパフォーマンスを最適化できます。

警告

Red Hat サポートの指示または本書の記載がない限り、この設定は変更しないでください。

gwcli reconfigure サブコマンドは、iSCSI ゲートウェイのパフォーマンスの最適化に使用される設定を制御します。

iSCSI ターゲットのパフォーマンスに影響する設定

  • max_data_area_mb
  • cmdsn_depth
  • immediate_data
  • initial_r2t
  • max_outstanding_r2t
  • first_burst_length
  • max_burst_length
  • max_recv_data_segment_length
  • max_xmit_data_segment_length

関連情報

7.4.4. ダウンしている OSD を検出するためのタイマー設定の低減

ダウンしている OSD を検出するためにタイマー設定の時間を減らす必要がある場合があります。たとえば、Red Hat Ceph Storage を iSCSI ゲートウェイとして使用する場合に、ダウンしている OSD を検出するためにタイマー設定の時間を減らすことで、イニシエーターがタイムアウトする可能性を軽減できます。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • Ansible 管理ノードへのアクセス

手順

  1. 新しいタイマー設定を使用するように Ansible を設定します。

    1. Ansible 管理ノードで、以下のような group_vars/all.yml ファイルに ceph_conf_overrides セクションを追加するか、既存の ceph_conf_overrides セクションを編集します。

      ceph_conf_overrides:
           osd:
             osd_client_watch_timeout: 15
             osd_heartbeat_grace: 20
             osd_heartbeat_interval: 5

      上記の設定は、Ansible Playbook の実行時に OSD ノードの ceph.conf 設定ファイルに追加されます。

    2. ceph-ansible ディレクトリーに移動します。

      [admin@ansible ~]$ cd /usr/share/ceph-ansible
    3. Ansible を使用して ceph.conf ファイルを更新し、すべての OSD ノードで OSD デーモンを再起動します。Ansible 管理ノードで、以下のコマンドを実行します。

      ベアメタル デプロイメント

      [admin@ansible ceph-ansible]$ ansible-playbook site.yml --limit osds

      コンテナー デプロイメント

      [admin@ansible ceph-ansible]$ ansible-playbook site-container.yml --limit osds -i hosts

  2. タイマー設定が ceph_conf_overrides で設定されている値と同じであることを確認します。

    構文

    ceph daemon osd.OSD_ID config get osd_client_watch_timeout
    ceph daemon osd.OSD_ID config get osd_heartbeat_grace
    ceph daemon osd.OSD_ID config get osd_heartbeat_interval

    [root@osd ~]# ceph daemon osd.0 config get osd_client_watch_timeout
    {
        "osd_client_watch_timeout": "15"
    }
    
    [root@osd ~]#  ceph daemon osd.0 config get osd_heartbeat_grace
    {
        "osd_heartbeat_grace": "20"
    }
    
    [root@osd ~]# ceph daemon osd.0 config get osd_heartbeat_interval
    {
        "osd_heartbeat_interval": "5"
    }

  3. オプション: OSD デーモンをすぐに再起動できない場合は、Ceph Monitor ノードからオンラインの更新を行うか、全 Ceph OSD ノードを直接更新できます。OSD デーモンの再起動ができたら、上記のように Ansible を使用して新しいタイマー設定を ceph.conf に追加し、設定が再起動後も維持されるようにします。

    1. Ceph Monitor ノードから OSD タイマー設定のオンライン更新を実行するには、以下を実行します。

      構文

      ceph tell osd.OSD_ID injectargs '--osd_client_watch_timeout 15'
      ceph tell osd.OSD_ID injectargs '--osd_heartbeat_grace 20'
      ceph tell osd.OSD_ID injectargs '--osd_heartbeat_interval 5'

      [root@mon ~]# ceph tell osd.0 injectargs '--osd_client_watch_timeout 15'
      [root@mon ~]# ceph tell osd.0 injectargs '--osd_heartbeat_grace 20'
      [root@mon ~]# ceph tell osd.0 injectargs '--osd_heartbeat_interval 5'

    2. Ceph OSD ノードから OSD タイマー設定のオンライン更新を実行するには、以下を実行します。

      構文

      ceph daemon osd.OSD_ID config set osd_client_watch_timeout 15
      ceph daemon osd.OSD_ID config set osd_heartbeat_grace 20
      ceph daemon osd.OSD_ID config set osd_heartbeat_interval 5

      [root@osd ~]# ceph daemon osd.0 config set osd_client_watch_timeout 15
      [root@osd ~]# ceph daemon osd.0 config set osd_heartbeat_grace 20
      [root@osd ~]# ceph daemon osd.0 config set osd_heartbeat_interval 5

関連情報

  • Red Hat Ceph Storage を iSCSI ゲートウェイとして使用する方法は、Red Hat Ceph Storage ブロックデバイスガイドCeph iSCSI ゲートウェイ を参照してください。

7.4.5. コマンドラインインターフェイスを使用した iSCSI ホストグループの設定

Ceph iSCSI ゲートウェイは、同じディスク設定を共有するサーバーを複数管理するホストグループを設定できます。iSCSI ホストグループでは、ホストの論理グループと、グループ内の各ホストがアクセスできるディスクが作成されます。

重要

複数のホストへのディスクデバイスの共有は、クラスター対応のファイルシステムを使用する必要があります。

前提条件

  • Ceph iSCSI ゲートウェイソフトウェアのインストール。
  • Ceph iSCSI ゲートウェイノードへの root レベルのアクセス。

手順

  1. iSCSI ゲートウェイのコマンドラインインターフェイスを起動します。

    [root@iscsigw ~]# gwcli
  2. 新規ホストグループを作成します。

    構文

    cd iscsi-targets/
    cd IQN/host-groups
    create group_name=GROUP_NAME

    /> cd iscsi-targets/
    /iscsi-targets> cd iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/host-groups/
    /iscsi-target.../host-groups> create group_name=igw_grp01

  3. ホストグループにホストを追加します。

    構文

    cd GROUP_NAME
    host add client_iqn=CLIENT_IQN

    > cd igw_grp01
    /iscsi-target.../host-groups/igw_grp01> host add client_iqn=iqn.1994-05.com.redhat:rh8-client

    この手順を繰り返して、追加のホストをグループに追加します。

  4. ホストグループにディスクを追加します。

    構文

    cd /disks/
    /disks> create pool=POOL image=IMAGE_NAME size=SIZE
    cd /IQN/host-groups/GROUP_NAME
    disk add POOL/IMAGE_NAME

    > cd /disks/
    /disks> create pool=rbd image=rbdimage size=1G
    /> cd iscsi-targets/iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/host-groups/igw_grp01/
    /iscsi-target...s/igw_grp01> disk add rbd/rbdimage

    この手順を繰り返して、グループにディスクを追加します。

7.4.6. 関連情報

  • Red Hat Ceph Storage ダッシュボードを使用して iSCSI ターゲットを設定する方法は、Red Hat Ceph Storage ダッシュボードガイドiSCSI ターゲットの作成 セクションを参照してください。