10.5. iSCSI イニシエーターの設定

iSCSI イニシエーターを設定して、以下のプラットフォームの Ceph iSCSI ゲートウェイに接続できます。

10.5.1. Red Hat Enterprise Linux の iSCSI イニシエーターの設定

前提条件

  • Red Hat Enterprise Linux 7.7 以降。
  • パッケージ iscsi-initiator-utils-6.2.0.873-35 以降がインストールされている。
  • パッケージ device-mapper-multipath-0.4.9-99 以降がインストールされている。

手順

  1. iSCSI イニシエーターおよびマルチパスツールをインストールします。

    [root@rhel ~]# yum install iscsi-initiator-utils
    [root@rhel ~]# yum install device-mapper-multipath
  2. /etc/iscsi/initiatorname.iscsi ファイルを編集してイニシエーター名を設定します。イニシエーター名は、gwcli コマンドでの初期設定中に使用されたイニシエーター名と同じである必要がある点に注意してください。
  3. マルチパス I/O を設定します。

    1. デフォルトの /etc/multipath.conf ファイルを作成し、multipathd サービスを有効にします。

      [root@rhel ~]# mpathconf --enable --with_multipathd y
    2. 以下のように /etc/multipath.conf ファイルを更新します。

      devices {
              device {
                      vendor                 "LIO-ORG"
                      product                "TCMU device"
                      hardware_handler       "1 alua"
                      path_grouping_policy   "failover"
                      path_selector          "queue-length 0"
                      failback               60
                      path_checker           tur
                      prio                   alua
                      prio_args              exclusive_pref_bit
                      fast_io_fail_tmo       25
                      no_path_retry          queue
              }
      }
    3. multipathd サービスを再起動します。

      [root@rhel ~]# systemctl reload multipathd
  4. CHAP と iSCSI の検出とログインを設定します。

    1. 以下のように /etc/iscsi/iscsid.conf ファイルを更新して、CHAP ユーザー名とパスワードを指定します。

      node.session.auth.authmethod = CHAP
      node.session.auth.username = user
      node.session.auth.password = password
    2. ターゲットポータルを検出します。

      構文

      iscsiadm -m discovery -t st -p IP_ADDR

    3. ターゲットにログインします。

      構文

      iscsiadm -m node -T TARGET -l

  5. マルチパス I/O 設定を表示します。multipathd デーモンは、multipath.conf ファイルの設定に基づいてデバイスを自動的に設定します。

    1. multipath コマンドを使用して、パスごとに優先度の高いグループが含まれるフェイルオーバー設定でのデバイス設定を表示します。

      [root@rhel ~]# multipath -ll
      mpathbt (360014059ca317516a69465c883a29603) dm-1 LIO-ORG,TCMU device
      size=1.0G features='0' hwhandler='1 alua' wp=rw
      |-+- policy='queue-length 0' prio=50 status=active
      | `- 28:0:0:1 sde  8:64  active ready running
      `-+- policy='queue-length 0' prio=10 status=enabled
        `- 29:0:0:1 sdc  8:32  active ready running

      multipath -ll 出力の prio 値は ALUA の状態を示します。ここでは、prio=50 は、ALUA Active-Optimized の状態の独自の iSCSI ゲートウェイへのパスであり、prio=10 は Active-non-Optimized パスであることを示します。status フィールドは、使用されているパスを示します。こででは、active は現在使用されているパス、enabledactive なパスに問題が発生した場合にフェイルオーバーパスが有効になります 。

    2. multipath -ll の出力でデバイス名 (例: sde) を iSCSI ゲートウェイに一致させるには、次のコマンドを実行します。

      [root@rhel ~]# iscsiadm -m session -P 3

      Persistent Portal の値は、gwcli ユーティリティーのリストに記載されている iSCSI ゲートウェイに割り当てられた IP アドレスです。

10.5.2. Red Hat Virtualization の iSCSI イニシエーターの設定

前提条件

  • Red Hat Virtualization 4.1
  • すべての Red Hat Virtualization ノードでの MPIO デバイスの設定
  • パッケージ iscsi-initiator-utils-6.2.0.873-35 以降
  • パッケージ device-mapper-multipath-0.4.9-99 以降

手順

  1. マルチパス I/O を設定します。

    1. 以下のように /etc/multipath/conf.d/DEVICE_NAME.conf ファイルを更新します。

      devices {
              device {
                      vendor                 "LIO-ORG"
                      product                "TCMU device"
                      hardware_handler       "1 alua"
                      path_grouping_policy   "failover"
                      path_selector          "queue-length 0"
                      failback               60
                      path_checker           tur
                      prio                   alua
                      prio_args              exclusive_pref_bit
                      fast_io_fail_tmo       25
                      no_path_retry          queue
              }
      }
    2. multipathd サービスを再起動します。

      [root@rhv ~]# systemctl reload multipathd
  2. Storage resource タブをクリックして既存のストレージドメインをリスト表示します。
  3. 新規ドメイン ボタンをクリックして、新規ドメイン ウィンドウを開きます。
  4. 新規ストレージドメインの 名前 を入力します。
  5. データセンター ドロップダウンメニューを使用してデータセンターを選択します。
  6. ドロップダウンメニューを使用して、Domain Function および Storage Type を選択します。選択したドメイン機能との互換性がないストレージドメインタイプは利用できません。
  7. Use Host フィールドでアクティブなホストを選択します。データセンターの最初のデータドメインではない場合は、データセンターの SPM ホストを選択する必要があります。
  8. 新規ドメイン ウィンドウで、iSCSI がストレージタイプとして選択されている場合に、未使用の LUN が割り当てられた既知のターゲットが自動的に表示されます。ストレージを追加するターゲットがリストにない場合には、ターゲット検出を使用して検索できます。それ以外の場合は、次のステップに進みます。

    1. ターゲットを検出 をクリックし、ターゲットの検出オプションを有効にします。ターゲットが検出され、ログインすると、新規ドメイン ウィンドウに、その環境で未使用の LUN が割り当てられたターゲットが自動的に表示されます。環境外の LUN も表示されることに注意してください。ターゲットを検出 のオプションを使用すると、多くのターゲットに LUN を追加したり、同じ LUN に複数のパスを追加したりすることができます。
    2. Address フィールドに、iSCSI ホストの完全修飾ドメイン名または IP アドレスを入力します。
    3. ポートフィールドでのターゲットの参照時に、ホストに接続する ポート を入力します。デフォルトは 3260 です。
    4. ストレージのセキュリティー保護にチャレンジハンドシェイク認証プロトコル (CHAP) を使用している場合は、ユーザー認証のチェックボックスを選択します。CHAP のユーザー名CHAP のパスワード を入力します。
    5. 検出 ボタンをクリックします。
    6. 検出結果から使用するターゲットを選択し、ログイン ボタンをクリックします。または、Login All をクリックし、検出されたすべてのターゲットにログインします。

      重要

      複数のパスのアクセスが必要な場合には、すべての必要なパスでターゲットを検出してログインするようにしてください。ストレージドメインを変更してパスを追加する方法は、現在サポートされていません。

  9. 対象のターゲットの横にある + ボタンをクリックします。これにより、エントリーをデプロイメントし、ターゲットにアタッチされている未使用の LUN をすべて表示します。
  10. ストレージドメインの作成に使用する各 LUN のチェックボックスを選択します。
  11. オプションで、詳細パラメーターを設定することが可能です。

    1. 詳細パラメーター をクリックします。
    2. 容量不足の警告 のフィールドに、パーセンテージ値を入力します。ストレージドメインの空き容量がこの値を下回ると、ユーザーに警告メッセージが表示され、ログに記録されます。
    3. アクションをブロックする 深刻な容量不足 のフィールドに GB 単位で値を入力します。ストレージドメインの空き容量がこの値を下回ると、ユーザーにエラーメッセージが表示され、ログに記録されます。領域を消費する新しいアクションは、一時的であってもブロックされます。
    4. 削除後にワイプ オプションを有効にするには、wipe after delete のチェックボックスを選択します。このオプションは、ドメインの作成後に編集できますが、すでに存在するディスクの wipe after delete プロパティーは変更されません。
    5. 削除後に破棄 チェックボックスを選択して、削除後に破棄のオプションを有効化します。このオプションは、ドメインの作成後に編集できます。このオプションは、ブロックストレージドメインでのみ使用できます。
  12. OK をクリックしてストレージドメインを作成し、ウィンドウを閉じます。

10.5.3. Microsoft Windows の iSCSI イニシエーターの設定

前提条件

  • Microsoft Windows Server 2016

手順

  1. iSCSI イニシエーターをインストールし、検出および設定を行います。

    1. iSCSI イニシエータードライバーおよび MPIO ツールをインストールします。
    2. MPIO プログラムを起動し、Discover Multi-Paths タブをクリックし、iSCSI デバイスのサポートの追加 チェックボックスにチェックを入れ、Add をクリックします。
    3. MPIO プログラムを再起動します。
    4. iSCSI Initiator PropertiesウィンドウのDiscoveryタブで、ターゲットポータルを追加します。Ceph iSCSI ゲートウェイの IP アドレスまたは DNS 名およびポートを入力します。
    5. Targets タブで、ターゲットを選択し、Connect をクリックします。
    6. Connect To Target ウィンドウで Enable multi-path オプションを選択し、Advanced ボタンをクリックします。
    7. Connect using セクションで、ドロップダウンボックスから Microsoft ISCSI IntiatorLocal adapter として選択します。ドロップダウンメニューから Initiator IP として Windows クライアントの IP アドレスを選択します。Target portal IP アドレスを選択します。Enable CHAP login on を選択し、Ceph iSCSI クライアント認証情報セクションからのName および Target secretの値を入力し、OK をクリックします。

      重要

      Windows Server 2016 は 12 バイト未満の CHAP シークレットを受け入れません。

    8. Connecting タブをクリックする前に、iSCSI ゲートウェイを設定するときに定義されたターゲットポータルごとに、前述の 2 つの手順を繰り返します。
    9. イニシエーター名が初期設定中に使用されるイニシエーター名と異なる場合は、イニシエーター名を変更します。iSCSI Initiator PropertiesウィンドウのConfigurationタブでChangeボタンをクリックし、イニシエータ名を変更します。
  2. multipath I/O を設定します。PowerShell では、PDORemovePeriod コマンドを使用して MPIO 負荷分散ポリシーと mpclaim コマンドを使用して負荷分散ポリシーを設定します。iSCSI Initiator Tool は、残りのオプションを設定します。

    注記

    Red Hat は、PDORemovePeriod オプションを PowerShell から 120 秒に増やすことを推奨します。この値はアプリケーションに基づいて調整する必要がある場合があります。すべてのパスがダウンし、120 秒の有効期限が切れると、オペレーティングシステムは I/O 要求の失敗を開始します。

    Set-MPIOSetting -NewPDORemovePeriod 120
    1. フェイルオーバーポリシーの設定

      mpclaim.exe -l -m 1
    2. フェイルオーバーポリシーの確認

      mpclaim -s -m
      MSDSM-wide Load Balance Policy: Fail Over Only
    3. iSCSI Initiator ツールを使用して、Targetsタブから Devices…​ボタンをクリックします。
    4. Devices 画面でディスクを選択し、MPIO…​ ボタンをクリックします。
    5. デバイスの詳細 ウィンドウには、各ターゲットポータルへのパスが表示されます。Load Balancing Policy Fail Over Only を選択する必要があります。
    6. PowerShell から multipath 設定を表示します。

      mpclaim -s -d MPIO_DISK_ID

      MPIO_DISK_ID を適切なディスク識別子に置き換えます。

      注記

      LUN を所有する iSCSI ゲートウェイノードへのパスである Active/Optimized パスが 1 つあります。他の iSCSI ゲートウェイノードごとに Active/optimized パスがあります。

  3. オプションで、設定をチューニングします。以下のレジストリー設定の使用を検討してください。

    • Windows ディスクのタイムアウト

      キー

      HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Disk

      TimeOutValue = 65

    • Microsoft iSCSI イニシエータードライバー

      キー

      HKEY_LOCAL_MACHINE\\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\<Instance_Number>\Parameters

      LinkDownTime = 25
      SRBTimeoutDelta = 15

10.5.4. VMware ESXi 向けの iSCSI イニシエーターの設定

前提条件

  • サポートされる VMware ESXi バージョンについては、カスタマーポータルのナレッジベースの 記事iSCSI Gateway (IGW)セクションを参照してください。
  • VMware ESXi Web インターフェイスへのアクセス。
  • esxcli コマンドを実行するための VMware ESXi ホストコンソールへの root アクセス。

手順

  1. VMware ESXi Web インターフェイスにログインします。
  2. Actionsをクリックし → Servicesをハイライトし → Enable SSHをクリックします。
  3. VMware ESXi ホストコンソールにログインし、HardwareAcceleratedMove (XCOPY) を無効にします。

    > esxcli system settings advanced set --int-value 0 --option /DataMover/HardwareAcceleratedMove
  4. VMware ESXi Web インターフェイスから、Navigator ペインで Storage をクリックします。Adapters タブをクリックします。アダプターを強調表示し、Configure iSCSI をクリックします。
  5. Name & alias フィールドでイニシエーター名を確認します。
  6. イニシエーター名が gwcli ユーティリティーを使用して初期設定中にクライアントを作成するときに使用されたイニシエーター名と異なる場合は、イニシエーター名を変更します。VMware ESXi ホストコンソールから、以下の手順を実行します。

    1. iSCSI ソフトウェアのアダプター名を取得します。

      > esxcli iscsi adapter list
      > Adapter  Driver     State   UID            Description
      > -------  ---------  ------  -------------  ----------------------
      > vmhba64  iscsi_vmk  online  iscsi.vmhba64  iSCSI Software Adapter
    2. イニシエーター名を設定します。

      構文

      esxcli iscsi adapter set -A ADAPTOR_NAME -n INITIATOR_NAME

      > esxcli iscsi adapter set -A vmhba64 -n iqn.1994-05.com.redhat:rh8-client

    3. VMware ESXi Web インターフェイスから新しいイニシエーター名を確認します。Navigator ペインで Storage をクリックします。Software iSCSI をクリックします。新しいイニシエーター名は、Ceph Object Gateway ノード名と共に Name & alias フィールドに表示されます。
  7. CHAP authentication セクションをデプロイメントします。ドロップダウンリストから、Do not use CHAP unless required by target を選択します。初期設定で使用された CHAP Name および Secret の認証情報を入力します。Mutual CHAP authentication セクションで Do not use CHAP が選択されていることを確認します。

    重要

    ユーザー名/パスワードは、管理者および相互 CHAP 認証と同じにしないでください。

    • username/mutual_username は 8 - 64 文字で、[0-9a-zA-Z] の範囲の英数字と .:@_- を使用できます。
    • password/mutual_password は 12 - 16 文字で、[0-9a-zA-Z] の範囲の英数字と @-_/ を使用できます。
    警告

    VMware ホストクライアントのバグにより、CHAP 設定が最初に使用されません。Ceph iSCSI ゲートウェイノードでは、このバグを示しているので、カーネルログには以下のエラーが含まれます。

    > kernel: CHAP user or password not set for Initiator ACL
    > kernel: Security negotiation failed.
    > kernel: iSCSI Login negotiation failed.

    このバグを回避するには、esxcli コマンドを使用して CHAP を設定します。authname 引数は、CHAP authentication セクションの Name です。

    Syntax

    esxcli iscsi adapter auth chap set --direction=uni --authname=ISCSI_USER_NAME --secret=ISCSI_PASSWORD --level=discouraged -A ADAPTOR_NAME

  8. Advanced settings セクションをデプロイメントします。RecoveryTimeout の値を 25 に設定します。
  9. Dynamic targets セクションで、Add dynamic target をクリックします。Address フィールドで、クリックして Ceph iSCSI ゲートウェイの 1 つに IP アドレスを追加します。1 つの IP アドレスのみを追加する必要があります。最後に、Save configuration ボタンをクリックします。Devices タブをクリックして RBD イメージを表示します。

    注記

    LUN は、ALUA SATP および MRU PSP を使用して自動的に設定されます。他の SATP および PSP は使用しないでください。これは、esxcli コマンドで確認できます。

    構文

    esxcli storage nmp path list -d eui.DEVICE_ID

    DEVICE_ID を適切なデバイス識別子に置き換えます。

  10. VMware ESXi ホストコンソールで、マルチパスが正しく設定されていることを確認します。

    1. デバイスをリスト表示します。

      > esxcli storage nmp device list | grep iSCSI
         Device Display Name: LIO-ORG iSCSI Disk (naa.6001405f8d087846e7b4f0e9e3acd44b)
         Device Display Name: LIO-ORG iSCSI Disk (naa.6001405057360ba9b4c434daa3c6770c)

    2. 直前の手順で Ceph iSCSI ディスクのマルチパス情報を取得します。

      > esxcli storage nmp path list -d naa.6001405f8d087846e7b4f0e9e3acd44b
      
      iqn.2005-03.com.ceph:esx1-00023d000001,iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw,t,1-naa.6001405f8d087846e7b4f0e9e3acd44b
         Runtime Name: vmhba64:C0:T0:L0
         Device: naa.6001405f8d087846e7b4f0e9e3acd44b
         Device Display Name: LIO-ORG iSCSI Disk (naa.6001405f8d087846e7b4f0e9e3acd44b)
         Group State: active
         Array Priority: 0
         Storage Array Type Path Config: {TPG_id=1,TPG_state=AO,RTP_id=1,RTP_health=UP}
         Path Selection Policy Path Config: {current path; rank: 0}
      
      iqn.2005-03.com.ceph:esx1-00023d000002,iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw,t,2-naa.6001405f8d087846e7b4f0e9e3acd44b
         Runtime Name: vmhba64:C1:T0:L0
         Device: naa.6001405f8d087846e7b4f0e9e3acd44b
         Device Display Name: LIO-ORG iSCSI Disk (naa.6001405f8d087846e7b4f0e9e3acd44b)
         Group State: active unoptimized
         Array Priority: 0
         Storage Array Type Path Config: {TPG_id=2,TPG_state=ANO,RTP_id=2,RTP_health=UP}
         Path Selection Policy Path Config: {non-current path; rank: 0}

      この出力例から、各パスには iSCSI または SCSI 名があり、以下の部分があります。

      Initiator name = iqn.2005-03.com.ceph:esx1 ISID = 00023d000002 Target name = iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw Target port group = 2 Device id = naa.6001405f8d087846e7b4f0e9e3acd44b

      Group State の値が active の場合は、これが iSCSI ゲートウェイへの Active-Optimized パスであることを示します。gwcli コマンドは、iSCSI ゲートウェイ所有者として active をリスト表示します。パスの残りの部分には、unoptimizedGroup State の値があり、active パスが dead 状態になる場合にフェイルオーバーパスになります。

    3. 対応する iSCSI ゲートウェイへのすべてのパスに一致するには、以下のコマンドを実行します。

      > esxcli iscsi session connection list
      vmhba64,iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw,00023d000001,0
         Adapter: vmhba64
         Target: iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw
         ISID: 00023d000001
         CID: 0
         DataDigest: NONE
         HeaderDigest: NONE
         IFMarker: false
         IFMarkerInterval: 0
         MaxRecvDataSegmentLength: 131072
         MaxTransmitDataSegmentLength: 262144
         OFMarker: false
         OFMarkerInterval: 0
         ConnectionAddress: 10.172.19.21
         RemoteAddress: 10.172.19.21
         LocalAddress: 10.172.19.11
         SessionCreateTime: 08/16/18 04:20:06
         ConnectionCreateTime: 08/16/18 04:20:06
         ConnectionStartTime: 08/16/18 04:30:45
         State: logged_in
      
      vmhba64,iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw,00023d000002,0
         Adapter: vmhba64
         Target: iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw
         ISID: 00023d000002
         CID: 0
         DataDigest: NONE
         HeaderDigest: NONE
         IFMarker: false
         IFMarkerInterval: 0
         MaxRecvDataSegmentLength: 131072
         MaxTransmitDataSegmentLength: 262144
         OFMarker: false
         OFMarkerInterval: 0
         ConnectionAddress: 10.172.19.22
         RemoteAddress: 10.172.19.22
         LocalAddress: 10.172.19.12
         SessionCreateTime: 08/16/18 04:20:06
         ConnectionCreateTime: 08/16/18 04:20:06
         ConnectionStartTime: 08/16/18 04:30:41
         State: logged_in

      パス名を ISID 値と照合し、RemoteAddress 値は独自の iSCSI ゲートウェイの IP アドレスです。

  11. VMware ESXi Web インターフェイスから、Devices タブをクリックして iSCSI ディスクを表示します。
  12. New datastore をクリックしてウィザードを開始します。

    1. 新しいデータストアの名前を指定し、Next をクリックします。
    2. Use full disk を選択し、Next をクリックします。
    3. Finish をクリックします。ディスクの消去に関する警告メッセージが表示されます。Yes をクリックして続行し、新しいデータストアを作成します。
    4. 新しいデータストアが Datastores タブに表示されます。
  13. データストア名を選択して、ディスク使用量を確認できます。以下のコマンドを実行して、Ceph からのディスク使用量を確認することもできます。

    Syntax

    rbd du --pool POOL_NAME

    [root@rbd-client ~]# rbd du --pool rbdpool