「ISCSI/LIO」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「Tips and tricks」を「ヒントとテクニック」に置換)
(序文を修正)
 
(同じ利用者による、間の6版が非表示)
2行目: 2行目:
 
[[Category:ストレージ]]
 
[[Category:ストレージ]]
 
[[Category:ネットワーク]]
 
[[Category:ネットワーク]]
[[en:ISCSI Target]]
+
[[en:ISCSI/LIO]]
 
[[zh-hans:ISCSI Target]]
 
[[zh-hans:ISCSI Target]]
 
{{Related articles start}}
 
{{Related articles start}}
8行目: 8行目:
 
{{Related|iSCSI ブート}}
 
{{Related|iSCSI ブート}}
 
{{Related articles end}}
 
{{Related articles end}}
  +
[http://linux-iscsi.org/ LIO]{{Dead link|2022|12|31|接続不可; 3週間前の Web アーカイブ版}} (LinuxIO) は、カーネル内の [[iSCSI]] ターゲットです(Linux 2.6.38 以降)。
[[Wikipedia:iSCSI|iSCSI]] を使うことで IP ベースのネットワーク経由でストレージにアクセスすることができます。
 
   
  +
== インストール ==
エクスポートされたストレージエンティティは'''ターゲット'''と呼ばれ、インポートするエンティティは'''[[iSCSI イニシエータ|イニシエータ]]'''と呼ばれます。様々なモジュールでターゲットをセットアップすることができます:
 
* Linux 2.6.38 以前は [http://stgt.berlios.de/ SCSI Target Framework (STGT/TGT)] が標準でした。
 
* 現在の標準は [http://linux-iscsi.org/ LIO ターゲット] です。
 
* [http://iscsitarget.sourceforge.net/ iSCSI Enterprise Target (IET)] は旧式の実装で [http://scst.sourceforge.net/ SCSI Target Subsystem (SCST)] が IET の後継です。IET は LIO が標準に決まる前の候補のひとつでした。
 
   
== LIO ターゲットのセトアップ ==
+
iSCSI ターゲットファブリクは Linux 3.1 から含まれています。
LIO ターゲットは Linux 2.6.38 からカーネルに含まれています。ただし、iSCSI ターゲットファブリックが含まれるようになったのは Linux 3.1 からです。
 
   
重要なカーネルモジュールは ''target_core_mod'' と ''iscsi_target_mod'' です。
+
重要なカーネルモジュールは ''target_core_mod'' と ''iscsi_target_mod'' であり、これらはカーネルに組み込まれており、自動的にロードされるべきです。
   
フリーブランチのパッケージを使用することを強く推奨します: {{AUR|targetcli-fb}}, {{AUR|python-rtslib-fb}}, {{AUR|python-configshell-fb}}。
+
フリーブランチのパッケージ {{AUR|targetcli-fb}}{{AUR|python-rtslib-fb}}、および {{AUR|python-configshell-fb}} の使用が強く推奨されます
   
フリブラ使用する場合 {{AUR|python-rtslib-fb}} に systemd の {{ic|target.service}} が含まれています
+
必要なモジュルをロードし、configfs をマウトし、以前に保存された iSCSI ターゲット設定ロードするために、{{AUR|python-rtslib-fb}} に含まれる {{ic|target.service}} を[[開始/有効化]]しください。
   
  +
== targetcli ==
以下のコマンドで LIO ターゲットを起動できます:
 
# systemctl start target
 
 
上記のコマンドで必要なモジュールがロードされ、configfs がマウントされて前に保存した iSCSI ターゲットの設定がロードされます。
 
 
実行中の設定については以下のコマンドで情報を表示できます (フリーブランチの場合のみ):
 
# targetcli status
 
 
さらに以下のコマンドで起動時に LIO ターゲットを有効にすることが可能です:
 
# systemctl enable target
 
 
設定を作成するときは '''targetcli''' を使います。
 
 
=== targetcli を使う ===
 
 
外部マニュアルは''フリーブランチ''にしか存在しません。[https://github.com/agrover/targetd targetd] は AUR に存在しませんが、フリーブランチに依存しています。
 
外部マニュアルは''フリーブランチ''にしか存在しません。[https://github.com/agrover/targetd targetd] は AUR に存在しませんが、フリーブランチに依存しています。
   
 
設定シェルはほとんどの名前と数字を自動的に作成しますが、自分で設定することもできます。シェルの中で {{ic|help}} と入力することで実行できるコマンドを確認できます。
 
設定シェルはほとんどの名前と数字を自動的に作成しますが、自分で設定することもできます。シェルの中で {{ic|help}} と入力することで実行できるコマンドを確認できます。
 
{{Tip|
 
{{Tip|
* シェルではタブ補完が利用できます。
+
* シェルではタブ補完が利用できます。シェルに {{ic|cd}} と入力するとパスが表示・選択されます。}}
* シェルに {{ic|cd}} と入力するとパスが表示・選択されます。}}
 
   
 
ターゲットの起動後、以下のコマンドで設定シェルを開くことができます:
 
ターゲットの起動後、以下のコマンドで設定シェルを開くことができます:
97行目: 79行目:
 
最初の2つはターゲットのユーザー名とパスワードです。設定したユーザー名とパスワードを使用してイニシエータはターゲットにログインします。("mutual_" と付いている) 残りの2つはイニシエータのユーザー名とパスワードです (全てのイニシエータは同じユーザー名とパスワードを使います)。イニシエータのユーザー名とパスワードは任意のパラメータであり、イニシエータは許可されたターゲットからの接続だけを通すようになります。
 
最初の2つはターゲットのユーザー名とパスワードです。設定したユーザー名とパスワードを使用してイニシエータはターゲットにログインします。("mutual_" と付いている) 残りの2つはイニシエータのユーザー名とパスワードです (全てのイニシエータは同じユーザー名とパスワードを使います)。イニシエータのユーザー名とパスワードは任意のパラメータであり、イニシエータは許可されたターゲットからの接続だけを通すようになります。
   
=== ヒントとテクニック ===
+
== ヒントとテクニック ==
 
* {{ic|targetcli sessions}} で現在開いているセッションを確認できます。このコマンドは {{AUR|targetcli-fb}} パッケージには含まれていますが ''lio-utils'' やオリジナルの ''targetcli'' には存在しません。
 
* {{ic|targetcli sessions}} で現在開いているセッションを確認できます。このコマンドは {{AUR|targetcli-fb}} パッケージには含まれていますが ''lio-utils'' やオリジナルの ''targetcli'' には存在しません。
   
  +
== 参照 ==
=== 上流のドキュメント ===
 
 
* [http://www.linux-iscsi.org/wiki/Targetcli targetcli]
 
* [http://www.linux-iscsi.org/wiki/Targetcli targetcli]
* [http://www.linux-iscsi.org/wiki/Lio-utils_HOWTO LIO utils]
 
* ''フリーブランチ''版の {{AUR|targetcli-fb}} をインストールした場合 {{ic|man targetcli}} が使えます。
 
 
== SCSI Target Framework (STGT/TGT) のセットアップ ==
 
[[AUR]] から {{AUR|tgt}} パッケージをインストールする必要があります。
 
 
詳しくは [[TGT iSCSI ターゲット]]を見てください。
 
 
== 参照 ==
 
* [[iSCSI ブート]]: iSCSI ターゲットの {{ic|/}} で Arch Linux を起動。
 
 
* [[永続的なブロックデバイスの命名]]: 適切なターゲットのブロックデバイスを使用。
 
* [[永続的なブロックデバイスの命名]]: 適切なターゲットのブロックデバイスを使用。

2023年9月5日 (火) 19:06時点における最新版

関連記事

LIO[リンク切れ 2022-12-31] (LinuxIO) は、カーネル内の iSCSI ターゲットです(Linux 2.6.38 以降)。

インストール

iSCSI ターゲットファブリックは Linux 3.1 から含まれています。

重要なカーネルモジュールは target_core_modiscsi_target_mod であり、これらはカーネルに組み込まれており、自動的にロードされるべきです。

フリーブランチのパッケージ targetcli-fbAURpython-rtslib-fbAUR、および python-configshell-fbAUR の使用が強く推奨されます。

必要なモジュールをロードし、configfs をマウントし、以前に保存された iSCSI ターゲット設定をロードするために、python-rtslib-fbAUR に含まれる target.service開始/有効化してください。

targetcli

外部マニュアルはフリーブランチにしか存在しません。targetd は AUR に存在しませんが、フリーブランチに依存しています。

設定シェルはほとんどの名前と数字を自動的に作成しますが、自分で設定することもできます。シェルの中で help と入力することで実行できるコマンドを確認できます。

ヒント:
  • シェルではタブ補完が利用できます。シェルに cd と入力するとパスが表示・選択されます。

ターゲットの起動後、以下のコマンドで設定シェルを開くことができます:

# targetcli

シェルの中では以下のようにして使用するブロックデバイスを指定できます (例: /dev/disk/by-id/md-name-nas:iscsi):

/> cd backstores/block
/backstores/block> create md_block0 /dev/disk/by-id/md-name-nas:iscsi
ノート: ブロックデバイスであれば RAIDLVM でも使用できます。block ではなく fileio を使用するのであればファイルも使えます。

iSCSI Qualified Name (IQN) とターゲットポータルグループ (TPG) を作成するには:

...> cd /iscsi
/iscsi> create
ノート: create にお好きな IQN を付けることで targetcli で自動的に IQN を作成することができます。

ターゲットのバックストアとしてブロックデバイスを使用することを LIO に伝えるには以下を実行:

ノート: cd<iqn>/tpg1 のパスを選択できます。
.../tpg1> cd luns
.../tpg1/luns> create /backstores/block/md_block0

それからポータルを作成して、デーモンが接続を待機するようにしてください:

.../luns/lun0> cd ../../portals
.../portals> create

targetcli は LIO が接続を listen する IP とポートを表示します (デフォルトは 0.0.0.0 (all) です)。最低でもクライアントの IP が必要です。ポートは標準ポートの 3260 にするべきです。

クライアント/イニシエータから接続するにはターゲットの設定にイニシエータの IQN を記述する必要があります:

...> cd ../../acls
.../acls> create iqn.2005-03.org.open-iscsi:SERIAL

iqn.2005-03.org.open-iscsi:SERIAL はイニシエータの IQN に置き換えてください。通常は /etc/iscsi/initiatorname.iscsi で確認できます。接続する全てのイニシエータを設定してください。targetcli は作成済みの LUN を新しく作成した ACL に自動的にマッピングします。

ノート: マッピング済みの LUN を変更したり読み書きアクセスから読み取り専用に変えることができます。詳しくは targetcli シェルで help create を実行してください。

最後に設定を保存します:

...> cd /
/> saveconfig

上記のコマンドで /etc/target/saveconfig.json に設定が作成されます。これで設定を失うことなく target.service を安全に起動・停止することが可能になります。

ヒント: saveconfig にパラメータとしてファイル名を指定することができます。また、clearconfig で設定を消去できます。

認証

デフォルトで CHAP によるターゲットの認証が有効になっています。パスワードを設定したり、逆に認証を無効化することができます。

認証の無効化

targetcli でターゲットまで移動して (/iscsi/iqn.../tpg1)、以下のコマンドを実行してください:

.../tpg1> set attribute authentication=0
警告: 認証を無効化するとクライアント (イニシエータ) の IQN を知っていれば誰でもターゲットにアクセスできるようになります。あくまでテストあるいは家庭環境で行ってください。
認証情報の設定

ターゲットの ACL に移動して (/iscsi/iqn.../tpg1/acls/iqn.../)、以下のコマンドを実行すると現在の認証情報が表示されます:

...> get auth

以下のようにして認証情報を設定してください:

...> set auth userid=<username in target>
...> set auth password=<password in target>
...> set auth mutual_userid=<username in initiator>  (optional)
...> set auth mutual_password=<password in initiator>  (optional)

最初の2つはターゲットのユーザー名とパスワードです。設定したユーザー名とパスワードを使用してイニシエータはターゲットにログインします。("mutual_" と付いている) 残りの2つはイニシエータのユーザー名とパスワードです (全てのイニシエータは同じユーザー名とパスワードを使います)。イニシエータのユーザー名とパスワードは任意のパラメータであり、イニシエータは許可されたターゲットからの接続だけを通すようになります。

ヒントとテクニック

  • targetcli sessions で現在開いているセッションを確認できます。このコマンドは targetcli-fbAUR パッケージには含まれていますが lio-utils やオリジナルの targetcli には存在しません。

参照