Open-iSCSI

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

この記事では Open-iSCSI イニシエータを使って iSCSI ターゲットにアクセスする方法を説明します。

ノート: iSCSI は暗号化されません。安全でないチャネルを介してデータを送信することはお勧めできません。

インストール

公式リポジトリ から open-iscsi パッケージを インストール してください。

ノート: 旧式のイニシエータ Linux-iSCSI は2005年4月に Open-iSCSI に統合されました。linux-iscsi.org は LIO ターゲット のウェブサイトなので間違えないで下さい。

概要

以下は構成要素の互いの関係を示した図式になります。より詳しいバージョンが次のページにあります: 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
警告: 同一のパスワードを設定することはできません。上記の設定では別々の4つのパスワードを設定する必要があります。
ノート: 認証データはノードごとの設定ファイルに保存されます。これらを更新するには、/var/lib/iscsi/nodes/iqn.node-name/node-ip-address,port,1/default を編集し、必要に応じてオプションを追加/調整します。[1]

ターゲットのディスカバリ

# 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 ブロックデバイスにパーティションテーブルが含まれている場合、オンラインリサイズを行うことはできません。その場合、ファイルシステムをアンマウントしてからパーティションのサイズを変更する必要があります。

  1. 現在のセッションで有効なノードを再スキャン:
    # iscsiadm -m node -R
  2. マルチパスを使っている場合、マルチパスのボリューム情報も再スキャンしてください:
    # multipathd -k"resize map sdx"
  3. 最後にファイルシステムをリサイズ:
    # 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)

ノート: systemd ユニット名は iscsid.service ではなく iscsi.service です。[2]

トラブルシューティング

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