open-iSCSI

提供: ArchWiki
2017年7月18日 (火) 21:52時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

関連記事

iSCSI を使うことで IP ベースのネットワーク上のストレージにアクセスすることができます。

エクスポートされるストレージエンティティがターゲットでインポートするエンティティがイニシエータです。

この記事では Open-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 ユニットで管理します。

systemdopen-iscsi.service を起動してください。

SCSI ターゲットがイニシエータによる認証を必要とする場合、設定ファイル /etc/iscsi/iscsid.conf を更新してください。

イニシエータのログインセッションを認証してターゲットからイニシエータにセッションを確立するのには以下のパラメータを使います:

node.session.auth.authmethod = CHAP
node.session.auth.username = <username in target>
node.session.auth.password = <password in target>
node.session.auth.username_in = <username in initiator>
node.session.auth.password_in = <password in initiator>

イニシエータのディスカバリセッションを認証してターゲットからイニシエータにセッションを確立するのには以下のパラメータを使います:

discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = <username in target>
discovery.sendtargets.auth.password = <password in target>
discovery.sendtargets.auth.username_in = <username in initiator>
discovery.sendtargets.auth.password_in = <password in initiator>
警告: 同一のパスワードを設定することはできません。上記の設定では別々の4つのパスワードを設定する必要があります。

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

# iscsiadm -m discovery -t sendtargets -p <portalip>

ターゲットの削除

# 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 デバイスの /dev ツリーにある場所は ls -lh /dev/disk/by-path/* でも確認できます。

サーバー (ターゲット) 側では acl の設定に /etc/iscsi/initiatorname.iscsi からクライアントの iqn を記述する必要があります。

iscsiadm の操作は基本的に iSCSI デーモン iscsid が動作していることを必要とします。動作しているか確認するには、open-iscsi.service状態を確認してください。

参照