「ISCSI/LIO」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
25行目: 25行目:
 
必要なモジュールをロードし、configfs をマウントし、以前に保存された iSCSI ターゲット設定をロードするために、{{AUR|python-rtslib-fb}} に含まれる {{ic|target.service}} を[[開始/有効化]]してください。
 
必要なモジュールをロードし、configfs をマウントし、以前に保存された iSCSI ターゲット設定をロードするために、{{AUR|python-rtslib-fb}} に含まれる {{ic|target.service}} を[[開始/有効化]]してください。
   
  +
== targetcli ==
== LIO ターゲットのセットアップ ==
 
LIO ターゲットは Linux 2.6.38 からカーネルに含まれています。ただし、iSCSI ターゲットファブリックが含まれるようになったのは Linux 3.1 からです。
 
 
重要なカーネルモジュールは ''target_core_mod'' と ''iscsi_target_mod'' です。
 
 
フリーブランチ版のパッケージを使用することを強く推奨します: {{AUR|targetcli-fb}}, {{AUR|python-rtslib-fb}}, {{AUR|python-configshell-fb}}。
 
 
フリーブランチを使用する場合 {{AUR|python-rtslib-fb}} に systemd の {{ic|target.service}} が含まれています。
 
 
以下のコマンドで 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}} と入力するとパスが表示・選択されます。}}
 
   
 
ターゲットの起動後、以下のコマンドで設定シェルを開くことができます:
 
ターゲットの起動後、以下のコマンドで設定シェルを開くことができます:
107行目: 84行目:
 
最初の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) のセットアップ ==
 
== SCSI Target Framework (STGT/TGT) のセットアップ ==

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

関連記事

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

エクスポートされたストレージエンティティはターゲットと呼ばれ、インポートするエンティティはイニシエータと呼ばれます。様々なモジュールでターゲットをセットアップすることができます:

インストール

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 には存在しません。

関連情報

SCSI Target Framework (STGT/TGT) のセットアップ

AUR から tgtAUR パッケージをインストールする必要があります。

詳しくは TGT iSCSI ターゲットを見てください。

参照