25.15. iSCSI 相互接続のスキャン
iSCSI の場合、ターゲットが、新しいストレージが追加されたことを示す iSCSI 非同期イベントを送信すると、スキャンが自動的に行われます。
ただし、ターゲットが iSCSI 非同期イベントを送信しない場合は、iscsiadm ユーティリティーを使用してターゲットを手動でスキャンする必要があります。ただし、その前に、まず適切な --targetname と --portal の値を取得する必要があります。デバイスモデルがターゲットごとに 1 つの論理ユニットとポータルのみに対応している場合は、以下のように iscsiadm を使用して、sendtargets コマンドをホストに発行します。
# iscsiadm -m discovery -t sendtargets -p target_IP:port [5]
出力は以下の形式で表示されます。
target_IP:port,target_portal_group_tag proper_target_name
例25.11 iscsiadm を使用した sendtargets コマンドの発行
たとえば、proper_target_name が
iqn.1992-08.com.netapp:sn.33615311 で、target_IP:port が 10.15.85.19:3260
のターゲットでは、出力は以下のようになります。
10.15.84.19:3260,2 iqn.1992-08.com.netapp:sn.33615311 10.15.85.19:3260,3 iqn.1992-08.com.netapp:sn.33615311
この例では、ターゲットには 2 つのポータルがあり、それぞれ target_ip:portは
10.15.84.19:3260
および 10.15 .85.19:3260
を使用します。
各セッションに使用される iface 設定を確認するには、-P 1 オプションを追加します。このオプションは、以下のように、セッション情報もツリー形式で出力します。
Target: proper_target_name Portal: target_IP:port,target_portal_group_tag Iface Name: iface_name
例25.12 iface 設定の表示
たとえば、iscsiadm -m discovery -t sendtargets -p 10.15.85.19:3260 -P 1 を使用すると、出力は以下のようになります。
Target: iqn.1992-08.com.netapp:sn.33615311 Portal: 10.15.84.19:3260,2 Iface Name: iface2 Portal: 10.15.85.19:3260,3 Iface Name: iface2
つまり、ターゲット
iqn.1992-08.com.netapp:sn.33615311
は、iface 設定として iface2
を使用します。
デバイスモデルによっては、1 つのターゲットに複数の論理ユニットとポータルが存在する場合があります。この場合、最初に sendtargets コマンドをホストに発行して、ターゲット上の新しいポータルを検索します。次に、以下を使用して既存のセッションを再スキャンします。
# iscsiadm -m session --rescan
以下のようにセッションの SID 値を指定して、特定のセッションを再スキャンすることもできます。
# iscsiadm -m session -r SID --rescan[7]
デバイスが複数のターゲットに対応している場合は、ホストに sendtargets コマンドを実行して、各 ターゲットの新しいポータルを見つける必要があります。--rescan オプションを使用して、既存のセッションを再スキャンし、既存のセッションで新しい論理ユニットを検出します。
重要
--targetname および --portal の値を取得するために使用される sendtargets コマンドは、
/var/lib/iscsi/nodes
データベースの内容を上書きします。このデータベースは、/etc/iscsi/iscsid.conf
の設定を使用して再入力されます。ただし、セッションが現在ログインしており、使用中の場合は発生しません。
新しいターゲット/ポータルを安全に追加したり、古いターゲットを削除するには、それぞれ -o new オプションまたは -o delete オプションを使用します。たとえば、
/var/lib/iscsi/nodes
を上書きせずに新しいターゲット/ポータルを追加するには、以下のコマンドを使用します。
iscsiadm -m discovery -t st -p target_IP -o new
検出中にターゲットが表示されなかった
/var/lib/iscsi/nodes
エントリーを削除するには、次のコマンドを実行します。
iscsiadm -m discovery -t st -p target_IP -o delete
以下のように、両方のタスクを同時に実行することもできます。
iscsiadm -m discovery -t st -p target_IP -o delete -o new
sendtargets コマンドは、以下の出力を表示します。
ip:port,target_portal_group_tag proper_target_name
例25.13 sendtargets コマンドの出力
たとえば、ターゲットが 1 つ、論理ユニット、およびポータルのデバイスが target_name として equallogic-iscsi1 の場合、出力は次のようになります。
10.16.41.155:3260,0 iqn.2001-05.com.equallogic:6-8a0900-ac3fe0101-63aff113e344a4a2-dl585-03-1
この時点で、iSCSI デバイスを手動でスキャンするために必要な適切な --targetname と --portal の値が得られます。これには以下のコマンドを実行します。
# iscsiadm --mode node --targetname proper_target_name --portal ip:port,target_portal_group_tag \ --login [8]
例25.14 完全な iscsiadm コマンド
前の例( proper_target_name が equallogic-iscsi1の場合)を使用すると、完全なコマンドは次のようになります。
# iscsiadm --mode node --targetname \ iqn.2001-05.com.equallogic:6-8a0900-ac3fe0101-63aff113e344a4a2-dl585-03-1 \ --portal 10.16.41.155:3260,0 --login[8]
[7]
For information on how to retrieve a session's SID value, refer to 「iSCSI API」.
[8]
This is a single command split into multiple lines, to accommodate printed and PDF versions of this document. All concatenated lines — preceded by the backslash (\) — should be treated as one command, sans backslashes.