借助基于软件的 iSCSI 实现,可使用标准网卡将主机连接至 IP 网络上的远程 iSCSI 目标。ESXi 中内置的软件 iSCSI 适配器通过网络堆栈与物理网卡进行通信。

注: 在使用软件 iSCSI 适配器之前,必须设置网络、激活适配器,并配置 CHAP 等参数。

iSCSI 适配器配置工作流包括以下过程:

ESXi 中为 iSCSI 和 iSER 设置网络

某些类型的 iSCSI 适配器取决于 VMkernel 网络连接。这些适配器包括软件或从属硬件 iSCSI 适配器以及 VMware iSCSI over RDMA (iSER) 适配器。如果 ESXi 环境中包括这些适配器中的任何一个,必须为 iSCSI 或 iSER 组件与物理网络适配器之间的流量配置连接。

配置网络连接包括为各个物理网络适配器创建虚拟 VMkernel 适配器。可以在每个虚拟和物理网络适配器之间使用 1:1 映射。然后将 VMkernel 适配器与相应的 iSCSI 或 iSER 适配器关联。此过程称为端口绑定。

该图描述了连接到 VMkernel 适配器 (vmk) 的 iSCSI 或 iSER 适配器 (vmhba)。交换机将 vmk 与物理网卡 (vmnic) 连接起来。
配置端口绑定时,请遵循以下规则:
  • 可以将软件 iSCSI 适配器与主机上任何可用的物理网卡进行连接。
  • 从属 iSCSI 适配器必须只能与其自己的物理网卡进行连接。
  • 必须仅将 iSER 适配器连接到支持 RDMA 的网络适配器。

有关配合使用网络连接与软件 iSCSI 的时机和方法的特定注意事项,请参见 VMware 知识库文章,网址为 http://kb.vmware.com/kb/2038869

VMware Host Client 中为 ESXi 主机启用 iSCSI

VMware Host Client 环境中为主机启用 iSCSI 以配置存储适配器参数,例如,CHAP 身份验证、网络端口绑定、静态和动态目标以及多种高级设置。

过程

  1. VMware Host Client 清单中单击存储,然后依次单击适配器配置 iSCSI
  2. 选择启用单选按钮。
  3. (可选) 配置要更改的参数和组件。
  4. 单击保存配置

使用软件 iSCSI 配置网络连接的最佳做法

使用软件 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 端口的单独网关,您可使用端口绑定访问不同子网中的目标。

VMware Host Client 中添加端口绑定

使用 VMware Host Client 将 iSCSI 适配器与主机上的 VMkernel 适配器绑定。

前提条件

  • 为主机上的每个物理网络适配器创建虚拟 VMkernel 适配器。如果使用多个 VMkernel 适配器,请设置正确的网络策略。
  • 所需特权:主机.配置.存储分区配置

过程

  1. VMware Host Client 清单中单击存储,然后依次单击适配器配置 iSCSI
  2. 网路端口绑定部分,单击添加端口绑定
  3. 选择要与 iSCSI 适配器绑定的 VMkernel 适配器。
    注: 确保 VMkernel 适配器的网络策略符合绑定要求。
    可以将软件 iSCSI 适配器绑定到一个或多个 VMkernel 适配器。对于从属硬件 iSCSI 适配器,只能使用一个与正确的物理网卡关联的 VMkernel 适配器。
  4. 单击选择
  5. 单击保存配置

移除 VMware Host Client 中的端口绑定

编辑主机上的 iSCSI 配置以移除端口绑定。

过程

  1. VMware Host Client 清单中单击存储,然后依次单击适配器配置 iSCSI
  2. 网络端口绑定部分,从列表中选择 VMkernel 网卡。
  3. 单击移除端口绑定
  4. 单击保存配置

VMware Host Client 中设置动态目标

必须设置目标发现地址,以便 iSCSI 适配器确定网络上可供访问的存储资源。ESXi 主机支持动态和静态发现方法。使用动态发现时,启动器每次连接到特定 iSCSI 存储系统时,都会向 iSCSI 系统发送 SendTargets 请求。iSCSI 系统通过向启动器提供一个可用目标的列表来做出响应。

也称为 SendTargets 发现。启动器每次与指定的 iSCSI 服务器联系时,都会向该服务器发送 SendTargets 请求。服务器通过向启动器提供一个可用目标的列表来做出响应。这些目标的名称和 IP 地址显示在静态发现选项卡上。如果移除了通过动态发现添加的静态目标,则该目标会在下次进行重新扫描、重置 iSCSI 适配器或重新引导主机时恢复到列表中。

注: 使用软件和从属硬件 iSCSI, ESXi 可基于指定的 iSCSI 服务器地址的 IP 系列筛选目标地址。如果地址是 IPv4,则会筛选出可能进入来自 iSCSI 服务器的 SendTargets 响应的 IPv6 地址。当 DNS 名称用于指定 iSCSI 服务器,或来自 iSCSI 服务器的 SendTargets 响应包含 DNS 名称时, ESXi 将依赖于 DNS 查询中第一个解析条目的 IP 系列。

