個人的な vSAN Advent Calendar 24日目です。
自宅ラボの vSAN 7.0 U 1 Advent Calendar 2020 - Adventar
今回は、vSAN iSCSI ターゲットに、マルチパスで接続してみます。
今回の環境
今回も、4ノードの vSAN 7.0 U1 クラスタです。
下記投稿のように、iSCSI ターゲット、LUN、イニシエータ グループを作成ずみです。
今回は、iSCSI ターゲットに 3つの LUN を作成してあります。
iSCSI イニシエータ(クライアント)として、Linux を用意してあります。
[root@lab-vm-01 ~]# cat /etc/system-release Oracle Linux Server release 7.9
Linux から vSAN iSCSI ターゲットへの接続(複数台の ESXi)
vSAN iSCSI ターゲットは、ESXi の VMkernel ポートで iSCSI LUN を提供します。今回は、3台の ESXi に接続することでマルチパス構成にしてみます。
iSCSI ターゲットへの接続
それでは、iSCSI ターゲットに接続します。
[root@lab-vm-01 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.41.171 192.168.41.171:3260,259 iqn.1998-01.com.vmware:52be41f45ddec495-da2d1e9c99234245 [root@lab-vm-01 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.41.172 192.168.41.172:3260,259 iqn.1998-01.com.vmware:52be41f45ddec495-da2d1e9c99234245 [root@lab-vm-01 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.41.173 192.168.41.173:3260,259 iqn.1998-01.com.vmware:52be41f45ddec495-da2d1e9c99234245 [root@lab-vm-01 ~]# iscsiadm -m node -p 192.168.41.171 --login Logging in to [iface: default, target: iqn.1998-01.com.vmware:52be41f45ddec495-da2d1e9c99234245, portal: 192.168.41.171,3260] (multiple) Login to [iface: default, target: iqn.1998-01.com.vmware:52be41f45ddec495-da2d1e9c99234245, portal: 192.168.41.171,3260] successful. [root@lab-vm-01 ~]# iscsiadm -m node -p 192.168.41.172 --login Logging in to [iface: default, target: iqn.1998-01.com.vmware:52be41f45ddec495-da2d1e9c99234245, portal: 192.168.41.172,3260] (multiple) Login to [iface: default, target: iqn.1998-01.com.vmware:52be41f45ddec495-da2d1e9c99234245, portal: 192.168.41.172,3260] successful. [root@lab-vm-01 ~]# iscsiadm -m node -p 192.168.41.173 --login Logging in to [iface: default, target: iqn.1998-01.com.vmware:52be41f45ddec495-da2d1e9c99234245, portal: 192.168.41.173,3260] (multiple) Login to [iface: default, target: iqn.1998-01.com.vmware:52be41f45ddec495-da2d1e9c99234245, portal: 192.168.41.173,3260] successful.
ターゲットに接続されました。
[root@lab-vm-01 ~]# iscsiadm -m session tcp: [2] 192.168.41.171:3260,259 iqn.1998-01.com.vmware:52be41f45ddec495-da2d1e9c99234245 (non-flash) tcp: [3] 192.168.41.172:3260,259 iqn.1998-01.com.vmware:52be41f45ddec495-da2d1e9c99234245 (non-flash) tcp: [4] 192.168.41.173:3260,259 iqn.1998-01.com.vmware:52be41f45ddec495-da2d1e9c99234245 (non-flash)
Linux でのマルチパス LUN の認識
3つの LUN が接続されたはずなので確認すると、「3つの LUN x 3 経路」なので、9つのデバイスが認識されてしまいます。
[root@lab-vm-01 ~]# lsscsi [0:0:0:0] disk VMware Virtual disk 2.0 /dev/sda [3:0:0:0] cd/dvd NECVMWar VMware SATA CD00 1.00 /dev/sr0 [33:0:0:0] disk VMware Virtual SAN 0001 /dev/sdb [33:0:0:1] disk VMware Virtual SAN 0001 /dev/sdc [33:0:0:2] disk VMware Virtual SAN 0001 /dev/sdd [34:0:0:0] disk VMware Virtual SAN 0001 /dev/sde [34:0:0:1] disk VMware Virtual SAN 0001 /dev/sdf [34:0:0:2] disk VMware Virtual SAN 0001 /dev/sdg [35:0:0:0] disk VMware Virtual SAN 0001 /dev/sdh [35:0:0:1] disk VMware Virtual SAN 0001 /dev/sdi [35:0:0:2] disk VMware Virtual SAN 0001 /dev/sdj
lsblk では、下記のように見えます。
[root@lab-vm-01 ~]# lsblk --ascii NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdf 8:80 0 20G 0 disk sdd 8:48 0 30G 0 disk sdb 8:16 0 10G 0 disk sdi 8:128 0 20G 0 disk sr0 11:0 1 1024M 0 rom sdg 8:96 0 30G 0 disk sde 8:64 0 10G 0 disk sdc 8:32 0 20G 0 disk sda 8:0 0 16G 0 disk |-sda2 8:2 0 15G 0 part | |-ol-swap 252:1 0 1.6G 0 lvm [SWAP] | `-ol-root 252:0 0 13.4G 0 lvm / `-sda1 8:1 0 1G 0 part /boot sdj 8:144 0 30G 0 disk sdh 8:112 0 10G 0 disk
ソートしてみると、10G、20G、30G のデバイスが、3セット認識されていることが分かります。
[root@lab-vm-01 ~]# lsblk --ascii | grep ^sd | sort sda 8:0 0 16G 0 disk sdb 8:16 0 10G 0 disk sdc 8:32 0 20G 0 disk sdd 8:48 0 30G 0 disk sde 8:64 0 10G 0 disk sdf 8:80 0 20G 0 disk sdg 8:96 0 30G 0 disk sdh 8:112 0 10G 0 disk sdi 8:128 0 20G 0 disk sdj 8:144 0 30G 0 disk
ここで OS を再起動してみます。
[root@lab-vm-01 ~]# reboot
Linux では、デバイス名が認識順で付与されるので、再起動のたびに不規則に変わってしまいます。
[root@lab-vm-01 ~]# lsblk --ascii | grep ^sd | sort sda 8:0 0 16G 0 disk sdb 8:16 0 10G 0 disk sdc 8:32 0 20G 0 disk sdd 8:48 0 30G 0 disk sde 8:64 0 10G 0 disk sdf 8:80 0 10G 0 disk sdg 8:96 0 20G 0 disk sdh 8:112 0 20G 0 disk sdi 8:128 0 30G 0 disk sdj 8:144 0 30G 0 disk
マルチパス対応(multipathd)
このままでは、デバイス名の指定が困難なので、何かしらの方法でマルチパスに対応させます。そこで今回は、device-mapper-multipath をインストールします。
[root@lab-vm-01 ~]# yum install -y device-mapper-multipath [root@lab-vm-01 ~]# mpathconf --enable [root@lab-vm-01 ~]# systemctl enable multipathd [root@lab-vm-01 ~]# systemctl start multipathd [root@lab-vm-01 ~]# systemctl is-active multipathd active
マルチパス対応のデバイス(mpatha ~ mpathc)が作成されました。
[root@lab-vm-01 ~]# lsblk --ascii NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdf 8:80 0 10G 0 disk `-mpatha 252:2 0 10G 0 mpath sdd 8:48 0 30G 0 disk `-mpathc 252:4 0 30G 0 mpath sdb 8:16 0 10G 0 disk `-mpatha 252:2 0 10G 0 mpath sdi 8:128 0 30G 0 disk `-mpathc 252:4 0 30G 0 mpath sr0 11:0 1 1024M 0 rom sdg 8:96 0 20G 0 disk `-mpathb 252:3 0 20G 0 mpath sde 8:64 0 10G 0 disk `-mpatha 252:2 0 10G 0 mpath sdc 8:32 0 20G 0 disk `-mpathb 252:3 0 20G 0 mpath sda 8:0 0 16G 0 disk |-sda2 8:2 0 15G 0 part | |-ol-swap 252:1 0 1.6G 0 lvm [SWAP] | `-ol-root 252:0 0 13.4G 0 lvm / `-sda1 8:1 0 1G 0 part /boot sdj 8:144 0 30G 0 disk `-mpathc 252:4 0 30G 0 mpath sdh 8:112 0 20G 0 disk `-mpathb 252:3 0 20G 0 mpath
multipath コマンドで、わかりやすくデバイス名とパスの対応を表示できます。
[root@lab-vm-01 ~]# multipath -ll
ちなみに、デバイスの ID(1VMware_VITDEVID~)については、multipathd を起動しなくても、事前に確認できます。
[root@lab-vm-01 ~]# ls -l /dev/disk/by-id/scsi-1VMware_VITDEVID* lrwxrwxrwx. 1 root root 9 12月 25 01:21 /dev/disk/by-id/scsi-1VMware_VITDEVID20a4e45fe40f887d0ff6005056b657dc -> ../../sdi lrwxrwxrwx. 1 root root 9 12月 25 01:21 /dev/disk/by-id/scsi-1VMware_VITDEVID2aa4e45f3ee87555accf005056b657dc -> ../../sdj lrwxrwxrwx. 1 root root 9 12月 25 01:21 /dev/disk/by-id/scsi-1VMware_VITDEVID9ed8e35f92c221295366005056b6509a -> ../../sdh
/dev/mapper/mpatha1 のようなデバイス名を指定することで、パスが切り替わっても同じ LUN にアクセスできます。
[root@lab-vm-01 ~]# echo '2048,,' | sfdisk -uS /dev/mapper/mpatha [root@lab-vm-01 ~]# partprobe /dev/mapper/mpatha [root@lab-vm-01 ~]# mkfs.xfs /dev/mapper/mpatha1 [root@lab-vm-01 ~]# mount /dev/mapper/mpatha1 /mnt [root@lab-vm-01 ~]# df -h /mnt ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/mapper/mpatha1 10G 33M 10G 1% /mnt
つづくかもしれない。