使用软件 iSCSI 配置网络连接时,请考虑以下几种最佳做法。

软件 iSCSI 端口绑定

您可以将 ESXi 主机上的软件 iSCSI 启动器绑定到单个或多个 VMkernel 端口,以便 iSCSI 流量仅通过绑定端口。未绑定端口不用于 iSCSI 流量。

配置端口绑定后,iSCSI 启动器将创建从所有绑定端口到所有配置目标门户的 iSCSI 会话。

请参见下面的示例。
VMkernel 端口 目标门户 iSCSI 会话
2 个绑定的 VMkernel 端口 2 个目标门户 4 个会话 (2 x 2)
4 个绑定的 VMkernel 端口 1 个目标门户 4 个会话 (4 x 1)
2 个绑定的 VMkernel 端口 4 个目标门户 8 个会话 (2 x 4)
注: 如果使用端口绑定,请确保所有目标门户可从所有 VMkernel 端口进行访问。否则,可能无法创建 iSCSI 会话。因此,重新扫描操作需要的时间可能比预期更长。

无端口绑定

如果不使用端口绑定,ESXi 网络连接层会根据其路由表选择最佳 VMkernel 端口。主机通过该端口使用目标门户创建 iSCSI 会话。若无端口绑定,只能为每个目标门户创建一个会话。

请参见下面的示例。
VMkernel 端口 目标门户 iSCSI 会话
2 个未绑定的 VMkernel 端口 2 个目标门户 2 个会话
4 个未绑定的 VMkernel 端口 1 个目标门户 1 个会话
2 个未绑定的 VMkernel 端口 4 个目标门户 4 个会话

软件 iSCSI 多路径

示例 1.含单个网络门户的 iSCSI 目标的多个路径

如果您的目标只有一个网络门户,则可通过在 ESXi 主机上添加多个 VMkernel 端口并将其绑定到 iSCSI 启动器,创建多个指向该目标的路径。

图中显示 VMkernel 端口 vmk1、vmk2、vmk3 和 vmk4 连接到单个目标。所有发起程序端口和目标均位于同一子网中。

在此示例中,所有启动器端口和目标门户均在同一子网中配置。该目标可通过所有绑定端口访问。您有四个 VMkernel 端口和一个目标门户,因此总共创建了四个路径。

若无端口绑定,只会创建一个路径。

示例 2.含不同子网中的 VMkernel 端口的多个路径

通过在不同的 IP 子网上配置多个端口和目标门户,即可创建多个路径。通过将启动器和目标端口保留在不同的子网中,您可以强制 ESXi 创建经过特定端口的路径。在此配置中,并不使用端口绑定,因为端口绑定要求所有启动器和目标端口位于同一子网上。

图中显示不同 IP 子网上的多个 VMkernel 端口和目标门户。

ESXi 在连接到控制器 A 和控制器 B 的端口 0 时选择 vmk1,因为所有这三个端口均位于同一子网上。同样,在连接到控制器 A 和控制器 B 的端口 1 时选择 vmk2。可以在此配置中使用网卡绑定。

总共创建了四个路径。
路径 描述
路径 1 vmk1 和控制器 A 的端口 0
路径 2 vmk1 和控制器 B 的端口 0
路径 3 vmk2 和控制器 A 的端口 1
路径 4 vmk2 和控制器 B 的端口 1

使用软件 iSCSI 路由

您可以使用 esxcli 命令为 iSCSI 流量添加静态路由。配置静态路由后,不同子网中的启动器和目标端口可以相互通信。

示例 1.使用具有端口绑定的静态路由

在此示例中,您将所有绑定的 VMkernel 端口保留在一个子网 (N1) 中,并在另一个子网 (N2) 中配置所有目标门户。然后,可以为目标子网 (N2) 添加静态路由。

图中显示子网 N1 中的两个绑定 VMkernel 端口和子网 N2 中的目标门户。

使用以下命令:

# esxcli network ip route ipv4 add -gateway 192.168.1.253 -network 10.115.179.0/24

示例 2.使用静态路由创建多个路径

在此示例中,使用不同的子网时将使用静态路由。不能在此配置中使用端口绑定。

图中显示 vmk1 和 vmk2 在不同的子网中。目标门户也在不同的子网中。

您在独立子网 192.168.1.0 和 192.168.2.0 中配置 vmk1 和 vmk2。此外,目标门户也位于独立子网 10.115.155.0 和 10.155.179.0 中。

可以从 vmk1 为 10.115.155.0 添加静态路由。请确保网关可从 vmk1 进行访问。

# esxcli network ip route ipv4 add -gateway 192.168.1.253 -network 10.115.155.0/24

然后从 vmk2 为 10.115.179.0 添加静态路由。请确保网关可从 vmk2 进行访问。

# esxcli network ip route ipv4 add -gateway 192.168.2.253 -network 10.115.179.0/24

使用控制器 A 的端口 0 进行连接时,将使用 vmk1。

使用控制器 B 的端口 0 进行连接时,将使用 vmk2。

示例 3.每个 VMkernel 端口使用一个单独的网关进行路由

从 vSphere 6.5 开始,您可以为每个 VMkernel 端口配置一个单独网关。如果使用 DHCP 获取 VMkernel 端口的 IP 配置,还可使用 DHCP 获取网关信息。

要查看每个 VMkernel 端口的网关信息,请使用以下命令:

# esxcli network ip interface ipv4 address list
Name  IPv4 Address    IPv4 Netmask   IPv4 Broadcast  Address Type  Gateway         DHCP DNS
----  --------------  -------------  --------------  ------------  --------------  --------
vmk0  10.115.155.122  255.255.252.0  10.115.155.255  DHCP          10.115.155.253      true
vmk1  10.115.179.209  255.255.252.0  10.115.179.255  DHCP          10.115.179.253      true
vmk2  10.115.179.146  255.255.252.0  10.115.179.255  DHCP          10.115.179.253      true

通过每个 VMkernel 端口的单独网关,您可使用端口绑定访问不同子网中的目标。