
我正在嘗試在 ESXi 7.0 獨立版(免費許可證)和 SCST 伺服器之間設定 MPIO。
我使用 IPv6 位址建立了 4 個 vmknic(vmk1、vmk2、vmk3、vmk4)
(2001::1/64,2002::1/64,2003::1/64,2004::1/64)
我分配了
(2001::2/64,2002::2/64,2003::2/64,2004::2/64)
Linux 機器上有 4 個不同的網路卡。
每個 L3 網段駐留在不同的 VLAN 上。
我還有一個配置了 IPv4 IP 位址的 vmk0。
當我在 SCST 伺服器上執行 netstat 時,我看到它偵聽 0.0.0.0:3260 和 :::3260
我發現這篇精彩的文章,但 ESXi 主機上的命令指的是 4.0 版本,而 ESXi 7.0 上的命令是指不是有esxcli swiscsi
我的理解是,我必須將 vmknic 綁定到 vmnic,但我找不到 7.0 上的 CLI/ESXCLI 的任何相關文件。
我的每台設備仍然看到一條路徑,而不是多條路徑:
[root@ESXi:~] esxcfg-mpath -b |grep -B1 "Adapter"| grep -v -e "--" |sed 's/Adapter.*//'
eui.3163656561363833 : SCST_FIO iSCSI Disk (eui.3163656561363833)
vmhba64:C0:T0:L2 LUN:2 state:active iscsi
eui.3363613336363835 : SCST_BIO iSCSI Disk (eui.3363613336363835)
vmhba64:C0:T0:L8 LUN:8 state:active iscsi
eui.3761663561303238 : SCST_FIO iSCSI CD-ROM (eui.3761663561303238)
vmhba64:C0:T0:L1 LUN:1 state:active iscsi
eui.3562393762313730 : SCST_BIO iSCSI Disk (eui.3562393762313730)
vmhba64:C0:T0:L5 LUN:5 state:active iscsi
eui.6631393662333130 : SCST_BIO iSCSI Disk (eui.6631393662333130)
vmhba64:C0:T0:L0 LUN:0 state:active iscsi
eui.6164373835346366 : SCST_FIO iSCSI CD-ROM (eui.6164373835346366)
vmhba64:C0:T0:L4 LUN:4 state:active iscsi
eui.3639313435343362 : SCST_FIO iSCSI CD-ROM (eui.3639313435343362)
vmhba64:C0:T0:L3 LUN:3 state:active iscsi
eui.3332653439383239 : SCST_BIO iSCSI Disk (eui.3332653439383239)
vmhba64:C0:T0:L6 LUN:6 state:active iscsi
eui.3762393937356132 : SCST_BIO iSCSI Disk (eui.3762393937356132)
vmhba64:C0:T0:L9 LUN:9 state:active iscsi
eui.3466376564643362 : SCST_BIO iSCSI Disk (eui.3466376564643362)
vmhba64:C0:T0:L10 LUN:10 state:active iscsi
eui.6233633835373866 : SCST_BIO iSCSI Disk (eui.6233633835373866)
vmhba64:C0:T0:L7 LUN:7 state:active iscsi
iSCSI 軟體適配器似乎已連結到所有 VMK 網路卡
[root@ESXi:~] esxcli iscsi logicalnetworkportal list -A vmhba64
Adapter Vmknic MAC Address MAC Address Valid Compliant
------- ------ ----------------- ----------------- ---------
vmhba64 vmk0 ac:1f:6b:98:19:a4 true false
vmhba64 vmk1 00:50:56:66:f3:a2 true false
vmhba64 vmk2 00:50:56:66:9b:7e true false
vmhba64 vmk3 00:50:56:68:b5:38 true false
vmhba64 vmk4 00:50:56:61:ee:67 true false
我缺什麼?
答案1
最終我意識到「將實體網卡綁定」到VMK網卡是什麼意思,即
esxcli network vswitch standard portgroup policy failover set -a vmnic4 -p PG-iSCSI_01
esxcli network vswitch standard portgroup policy failover set -a vmnic5 -p PG-iSCSI_02
esxcli network vswitch standard portgroup policy failover set -a vmnic6 -p PG-iSCSI_03
esxcli network vswitch standard portgroup policy failover set -a vmnic7 -p PG-iSCSI_04
上述語句的要求是,對於每個連接埠群組,只有一個活動 vmnic 處於活動狀態,而其他 vmnic 未使用,即
esxcli network vswitch standard portgroup policy failover set --active-uplinks=vmnic4 --portgroup-name=PG-iSCSI_01
esxcli network vswitch standard portgroup policy failover set --active-uplinks=vmnic5 --portgroup-name=PG-iSCSI_02
esxcli network vswitch standard portgroup policy failover set --active-uplinks=vmnic6 --portgroup-name=PG-iSCSI_03
esxcli network vswitch standard portgroup policy failover set --active-uplinks=vmnic7 --portgroup-name=PG-iSCSI_04
當然,在建立連接埠組之後
esxcli network vswitch standard portgroup add --portgroup-name=PG-SCSI_01 -vswitch vSwitch1
esxcli network vswitch standard portgroup add --portgroup-name=PG-SCSI_02 -vswitch vSwitch1
esxcli network vswitch standard portgroup add --portgroup-name=PG-SCSI_03 -vswitch vSwitch1
esxcli network vswitch standard portgroup add --portgroup-name=PG-SCSI_04 -vswitch vSwitch1
向每個連接埠群組新增 vmknic 後
esxcli network ip interface add --interface-name=vmk1 --portgroup-name=PG-iSCSI_01
esxcli network ip interface add --interface-name=vmk2 --portgroup-name=PG-iSCSI_02
esxcli network ip interface add --interface-name=vmk3 --portgroup-name=PG-iSCSI_03
esxcli network ip interface add --interface-name=vmk4 --portgroup-name=PG-iSCSI_04
讓我們重新掃描 iSCSI 適配器(如果沒有問題的話全部掃描)
esxcli storage core adapter rescan -a
我們可以快速檢查每個設備是否使用了所有路徑
for dev in $(esxcli storage core device list | grep -e '^[^\ ]' | xargs);do echo -n "Device: $dev Paths:"; path=$(esxcli storage core path list -d $dev | grep -e '^iqn'| wc -l); echo $path;done
Device: eui.3163656561363833 Paths:5
Device: eui.3363613336363835 Paths:5
Device: eui.3761663561303238 Paths:5
Device: eui.3562393762313730 Paths:5
Device: eui.6631393662333130 Paths:5
Device: eui.6164373835346366 Paths:5
Device: eui.3639313435343362 Paths:5
Device: eui.3332653439383239 Paths:5
Device: eui.6332303139666464 Paths:5
Device: eui.6233633835373866 Paths:5
當然所有路徑必須是在活動狀態
esxcli storage core path list -d eui.3163656561363833 | awk '/^i/{dev=$0}/Runtime/{rn=$3}/State/{printf "%20s %7s %s\n",rn,$2,dev}'
vmhba64:C0:T0:L7 active iqn.2019-05.com....-00023d000002,iqn.2020-02.l...l:bm01-1234abcd,t,1-eui.6233633835373866
vmhba64:C5:T0:L7 active iqn.2019-05.com....-00023d000017,iqn.2020-02.l...l:bm01-1234abcd,t,1-eui.6233633835373866
vmhba64:C4:T0:L7 active iqn.2019-05.com....-00023d000012,iqn.2020-02.l...l:bm01-1234abcd,t,1-eui.6233633835373866
vmhba64:C3:T0:L7 active iqn.2019-05.com....-00023d00000d,iqn.2020-02.l...l:bm01-1234abcd,t,1-eui.6233633835373866
vmhba64:C2:T0:L7 active iqn.2019-05.com....-00023d000008,iqn.2020-02.l...l:bm01-1234abcd,t,1-eui.6233633835373866