個人的な vSAN Advent Calendar 22日目です。
前回作成した vSAN iSCSI ターゲットへのアクセス制御を、iSCSI イニシエータ グループに変更してみます。
前回はこちら。
vSAN iSCSI ターゲットのアクセス制御では、「許可されたイニシエータ」を設定します。この設定では、iSCSI イニシエータの IQN を個別指定できますが、今回はイニシエータ グループを作成してみます。
- iSCSI イニシエータ グループの作成
- iSCSI イニシエータからの接続
- おまけ: vSAN iSCSI LUN と SCSI-3 Persistent Reservation(SCSI-3 PR)
iSCSI イニシエータ グループの作成
イニシエータ グループの追加
vSAN クラスタの「設定」→ vSAN の「iSCSI ターゲット サービス」→「イニシエータ グループ」にある、「追加」を開きます。
グループ名を入力して、メンバー イニシエータの IQN を追加します。今回は 2つの IQN(Linux クライアント 2台分)を追加しています。
ターゲットとイニシエータ グループの紐づけ
作成されたイニシエータ グループ(例では igroup-01)を選択して、「アクセス可能なターゲット」にある「追加」を開きます。
事前に作成しておいた vSAN iSCSI ターゲットの IQN を選択して、「追加」をクリックします。
iSCSI ターゲットが追加されました。
これは「iSCSI ターゲット」画面からでも確認できます。
iSCSI イニシエータからの接続
今回はイニシエータ グループに Linux クライアント 2台分の IQN を登録してあるので、それぞれ接続確認します。
Linux クライアントは、下記投稿と同様に準備してあります。LUN は、前回 XFS ファイルシステムを作成したものをそのまま流用しています。
1台目の接続確認
まず、1台目の Linux から接続確認します。前回と同様、iSCSI ターゲットとして 192.168.41.171(ESXi のうち 1台)を指定しています。
[root@lab-vm-01 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.41.171 192.168.41.171:3260,257 iqn.1998-01.com.vmware:5264cc4fc9838f22-b0f848b5cc84d756 [root@lab-vm-01 ~]# iscsiadm -m node -p 192.168.41.171 --login Logging in to [iface: default, target: iqn.1998-01.com.vmware:5264cc4fc9838f22-b0f848b5cc84d756, portal: 192.168.41.171,3260] (multiple) Login to [iface: default, target: iqn.1998-01.com.vmware:5264cc4fc9838f22-b0f848b5cc84d756, portal: 192.168.41.171,3260] successful. [root@lab-vm-01 ~]# lsscsi | grep "Virtual SAN" [33:0:0:0] disk VMware Virtual SAN 0001 /dev/sdb
マウントして、動作確認のためファイルを作成しておきます。
[root@lab-vm-01 ~]# df -h /mnt ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/sdb1 20G 33M 20G 1% /mnt [root@lab-vm-01 ~]# echo "test 2020/12/22" > /mnt/test.f [root@lab-vm-01 ~]# cat /mnt/test.f test 2020/12/22
この環境で iSCSI LUN に作成してあるファイルシステムでは、複数ホストからの同時書き込みできません。そこで、次のホストでマウントするために、アンマウントしておきます。
[root@lab-vm-01 ~]# umount /mnt
2台目の接続確認
1台目と同様に iSCSI イニシエータの準備をしてある、2台目の Linux クライアントで、iSCSI LUN をマウントしてみます。
IQN は、ターゲット グループに登録してあるものです。
[root@lab-vm-02 ~]# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.1988-12.com.oracle:lab-vm-02
それでは、LUN を接続します。
[root@lab-vm-02 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.41.171 192.168.41.171:3260,257 iqn.1998-01.com.vmware:5264cc4fc9838f22-b0f848b5cc84d756 [root@lab-vm-02 ~]# iscsiadm -m node -p 192.168.41.171 --login Logging in to [iface: default, target: iqn.1998-01.com.vmware:5264cc4fc9838f22-b0f848b5cc84d756, portal: 192.168.41.171,3260] (multiple) Login to [iface: default, target: iqn.1998-01.com.vmware:5264cc4fc9838f22-b0f848b5cc84d756, portal: 192.168.41.171,3260] successful.
ファイルシステムをマウントすると、1台目で作成したテスト ファイルの存在が確認でき、同じ LUN に接続していることがわかります。
[root@lab-vm-02 ~]# mount /dev/sdb1 /mnt [root@lab-vm-02 ~]# cat /mnt/test.f test 2020/12/22
アンマウントしておきます。
[root@lab-vm-02 ~]# umount /mnt
おまけ: vSAN iSCSI LUN と SCSI-3 Persistent Reservation(SCSI-3 PR)
クラスタ ソフトウェアで共有ディスクを利用するうえで、排他制御のために SCSI-3 Persistent Reservation(SCSI-3 PR)が必要とされたりします。
vSAN iSCSI LUN でも、SCSI-3 PR がサポートされています。
SCSI-3 PR に対応していないデバイスだと、下記のように「command not supported」となりますが・・・
[root@lab-vm-02 ~]# sg_persist -d /dev/sda -k
VMware Virtual disk 2.0
Peripheral device type: disk
PR in (Read keys): command not supported
vSAN iSCSI LUN による /dev/sdb だと出力が異なります。ちなみに Virtual SAN は vSAN の旧名称です。
[root@lab-vm-02 ~]# sg_persist -d /dev/sdb -k VMware Virtual SAN 0001 Peripheral device type: disk PR generation=0x0, there are NO registered reservation keys
Windows や Linux のクラスタ ソフトウェアなどで共有ディスクが必要な場合は、このように vSAN iSCSI ターゲットの LUN が利用できます。そして、ターゲットやイニシエータの数が多くなった際には、イニシエータ グループを作成しておくと管理しやすくなると思います。
つづく。