设置动态发现时,只能添加新的 iSCSI 系统。不能更改现有 iSCSI 系统的 IP 地址、DNS 名称或端口号。要更改这些参数,请删除现有系统,并添加一个新系统。

前提条件

所需特权:主机.配置.存储分区配置

过程

  1. VMware Host Client 清单中单击存储,然后依次单击适配器配置 iSCSI
  2. 单击添加动态目标
    新的动态目标将显示在列表中。
  3. 要为新的动态目标添加地址,请单击列表中的目标,然后输入地址。
  4. (可选) 要更改新的动态目标的端口号,请单击目标端口文本框,然后输入新的端口号。
  5. (可选) 要编辑动态目标设置,请从可用目标列表中选择新的目标,单击编辑设置,配置要更改的参数,然后单击保存
  6. (可选) 要删除特定目标,请选择目标,然后单击移除动态目标
    该目标将不再显示在现有动态目标列表中。
  7. 单击保存配置

VMware Host Client 中设置静态目标

借助 iSCSI 启动器,您可以使用静态发现手动为目标输入信息。

设置静态发现时,只能添加新的 iSCSI 目标。不能更改现有目标的 IP 地址、DNS 名称、iSCSI 目标名称或端口号。要进行更改,请移除现有目标,然后添加一个新目标。

除动态发现方法外,还可以使用静态发现并手动输入目标的信息。iSCSI 适配器将使用您提供的目标列表与 iSCSI 服务器进行联系和通信。

前提条件

所需特权:主机.配置.存储分区配置

过程

  1. VMware Host Client 清单中单击存储,然后依次单击适配器配置 iSCSI
  2. 单击添加静态目标
    新的静态目标将显示在列表中。
  3. 要为新的静态目标添加名称,请单击列表中的目标,然后输入名称。
  4. 要为新的静态目标添加地址,请单击列表中的目标,然后键入地址。
  5. (可选) 要更改新的静态目标的端口号,请单击目标端口文本框,然后键入新的端口号。
  6. (可选) 要编辑静态目标设置,请从可用目标列表中选择新的目标,单击编辑设置,配置要更改的参数,然后单击保存
  7. (可选) 要删除特定目标,请选择目标,然后单击移除静态目标
    该目标将不再显示在现有静态目标列表中。
  8. 单击保存配置

VMware Host Client 中编辑 iSCSI 高级设置

iSCSI 高级设置控制标头、数据摘要、ARP 重定向、延迟的 ACK 等参数。通常不需要更改这些设置,因为主机使用已分配的预定义值运行。

小心: 除非在 VMware 技术支持团队的支持下,或者您透彻了解如何更改这些设置值,否则不要对 iSCSI 高级设置进行任何更改。

前提条件

所需特权:主机.配置.存储分区配置

过程

  1. VMware Host Client 清单中单击存储,然后依次单击适配器配置 iSCSI
  2. 单击高级设置显示完整的设置列表。
  3. 编辑要更改的参数,然后单击保存配置

VMware Host Client 中为 iSCSI 适配器设置 CHAP 身份验证

您可以在启动器级别将所有目标设置为从 iSCSI 启动器接收相同的 CHAP 名称和密钥。默认情况下,所有发现地址或静态目标都继承在启动器级别设置的 CHAP 参数。

CHAP 名称必须少于 511 个字母数字字符且 CHAP 密钥必须少于 255 个字母数字字符。有些适配器(例如 QLogic 适配器)的限值更低,CHAP 名称不得超过 255 个字母数字字符,CHAP 密钥不得超过 100 个字母数字字符。

前提条件

  • 为软件或从属硬件 iSCSI 设置 CHAP 参数之前,先确定是配置单向(正常) CHAP 还是双向 CHAP。独立硬件 iSCSI 适配器不支持双向 CHAP。
    • 在单向 CHAP 中,目标会验证启动器。
    • 在双向 CHAP 中,目标和启动器会相互进行身份验证。为 CHAP 和双向 CHAP 使用不同的密钥。

    配置 CHAP 参数时,请确认这些参数与存储端上的参数是否相匹配。

  • 所需特权:主机.配置.存储分区配置

过程

  1. VMware Host Client 清单中单击存储,然后依次单击适配器配置 iSCSI
  2. 要配置单向 CHAP,请展开 CHAP 身份验证以显示所有参数。
    1. 选择 CHAP 安全级别。
    2. 输入 CHAP 名称。

      确保输入的名称与在存储端配置的名称相匹配。

    3. 输入用于身份验证的单向 CHAP 密钥。使用在存储端输入的同一密钥。
  3. 要配置双向 CHAP,请为单向 CHAP 选择使用 CHAP 选项。展开双向 CHAP 身份验证以显示所有参数。
    1. 选择使用 CHAP
    2. 输入双向 CHAP 名称。
    3. 输入双向 CHAP 密钥。
      为单向 CHAP 和双向 CHAP 使用不同的密钥。
  4. 单击保存配置

结果

如果更改 iSCSI 适配器的身份验证设置,则只会对新 iSCSI 会话使用更新的凭据。现有会话仍将保留,直至强制重新身份验证等某些外部因素导致连接丢失或您移除并添加适配器 iSCSI 目标为止。