個人的な vSAN Advent Calendar 24日目です。
今回は、vSAN iSCSI ターゲットに、マルチパスで接続してみます。
今回の環境
今回も、4ノードの vSAN 7.0 U1 クラスタです。
下記投稿のように、iSCSI ターゲット、LUN、イニシエータ グループを作成ずみです。
今回は、iSCSI ターゲットに 3つの LUN を作成してあります。
iSCSI イニシエータ(クライアント)として、以前の投稿にあるように Linux を用意してあります。
今回も Oracle Linux 7.9 です。
[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 ターゲットに接続します。
[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
つづくかもしれない。