2024/10/31
こんにちは。リーダーのKです。
仮想環境を作成する際に、仮想環境を実行するサーバーと、データを保存しておくストレージで分けて運用することがあります。
ストレージ側は大容量ディスクを仮想環境に提供して、仮想環境内部で保存用ストレージを持たない運用ができるわけです。
さて、この接続方法にはいくつかの種類があり、以下3つ程度に分けられます。
1.ファイバーチャネル(光配線)による接続
2.LANによる接続
3.SCSIカード等による接続
実環境の場合は「1.ファイバーチャネル(光配線)による接続」が多くなりますが、
個人で検証向けに使用する、サーバー=ストレージ間の接続費用が安く済むということもあり、
LANによる接続をテスト環境で使用することが多いです。
今回は、LANによる接続を行う際に使用可能な「iSCSI」の領域作成を行ってみたいと思います。
なお、以下の環境を使用いたしました。
iSCSI領域用サーバー(ESXiサーバー上で稼働)
OS:ALMA Linux 8.5
CPU:2コア
メモリ:4GB
ストレージ:200GB
IP:192.168.1.10
ESXiサーバー
OS:VMware ESXi 7.0U3e
CPU:6コア
メモリ:48GB
ストレージ:1000GB
IP:192.168.1.11
1.iSCSI領域作成のため、「targetcli」を作成する
以下のコマンドを入力し、「targetcli」をインストールします。
dnf install targetcli
2.「targetcli」を使用して、共有用ディスクイメージとiSCSiターゲットを作成する
targetcliを起動させ、共有用ディスクイメージ、他サーバーで識別する「iSCSiターゲット」名を設定します。
targetcli
——-
backstores/fileioフォルダへ移動
cd backstores/fileio
——-
targetcli内で以下のように入力し、共有用ディスクイメージを作成します。
create disk0 /[共有用ディスクイメージ保存先]/disk0.img [ディスク容量]
例:
create disk0 /iscsi_disks/disk0.img 50G
——-
/iscsiフォルダへ移動
cd /iscsi
——–
他サーバーで識別する「iSCSIターゲット」名を設定します。
create [iscsiターゲット名]
例:
create iqn.2022-02.localhost.test:test-iscsi.taget0
——–
iSCSIターゲットへ移動し、作成されたことを確認する。
cd [iscsiターゲット名]
例:
cd iqn.2022-02.localhost.test:test-iscsi.taget0
3.LUN作成、「ESXiサーバー」のアクセス用iSCSiホスト名を登録する
Linuxサーバー側でLUN番号を登録し、ESXiサーバーのiSCSIイニシエータを登録し、アクセスを許可させます。
——-
/iscsi/iqn.2022-02.localhost.test:test-iscsi.taget0/tpg1/lunsフォルダへ移動します。
cd tpg1/luns
——-
LUN0を作成する。
create /backstores/fileio/disk0
——-
/iscsi/iqn.2022-02.localhost.test:test-iscsi.taget0/tpg1/aclsフォルダへ移動します。
cd ../acls
——–
ESXiサーバーのiSCSIイニシエータを登録します。
create [ESXiサーバーのiSCSIイニシエータ名]
例:create iqn.1998-01.com.vmware:5eb1bba4-7aa5-bd7f-89b5-0492266da452-17ae2be9
——–
作成されたら、exitします。
exit
——–
targetを再起動します。
再起動後、3260ポートが「LISTEN」になっていることを確認します。
systemctl restart target
ss -napt | grep 3260
——-
なお、ESXiサーバーのiSCSIイニシエータ名は、
「ESXiサーバー」>「ストレージ」>「アダプタ」>「ソフトウェアiSCSI」の
「名前とエイリアス」に記載してあります。
——-
4.firewalldサービスでiSCSiに必要な通信許可を実施する
firewalldサービスを有効にしている場合は実施してください。
——-
firewalldサービスが稼働しているか確認します。
firewall-cmd –state
——-
firewalldサービスの稼働中のzoneと通信許可したサービスを確認します。
firewall-cmd –state
——-
firewalldサービスへ、「iscsi-target」サービスを追加します。
firewall-cmd –add-service=iscsi-target –permanent
——-
firewalldサービスを再読み込みします。
firewall-cmd –reload
——-
firewalldサービスの稼働中のzoneと通信許可したサービスを確認し、
「iscsi-target」サービスが追加されたことを確認します。
firewall-cmd –state
——-
5.「ESXiサーバー」へiSCSiサーバーのターゲット名を登録し、ディスクとして認識させる
ESXiサーバー上でiSCSiサーバーのiSCSIターゲット名を登録し、ディスクとして認識することを確認します。
——-
ESXiサーバー Web管理画面へログインします。
ログイン後、「ESXiサーバー」>「ストレージ」>「アダプタ」>「ソフトウェアiSCSI」をクリックします。
「iSCSIの設定」画面の「固定ターゲットの追加」ボタンをクリックし、
「ターゲット」、「アドレス」を入力します。
最後に「設定の保存」をクリックします。
——-
「ESXiサーバー」>「ストレージ」>「デバイス」をクリックします。
「更新」ボタンをクリックすれば、「LIO-ORG iSCSI Disk(naa.xxxxx)」が追加されます。
後はこちらのディスクをフォーマットすれば、ESXiサーバーが使用できる領域として設定されます。
——-
以上、簡単ですがiSCSiサービスを使用したストレージを構築できました。
検証向けに古いサーバーやクライアント端末を流用してストレージ役にできますので、
ストレージが余っているクライアント等ありましたら、試してみてください。