PCのHDD容量が不足してきたため、ファイルサーバーのHDDの一部領域を、PCに割り当てたく
iscsiで設定してみた
個人で利用している環境では、PCにドメイン名を設定せずに利用している事が多い。
今回の設定では、ドメイン名が必要となるので、マイドメインを取得していない場合は、
テスト用のドメインを利用して欲しい。
今回は、example.jp を利用して情報を残しておく
2つの記事に分けて執筆しているので、必要に応じて参考にして頂きたい
・ RockyLinux8 と Windows10間でiscsi接続設定 (iscsi ターゲットサーバー設定) *** この記事 ***
・ RockyLinux8 と Windows10間でiscsi接続設定 (iscsiイニシエーター設定)
(1) iscsi設定を行う為の事前情報
iscsiの設定を行うに辺り、iSCSI ターゲット名/イニシエーター名を事前に決めておく。
命名規則があるので、フォーマットに倣って決定する
フォーマットは [ iqn.年-月.ドメイン名の逆:任意の名前 ]
【環境】
・サーバー (iscsiターゲットサーバー)
RockyLinux8.9
Hostname : server.example.jp
IPAddress: 192.168.1.84
iscsiで利用する名前: iqn.2023-12.jp.example:server
・ クライアント (iscsiイニシエーター)
Windwos10Pro
Hostname : client.example.jp
IPAddress: 192.168.1.85
iscsiで利用する名前: iqn.2023-12.jp.example:client
(2) サーバー設定
(2-1) サーバー側にiscsi管理ソフトを導入
# dnf -y install targetcli
# systemctl enable target
(2-2) ディスクイメージ場所の選定
Windows10で利用する(割り当てる) Disk領域の場所
# mkdir /iscsi_disks
(2-3) iscsi管理ソフトで設定
# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/>
対話モードなるので、コマンドを実行していく。
設定中はプロンプトが "> になっている事に留意して欲しい。
コマンドはシェルに似ている
(2-3-1) Windows10で利用するDiskイメージの作成
disk01と名前で、作成場所、ファイル名は、/iscsi_disks/client_disk01.img
とりあえず容量を10GBとした。
以下、絶対パスで項目を移動(感覚的に分かりやすいかも)
> cd backstores/fileio
/backstores/fileio> create disk01 /iscsi_disks/client_disk01.img 10G
Created fileio disk01 with size 10737418240
(2-3-2) iscsiターゲットの作成
/backstores/fileio> cd /iscsi
(1)で命名した名前で作成する
/iscsi> create iqn.2023-12.jp.example:server
Created target iqn.2023-12.jp.example:server.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
(2-3-3) LUNを割り当て
/iscsi> cd /iscsi/iqn.2023-12.jp.example:server/tpg1/luns
(2-3-1)で作成したディスクイメージ "disk01" にLUNを割り当てる
明示的にLUN番号を指定できるが、省略すると空き番号を自動割り当てされる。
/iscsi/iqn.20...ver/tpg1/luns> create /backstores/fileio/disk01
Created LUN 0.
→ 0番が割り当てられた
(2-3-4) AccessControL (ACL) の設定
disk01に接続可能なクライアント(Windows10)を登録する
※ この設定(接続クライアントの制限)や、(2-3-5)で設定するID/PASSも不要な場合は、
別設定(制限しない=全て接続する)を行えば、「来るもの拒まず」状態になる
/iscsi/iqn.20...xample:server> cd /iscsi/iqn.2023-12.jp.example:server/tpg1/acls
/iscsi/iqn.20...ver/tpg1/acls> create iqn.2023-12.jp.example:client
Created Node ACL for iqn.2023-12.jp.example:client
Created mapped LUN 0.
(2-3-5) クライアントがサーバーに接続する際のID/Passを設定
/iscsi/iqn.20...ver/tpg1/acls> cd /iscsi/iqn.2023-12.jp.example:server/tpg1/acls/iiqn.2023-12.jp.example:client
/iscsi/iqn.20...xample:client> set auth userid=iscsiuser001 password=123456789012
Parameter userid is now 'iscsiuser001'.
Parameter password is now '123456789012'.
※ PASS(シークレット)の文字数は12~16文字で設定する必要がある(CHAPの仕様)
(2-3-6) ID/PASS認証を行うように設定
(2-3-5)にて、ID/PASSを登録したが、ID/PASSを使っての認証をするかしないかの設定が必要となる。
また、この設定はターゲットポータルグループ (TPG) 毎の設定となる。
現在、グループ名"tpg1" が作成されているので、「tpg1グループはID/PASS認証を行う」設定となる。
/iscsi/iqn.20...xample:client> cd /iscsi/iqn.2023-12.jp.example:server/tpg1
/iscsi/iqn.20...e:server/tpg1> set attribute authentication=1
Parameter authentication is now '1'.
※ ここで、"get attribute"と打てば、その他の設定項目も表示される。
(2-3-7) 設定の完了と確認
"ls /" にて設定の簡単な設定確認が出来る。
しかし、ID/PASSなどはこの画面には出て来ないので、確認コマンドはあるが、生ファイルを見たほうが早い
設定ファイル /etc/target/saveconfig.json
/iscsi/iqn.20...xample:client> ls /
o- / ............................................................................................................................................. [...]
o- backstores ............................................................................................................................. [...]
| o- block ........................................................................................................... [Storage Objects: 0]
| o- fileio ............................................................................................................ [Storage Objects: 1]
| | o- disk01 ............................................ [/iscsi_disks/client_disk01.img (10.0GiB) write-back activated]
| | o- alua ............................................................................................................ [ALUA Groups: 1]
| | o- default_tg_pt_gp ...................................................................... [ALUA state: Active/optimized]
| o- pscsi ............................................................................................................ [Storage Objects: 0]
| o- ramdisk ........................................................................................................ [Storage Objects: 0]
o- iscsi ............................................................................................................................ [Targets: 1]
| o- iqn.2023-12.jp.example:server ....................................................................................... [TPGs: 1]
| o- tpg1 ................................................................................................... [no-gen-acls,auth per-acl]
| o- acls .......................................................................................................................... [ACLs: 1]
| | o- iqn.2023-12.jp.example:client ....................................................................... [Mapped LUNs: 1]
| | o- mapped_lun0 .................................................................................... [lun0 fileio/disk01 (rw)]
| o- luns .......................................................................................................................... [LUNs: 1]
| | o- lun0 ......................................... [fileio/disk01 (/iscsi_disks/client_disk01.img) (default_tg_pt_gp)]
| o- portals .................................................................................................................... [Portals: 1]
| o- 0.0.0.0:3260 ................................................................................................................... [OK]
o- loopback ....................................................................................................................... [Targets: 0]
/iscsi/iqn.20...xample:client> exit
Global pref auto_save_on_exit=true
Configuration saved to /etc/target/saveconfig.json
(2-4) iscsiサーバーサービスを起動する
# systemctl start target
TCP 3260でListen状態となっている事が確認できる
# ss -ant | grep 3260
LISTEN 0 256 0.0.0.0:3260 0.0.0.0:*
以上で、ターゲットサーバー側の設定は完了
(3) クライアントの設定
(3-1) iscsiイニシエータ プログラムの起動
説明を簡略化する為、ショートカットキーで執筆している。
・iSCSI イニシエーター
[Windows]キー + R で、「ファイル名を指定して実行」を開く。
「iscsicpl」と入力し、OKをクリック
(3-2) (初めて起動すると)以下の画面が表示されるので「はい」を選択
以下の画面が出なかった場合は、サービスが起動しているか確認すること。
・サービス
{Windows}キー + R で、[ファイル名を指定して実行]を開く。
「SERVICES.MSC」と入力し、OKをクリック
サービス名:Microsoft iSCSI Initiator Service が[実行中] で[自動]となっている事
(3-3) イニシエーター名の設定
① iSCSI イニシエーター画面が表示。構成タブを選択
② [変更]ボタン押下
③ 予め決めておいたクライアントのイニシエータ名 「iqn.2023-12.jp.example:client」入力後、[OK]ボタン押下
④ イニシエータ名が変更された事を確認し、[探索]タブを選択
(3-4) ターゲットポータルの設定
① [ポータルの探索]をクリックする
② ターゲットサーバーのIPアドレスを入力後、[OK]をクリック
※ ここでは、詳細設定は行わない
③ ターゲットを検索するポータルにエントリされた事を確認し、[ターゲット]タブを選択
(3-5) ターゲットへの接続設定
① (3-4)の設定が完了すれば、[検出されたターゲット]の欄にターゲット名が表示されている
状態は[非アクティブ]
ターゲット名を選択された状態にし、[接続]をクリックする
② [詳細設定]をクリックする
③ [CHAP ログインを有効にする]にレ点を入れ、
(2-3-5) で設定したID/PASS情報を入力する
名前: iscsiuser001
ターゲット シークレット: 123456789012
入力後、[OK]をクリック
④ 1つ前の画面に戻るので、[OK]をクリックする
⑤ 状態が"接続完了"となれば設定完了
※ 設定に誤りがあると、エラーウインドウが表示される。
設定ミスの箇所により、エラーウインドウが出るまでの時間はマチマチである。
早い時は1秒未満、遅い時は3分ほど待たされ、エラーウインドウが表示された。
(3-6) ディスクの管理より領域を割り当て
ここまでくれば、HDD増設時と同じ手順となる
・ディスクの管理
{Windows}キー + R で、[ファイル名を指定して実行]を開く。
「diskmgmt.msc」と入力し、OKをクリック
「新しいシンプル ボリューム」にて容量を割り当てれば完了
以上で設定は完了。Eドライブとして使用できるようになる。