「Open-iSCSI」の版間の差分
(同期) |
(序文を更新) |
||
(3人の利用者による、間の8版が非表示) | |||
1行目: | 1行目: | ||
− | {{Lowercase title}} |
||
[[Category:ストレージ]] |
[[Category:ストレージ]] |
||
[[Category:ネットワーク]] |
[[Category:ネットワーク]] |
||
8行目: | 7行目: | ||
{{Related|iSCSI ブート}} |
{{Related|iSCSI ブート}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | |||
− | [[Wikipedia:ja:iSCSI|iSCSI]] を使うことで IP ベースのネットワーク上のストレージにアクセスすることができます。 |
||
− | |||
− | エクスポートされるストレージエンティティが'''[[iSCSI ターゲット|ターゲット]]'''でインポートするエンティティが'''イニシエータ'''です。 |
||
− | |||
この記事では [https://github.com/open-iscsi/open-iscsi Open-iSCSI] イニシエータを使って iSCSI ターゲットにアクセスする方法を説明します。 |
この記事では [https://github.com/open-iscsi/open-iscsi Open-iSCSI] イニシエータを使って iSCSI ターゲットにアクセスする方法を説明します。 |
||
+ | |||
+ | {{Note|iSCSI は暗号化されません。安全でないチャネルを介してデータを送信することはお勧めできません。}} |
||
== インストール == |
== インストール == |
||
− | [[公式リポジトリ]]から {{Pkg|open-iscsi}} パッケージを[[pacman|インストール]]してください。 |
||
+ | [[公式リポジトリ]] から {{Pkg|open-iscsi}} パッケージを [[pacman|インストール]] してください。 |
||
− | {{Note|旧式のイニシエータ [http://sourceforge.net/projects/linux-iscsi/ Linux-iSCSI] は2005年4月に Open-iSCSI に統合されました。[http://linux-iscsi.org/ linux-iscsi.org] は LIO [[iSCSI ターゲット|ターゲット]]のウェブサイトなので間違えないで下さい。}} |
||
+ | |||
+ | {{Note|旧式のイニシエータ [https://sourceforge.net/projects/linux-iscsi/ Linux-iSCSI] は2005年4月に Open-iSCSI に統合されました。[http://linux-iscsi.org/ linux-iscsi.org] は LIO [[iSCSI ターゲット|ターゲット]] のウェブサイトなので間違えないで下さい。}} |
||
== 概要 == |
== 概要 == |
||
+ | |||
以下は構成要素の互いの関係を示した図式になります。より詳しいバージョンが次のページにあります: [https://archive.is/HHYKR/90a7a1c178a2c069a7cbc0b578b6fb5854f827fa.jpg Open-iSCSI modules] |
以下は構成要素の互いの関係を示した図式になります。より詳しいバージョンが次のページにあります: [https://archive.is/HHYKR/90a7a1c178a2c069a7cbc0b578b6fb5854f827fa.jpg Open-iSCSI modules] |
||
{{bc|<nowiki> |
{{bc|<nowiki> |
||
50行目: | 48行目: | ||
== 設定 == |
== 設定 == |
||
− | === サービスの起動 === |
||
− | {{ic|iscsid}} は systemd ユニットで管理します。 |
||
+ | === サービスを開始する === |
||
− | [[systemd#ユニットを使う|systemd]] で {{ic|open-iscsi.service}} を起動してください。 |
||
+ | {{ic|iscsid}} は systemd ユニットによって管理されます。 |
||
− | SCSI ターゲットがイニシエータによる認証を必要とする場合、設定ファイル {{ic|/etc/iscsi/iscsid.conf}} を更新してください。 |
||
+ | {{ic|iscsid.service}} または {{ic|iscsid.socket}} を [[起動]] します。 |
||
− | イニシエータのログインセッションを認証してターゲットからイニシエータにセッションを確立するのには以下のパラメータを使います: |
||
+ | |||
+ | === ISCSI 修飾名 (IQN) === |
||
+ | |||
+ | IQN はすべてのデバイスを識別するために使用されます。 |
||
+ | |||
+ | Open-ISCSI は、イニシエータ IQN を {{ic|/etc/iscsi/initiatorname.iscsi}} ファイルに {{ic|1=InitiatorName=''iqn''}} の形式で保存します。 |
||
+ | |||
+ | インストール中に、初期 IQN が生成されます。新しい IQN を生成したい場合は、新しい IQN を出力する {{ic|iscsi-iname}} ユーティリティを使用できます。 |
||
+ | |||
+ | === 認証 === |
||
+ | |||
+ | ISCSI ターゲットがイニシエータによる認証を必要とする場合、設定ファイル {{ic|/etc/iscsi/iscsid.conf}} を更新する必要がある場合があります。 |
||
+ | |||
+ | 次のパラメータは、イニシエータからターゲットへのログインセッションを認証するために使用されます: |
||
node.session.auth.authmethod = CHAP |
node.session.auth.authmethod = CHAP |
||
− | node.session.auth.username = |
+ | node.session.auth.username = ''initiators_username'' |
− | node.session.auth.password = |
+ | node.session.auth.password = ''initiators_password'' |
− | node.session.auth.username_in = <username in initiator> |
||
− | node.session.auth.password_in = <password in initiator> |
||
+ | ターゲットで双方向認証が有効になっている場合は、これらの行も編集する必要があります: |
||
− | イニシエータのディスカバリセッションを認証してターゲットからイニシエータにセッションを確立するのには以下のパラメータを使います: |
||
+ | |||
+ | node.session.auth.username_in = ''targets_username'' |
||
+ | node.session.auth.password_in = ''targets_password'' |
||
+ | |||
+ | ターゲットがノードのリストを取得するために認証を必要とする場合 (ほとんどの場合は必要ありません)、次の行を編集する必要があります: |
||
discovery.sendtargets.auth.authmethod = CHAP |
discovery.sendtargets.auth.authmethod = CHAP |
||
− | discovery.sendtargets.auth.username = |
+ | discovery.sendtargets.auth.username = ''initiators_username'' |
− | discovery.sendtargets.auth.password = |
+ | discovery.sendtargets.auth.password = ''initiators_password'' |
+ | |||
− | discovery.sendtargets.auth.username_in = <username in initiator> |
||
+ | ターゲットで双方向認証が有効になっている場合は、これらの行も編集する必要があります: |
||
− | discovery.sendtargets.auth.password_in = <password in initiator> |
||
+ | |||
+ | discovery.sendtargets.auth.username_in = ''targets_username'' |
||
+ | discovery.sendtargets.auth.password_in = ''targets_password'' |
||
{{Warning|同一のパスワードを設定することはできません。上記の設定では別々の4つのパスワードを設定する必要があります。}} |
{{Warning|同一のパスワードを設定することはできません。上記の設定では別々の4つのパスワードを設定する必要があります。}} |
||
+ | |||
+ | {{Note|認証データはノードごとの設定ファイルに保存されます。これらを更新するには、{{ic|/var/lib/iscsi/nodes/iqn.''node-name''/''node-ip-address'',''port'',1/default}} を編集し、必要に応じてオプションを追加/調整します。[https://serverfault.com/a/790835]}} |
||
=== ターゲットのディスカバリ === |
=== ターゲットのディスカバリ === |
||
+ | |||
{{bc|# iscsiadm -m discovery -t sendtargets -p <portalip>}} |
{{bc|# iscsiadm -m discovery -t sendtargets -p <portalip>}} |
||
+ | |||
+ | === ターゲットを手動で追加する === |
||
+ | |||
+ | # iscsiadm -m node --target ''targetname'' --portal ''target_ip'' -o new |
||
+ | |||
+ | これを使用する考えられるシナリオは、サーバーが検出を許可していない場合です。 |
||
+ | |||
=== ターゲットの削除 === |
=== ターゲットの削除 === |
||
+ | |||
{{bc|# iscsiadm -m discovery -p <portalip> -o delete}} |
{{bc|# iscsiadm -m discovery -p <portalip> -o delete}} |
||
=== 利用可能なターゲットにログイン === |
=== 利用可能なターゲットにログイン === |
||
+ | |||
{{bc|# iscsiadm -m node -L all}} |
{{bc|# iscsiadm -m node -L all}} |
||
もしくは特定のターゲットにログイン: |
もしくは特定のターゲットにログイン: |
||
89行目: | 117行目: | ||
=== 情報の確認 === |
=== 情報の確認 === |
||
+ | |||
実行中のセッションを確認するには: |
実行中のセッションを確認するには: |
||
{{bc|# iscsiadm -m session -P 3}} |
{{bc|# iscsiadm -m session -P 3}} |
||
98行目: | 127行目: | ||
=== ボリュームのオンラインリサイズ === |
=== ボリュームのオンラインリサイズ === |
||
+ | |||
iscsi ブロックデバイスにパーティションテーブルが含まれている場合、オンラインリサイズを行うことはできません。その場合、ファイルシステムをアンマウントしてからパーティションのサイズを変更する必要があります。 |
iscsi ブロックデバイスにパーティションテーブルが含まれている場合、オンラインリサイズを行うことはできません。その場合、ファイルシステムをアンマウントしてからパーティションのサイズを変更する必要があります。 |
||
# 現在のセッションで有効なノードを再スキャン: {{bc|# iscsiadm -m node -R}} |
# 現在のセッションで有効なノードを再スキャン: {{bc|# iscsiadm -m node -R}} |
||
103行目: | 133行目: | ||
# 最後にファイルシステムをリサイズ: {{bc|# resize2fs /dev/sdx}} |
# 最後にファイルシステムをリサイズ: {{bc|# resize2fs /dev/sdx}} |
||
− | == ヒント |
+ | == ヒントとテクニック == |
+ | |||
− | アタッチされている iSCSI デバイスの {{ic|/dev}} ツリーにある場所は {{ic|ls -lh /dev/disk/by-path/* | grep ip}} でも確認できます。 |
||
+ | === 接続されている iSCSI デバイスを確認する === |
||
+ | |||
+ | 次のコマンドを使用して、接続されている iSCSI デバイスが {{ic|/dev/}} ツリー内のどこにあるかを確認することもできます: |
||
+ | |||
+ | $ ls -l /dev/disk/by-path/ip-* |
||
+ | |||
+ | === 起動時にターゲットにログインする === |
||
+ | |||
+ | ブート中にターゲットにログインするには、{{ic|iscsi.service}} を [[有効化]] して実行し、ノードの設定に {{ic|1=node.startup = automatic}} が含まれていることを確認します ({{ic|/var/lib/iscsi/nodes/iqn.''node-name''/''node-ip-address'',''port''}}) |
||
+ | |||
+ | {{Note|1=systemd ユニット名は {{ic|iscsi'''d'''.service}} ではなく {{ic|iscsi.service}} です。[https://bbs.archlinux.org/viewtopic.php?pid=1961776#p1961776]}} |
||
+ | |||
+ | == トラブルシューティング == |
||
+ | |||
+ | === Client IQN === |
||
+ | |||
+ | サーバー (ターゲット) では、アカウント設定に {{ic|/etc/iscsi/initiatorname.iscsi}} のクライアント IQN を含める必要がある場合があります。 |
||
+ | === iSCSI デーモンのデバッグ === |
||
− | サーバー (ターゲット) 側では acl の設定に {{ic|/etc/iscsi/initiatorname.iscsi}} からクライアントの iqn を記述する必要があります。 |
||
− | + | iSCSI デーモンをデバッグモードで実行するには (事前に {{ic|iscsid.service}} を停止していることを確認してください) |
|
+ | # iscsid -d 8 -c /etc/iscsi/iscsid.conf -i /etc/iscsi/initiatorname.iscsi -f |
||
− | == 参照 == |
||
− | * [[iSCSI ブート]] - iSCSI ターゲットで Arch Linux を起動。 |
2024年1月1日 (月) 14:00時点における最新版
関連記事
この記事では 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