Open-iSCSI
関連記事
この記事では Open-iSCSI イニシエータを使って iSCSI ターゲットにアクセスする方法を説明します。
目次
インストール
公式リポジトリ から open-iscsi パッケージを インストール してください。
概要
以下は構成要素の互いの関係を示した図式になります。より詳しいバージョンが次のページにあります: Open-iSCSI modules
+-------------------------------------------------------+ | Targets & Sessions configuration Database (DBM based) | +-------------------------------------------------------+ +--------------------------+ +----------------------------------+ | iscsiadm | | iscsid: iSCSI daemon | | | | | | * Command line tool |<--->| * Implements Session management | | * Manages database of | | * Communicates with iscsiadm | | sessions and targets | | and iscsi kernel modules | +--------------------------+ +---------------+------------------+ | User space | - - - - - - - - - - - - - - - - - - - - - - - - - | - - - - - - - - - - Kernel v +-----------------------------------------------------------+ | kernel modules: scsi_transport_iscsi, iscsi_tcp, libiscsi | +-----------------------------------------------------------+
Open-iSCSI の README より:
永続的な設定は DBM データベースとして実装され、以下の2つのテーブルを含みます:
- ディスカバリテーブル (
/etc/iscsi/send_targets
) - ノードテーブル (
/etc/iscsi/nodes
)
設定
サービスを開始する
iscsid
は systemd ユニットによって管理されます。
iscsid.service
または iscsid.socket
を 起動 します。
ISCSI 修飾名 (IQN)
IQN はすべてのデバイスを識別するために使用されます。
Open-ISCSI は、イニシエータ IQN を /etc/iscsi/initiatorname.iscsi
ファイルに InitiatorName=iqn
の形式で保存します。
インストール中に、初期 IQN が生成されます。新しい IQN を生成したい場合は、新しい IQN を出力する iscsi-iname
ユーティリティを使用できます。
認証
ISCSI ターゲットがイニシエータによる認証を必要とする場合、設定ファイル /etc/iscsi/iscsid.conf
を更新する必要がある場合があります。
次のパラメータは、イニシエータからターゲットへのログインセッションを認証するために使用されます:
node.session.auth.authmethod = CHAP node.session.auth.username = initiators_username node.session.auth.password = initiators_password
ターゲットで双方向認証が有効になっている場合は、これらの行も編集する必要があります:
node.session.auth.username_in = targets_username node.session.auth.password_in = targets_password
ターゲットがノードのリストを取得するために認証を必要とする場合 (ほとんどの場合は必要ありません)、次の行を編集する必要があります:
discovery.sendtargets.auth.authmethod = CHAP discovery.sendtargets.auth.username = initiators_username discovery.sendtargets.auth.password = initiators_password
ターゲットで双方向認証が有効になっている場合は、これらの行も編集する必要があります:
discovery.sendtargets.auth.username_in = targets_username discovery.sendtargets.auth.password_in = targets_password
ターゲットのディスカバリ
# iscsiadm -m discovery -t sendtargets -p <portalip>
ターゲットを手動で追加する
# iscsiadm -m node --target targetname --portal target_ip -o new
これを使用する考えられるシナリオは、サーバーが検出を許可していない場合です。
ターゲットの削除
# iscsiadm -m discovery -p <portalip> -o delete
利用可能なターゲットにログイン
# iscsiadm -m node -L all
もしくは特定のターゲットにログイン:
# iscsiadm -m node --targetname=<targetname> --login
ログアウト:
# iscsiadm -m node -U all
情報の確認
実行中のセッションを確認するには:
# iscsiadm -m session -P 3
上のコマンドの最後の行にはアタッチされたデバイスの名前が表示されます。例:
Attached scsi disk sdd State: running
既知のノードを確認するには:
# iscsiadm -m node
ボリュームのオンラインリサイズ
iscsi ブロックデバイスにパーティションテーブルが含まれている場合、オンラインリサイズを行うことはできません。その場合、ファイルシステムをアンマウントしてからパーティションのサイズを変更する必要があります。
- 現在のセッションで有効なノードを再スキャン:
# iscsiadm -m node -R
- マルチパスを使っている場合、マルチパスのボリューム情報も再スキャンしてください:
# multipathd -k"resize map sdx"
- 最後にファイルシステムをリサイズ:
# resize2fs /dev/sdx
ヒントとテクニック
接続されている iSCSI デバイスを確認する
次のコマンドを使用して、接続されている iSCSI デバイスが /dev/
ツリー内のどこにあるかを確認することもできます:
$ ls -l /dev/disk/by-path/ip-*
起動時にターゲットにログインする
ブート中にターゲットにログインするには、iscsi.service
を 有効化 して実行し、ノードの設定に node.startup = automatic
が含まれていることを確認します (/var/lib/iscsi/nodes/iqn.node-name/node-ip-address,port
)
トラブルシューティング
Client IQN
サーバー (ターゲット) では、アカウント設定に /etc/iscsi/initiatorname.iscsi
のクライアント IQN を含める必要がある場合があります。
iSCSI デーモンのデバッグ
iSCSI デーモンをデバッグモードで実行するには (事前に iscsid.service
を停止していることを確認してください)
# iscsid -d 8 -c /etc/iscsi/iscsid.conf -i /etc/iscsi/initiatorname.iscsi -f