7.5. iSCSI イニシエーターの設定
iSCSI イニシエーターを設定して、以下のプラットフォームの Ceph iSCSI ゲートウェイに接続できます。
7.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
以降がインストールされている。
手順
iSCSI イニシエーターおよびマルチパスツールをインストールします。
[root@rhel ~]# yum install iscsi-initiator-utils [root@rhel ~]# yum install device-mapper-multipath
-
/etc/iscsi/initiatorname.iscsi
ファイルを編集してイニシエーター名を設定します。イニシエーター名は、gwcli
コマンドでの初期設定中に使用されたイニシエーター名と同じである必要がある点に注意してください。 マルチパス I/O を設定します。
デフォルトの
/etc/multipath.conf
ファイルを作成し、multipathd
サービスを有効にします。[root@rhel ~]# mpathconf --enable --with_multipathd y
以下のように
/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 } }
multipathd
サービスを再起動します。[root@rhel ~]# systemctl reload multipathd
CHAP と iSCSI の検出とログインを設定します。
以下のように
/etc/iscsi/iscsid.conf
ファイルを更新して、CHAP ユーザー名とパスワードを指定します。node.session.auth.authmethod = CHAP node.session.auth.username = user node.session.auth.password = password
ターゲットポータルを検出します。
構文
iscsiadm -m discovery -t st -p IP_ADDR
ターゲットにログインします。
構文
iscsiadm -m node -T TARGET -l
マルチパス I/O 設定を表示します。
multipathd
デーモンは、multipath.conf
ファイルの設定に基づいてデバイスを自動的に設定します。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
は現在使用されているパス、enabled
はactive
なパスに問題が発生した場合にフェイルオーバーパスが有効になります 。multipath -ll
の出力でデバイス名 (例:sde
) を iSCSI ゲートウェイに一致させるには、次のコマンドを実行します。例
[root@rhel ~]# iscsiadm -m session -P 3
Persistent Portal
の値は、gwcli
ユーティリティーの一覧に記載されている iSCSI ゲートウェイに割り当てられた IP アドレスです。
7.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
以降
手順
マルチパス I/O を設定します。
以下のように
/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 } }
multipathd
サービスを再起動します。[root@rhv ~]# systemctl reload multipathd
- Storage resource タブをクリックして既存のストレージドメインを一覧表示します。
- 新規ドメイン ボタンをクリックして、新規ドメイン ウィンドウを開きます。
- 新規ストレージドメインの 名前 を入力します。
- データセンター ドロップダウンメニューを使用してデータセンターを選択します。
- ドロップダウンメニューを使用して、Domain Function および Storage Type を選択します。選択したドメイン機能との互換性がないストレージドメインタイプは利用できません。
- Use Host フィールドでアクティブなホストを選択します。データセンターの最初のデータドメインではない場合は、データセンターの SPM ホストを選択する必要があります。
新規ドメイン ウィンドウで、iSCSI がストレージタイプとして選択されている場合に、未使用の LUN が割り当てられた既知のターゲットが自動的に表示されます。ストレージを追加するターゲットが一覧にない場合には、ターゲット検出を使用して検索できます。それ以外の場合は、次のステップに進みます。
- ターゲットを検出 をクリックし、ターゲットの検出オプションを有効にします。ターゲットが検出され、ログインすると、新規ドメイン ウィンドウに、その環境で未使用の LUN が割り当てられたターゲットが自動的に表示されます。環境外の LUN も表示されることに注意してください。ターゲットを検出 のオプションを使用すると、多くのターゲットに LUN を追加したり、同じ LUN に複数のパスを追加したりすることができます。
- Address フィールドに、iSCSI ホストの完全修飾ドメイン名または IP アドレスを入力します。
-
ポートフィールドでのターゲットの参照時に、ホストに接続する ポート を入力します。デフォルトは
3260
です。 - ストレージのセキュリティー保護にチャレンジハンドシェイク認証プロトコル (CHAP) を使用している場合は、ユーザー認証のチェックボックスを選択します。CHAP のユーザー名 と CHAP のパスワード を入力します。
- 検出 ボタンをクリックします。
検出結果から使用するターゲットを選択し、ログイン ボタンをクリックします。または、Login All をクリックし、検出されたすべてのターゲットにログインします。
重要複数のパスのアクセスが必要な場合には、すべての必要なパスでターゲットを検出してログインするようにしてください。ストレージドメインを変更してパスを追加する方法は、現在サポートされていません。
- 対象のターゲットの横にある + ボタンをクリックします。これにより、エントリーを展開し、ターゲットにアタッチされている未使用の LUN をすべて表示します。
- ストレージドメインの作成に使用する各 LUN のチェックボックスを選択します。
オプションで、詳細パラメーターを設定することが可能です。
- 詳細パラメーター をクリックします。
- 容量不足の警告 のフィールドに、パーセンテージ値を入力します。ストレージドメインの空き容量がこの値を下回ると、ユーザーに警告メッセージが表示され、ログに記録されます。
- アクションをブロックする 深刻な容量不足 のフィールドに GB 単位で値を入力します。ストレージドメインの空き容量がこの値を下回ると、ユーザーにエラーメッセージが表示され、ログに記録されます。領域を消費する新しいアクションは、一時的であってもブロックされます。
-
削除後にワイプ オプションを有効にするには、
wipe after delete
のチェックボックスを選択します。このオプションは、ドメインの作成後に編集できますが、すでに存在するディスクのwipe after delete
プロパティーは変更されません。 - 削除後に破棄 チェックボックスを選択して、削除後に破棄のオプションを有効化します。このオプションは、ドメインの作成後に編集できます。このオプションは、ブロックストレージドメインでのみ使用できます。
- OK をクリックしてストレージドメインを作成し、ウィンドウを閉じます。
7.5.3. Microsoft Windows の iSCSI イニシエーターの設定
前提条件
- Microsoft Windows Server 2016
手順
iSCSI イニシエーターをインストールし、検出および設定を行います。
- iSCSI イニシエータードライバーおよび MPIO ツールをインストールします。
- MPIO プログラムを起動し、Discover Multi-Paths タブをクリックし、iSCSI デバイスのサポートの追加 チェックボックスにチェックを入れ、Add をクリックします。
- MPIO プログラムを再起動します。
iSCSI Initiator プロパティーウィンドウ、Discovery タブ でターゲットポータルを追加します。Ceph iSCSI ゲートウェイの IP アドレスまたは DNS 名 および ポート を入力します。
Targets タブ で、ターゲットを選択し、Connect をクリックします。
Connect To Target ウィンドウで Enable multi-path オプション を選択し、Advanced ボタン をクリックします。
Connect using セクションで、Target portal IP を選択します。 で CHAP ログイン を選択し、Ceph iSCSI クライアント認証情報セクションから Name および Target secret の値 を入力して、OK をクリックします。
重要Windows Server 2016 は 12 バイト未満の CHAP シークレットを受け入れません。
- iSCSI ゲートウェイを設定するときに定義されたターゲットポータルごとに、前述の 2 つの手順を繰り返します。
イニシエーター名が初期設定中に使用されるイニシエーター名と異なる場合は、イニシエーター名を変更します。iSCSI Initiator プロパティーウィンドウの 設定 タブ で Change ボタン をクリックしてイニシエーターの名前を変更します。
multipath
I/O を設定します。PowerShell では、PDORemovePeriod
コマンドを使用して MPIO 負荷分散ポリシーとmpclaim
コマンドを使用して負荷分散ポリシーを設定します。iSCSI Initiator Tool は、残りのオプションを設定します。注記Red Hat は、
PDORemovePeriod
オプションを PowerShell から 120 秒に増やすことを推奨します。この値はアプリケーションに基づいて調整する必要がある場合があります。すべてのパスがダウンし、120 秒の有効期限が切れると、オペレーティングシステムは I/O 要求の失敗を開始します。Set-MPIOSetting -NewPDORemovePeriod 120
フェイルオーバーポリシーの設定
mpclaim.exe -l -m 1
フェイルオーバーポリシーの確認
mpclaim -s -m MSDSM-wide Load Balance Policy: Fail Over Only
iSCSI Initiator ツールを使用して、ターゲット タブ から デバイス...ボタン をクリックします。
デバイス ウィンドウで、ディスク を選択し、MPIO… ボタンをクリックします。
デバイスの詳細 ウィンドウには、各ターゲットポータルへのパスが表示されます。Load Balancing Policy Fail Over Only を選択する必要があります。
PowerShell から
multipath
設定を表示します。mpclaim -s -d MPIO_DISK_ID
MPIO_DISK_ID を適切なディスク識別子に置き換えます。
注記LUN を所有する iSCSI ゲートウェイノードへのパスである Active/Optimized パスが 1 つあります。他の iSCSI ゲートウェイノードごとに Active/optimized パスがあります。
オプションで、設定をチューニングします。以下のレジストリー設定の使用を検討してください。
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
7.5.4. VMware ESXi 向けの iSCSI イニシエーターの設定
前提条件
- サポートされる VMware ESXi バージョンについては、カスタマーポータルのナレッジベースの 記事 のiSCSI Gateway (IGW)セクションを参照してください。
- VMware ホストクライアントへのアクセス
-
esxcli
コマンドを実行する VMware ESXi ホストへの root アクセス
手順
HardwareAcceleratedMove
を無効にします。> esxcli system settings advanced set --int-value 0 --option /DataMover/HardwareAcceleratedMove
iSCSI ソフトウェアを有効にします。Navigator ペインから Storage をクリックします。Adapters タブ を選択します。iSCSI の設定 をクリックします。
名前 & エイリアス のセクション でイニシエーター名を確認します。
イニシエーター名が
gwcli
を使用して初期設定中にクライアントを作成するときに使用されるイニシエーター名と異なる場合は、イニシエーター名 (VMware ESX ホスト) を変更し、esxcli
コマンドを実行します。iSCSI ソフトウェアのアダプター名を取得します。
> esxcli iscsi adapter list > Adapter Driver State UID Description > ------- --------- ------ ------------- ---------------------- > vmhba64 iscsi_vmk online iscsi.vmhba64 iSCSI Software Adapter
イニシエーター名を設定します。
構文
> esxcli iscsi adapter set -A ADAPTOR_NAME -n INITIATOR_NAME
例
> esxcli iscsi adapter set -A vmhba64 -n iqn.1994-05.com.redhat:rh7-client
CHAP を設定します。CHAP 認証 セクション を展開します。"Do not use CHAP unless unless required by target" (ターゲットによって必要な場合を除き、CHAP は使用しないでください) を選択してください。初期設定で使用されていた CHAP Name および Secret の認証情報を入力します。Mutual CHAP 認証 セクション で "Do not use CHAP" (CHAP は使用しないでください) が選択されていることを確認します。
警告VMware Host Client のバグにより、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
引数は vSphere Web クライアントの Name です。> esxcli iscsi adapter auth chap set --direction=uni --authname=myiscsiusername --secret=myiscsipassword --level=discouraged -A vmhba64
iSCSI 設定を設定します。Advanced settings を展開します。RecoveryTimeout の値を 25 に設定します。
検出アドレスを設定します。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 を適切なデバイス識別子に置き換えます。
マルチパスが正しく設定されていることを確認します。
デバイスを一覧表示します。
例
> 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)
直前の手順で 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
を一覧表示します。パスの残りの部分には、unoptimized
のGroup State
の値があり、active
パスがdead
状態になる場合にフェイルオーバーパスになります。
対応する 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 アドレスです。