您可以使用两个在逻辑和物理层面相分隔的非可路由 VLAN 来实现一个气隙拓扑。
此示例提供了 vSphere Distributed Switch 的配置步骤,但您也可以使用 vSphere Standard Switch。它使用两个 10 Gb 物理网卡,并在 vSphere 网络连接层上采用逻辑方式将它们分隔开来。
为每个 vSAN VMkernel vmknic 创建两个分布式端口组。每个端口组具有单独的 VLAN 标记。对于 vSAN VMkernel 配置,vSAN 流量同时需要这两个 VLAN 上的两个 IP 地址。
实际的实现方式通常使用四个物理上行链路来实现完全冗余。
对于每个端口组,绑定和故障切换策略使用默认设置。
-
负载均衡 设置为基于源端口 ID 的路由
-
网络故障检测设置为仅链路状态
-
通知开关设置为默认值是
-
故障恢复设置为默认值是
-
上行链路配置在活动位置和未使用位置中各有一个上行链路。
这两个网络完全彼此独立。
vSAN 端口组 1
此示例使用一个名为 vSAN-DPortGroup-1 的分布式端口组。使用以下绑定和故障切换策略为此端口组标记 VLAN 3266:
-
标记为 VLAN 3266 的端口组上的流量
-
负载均衡 设置为基于源端口 ID 的路由
-
网络故障检测设置为仅链路状态
-
通知开关设置为默认值是
-
故障恢复设置为默认值是
-
上行链路配置在活动位置具有上行链路 1,在未使用位置中有上行链路 2。
vSAN 端口组 2
要对 vSAN 端口组 1 进行补充,请配置名为 vSAN-portgroup-2 的第二个分布式端口组,但存在以下差异:
-
标记为 VLAN 3265 的端口组上的流量
-
上行链路配置在活动位置有上行链路 2,在未使用位置有上行链路 1。
vSAN VMkernel 端口配置
在两个端口组上创建两个 vSAN VMkernel 接口。在此示例中,端口组命名为 vmk1 和 vmk2。
-
vmk1 与 VLAN 3266 (172.40.0.xx) 关联,形成端口组 vSAN-DPortGroup-1。
-
vmk2 与 VLAN 3265 (192.60.0.xx) 关联,形成端口组 vSAN-DPortGroup-2。
负载均衡
vSAN 没有用于区分多个 vmknic 的负载均衡 机制,因此物理网卡中的所选 vSAN I/O 路径具有不确定性。vSphere 性能图表显示一个物理网卡通常比另一个网卡的利用率更高。我们实验室中执行的简单 I/O 测试在四主机全闪存 vSAN 集群上使用 120 个虚拟机,读取/写入比率为 70:30,块大小为 64K,此测试显示网卡间的负载不均衡。
vSphere 性能图表显示网卡间的负载不均衡。
网络上行链路冗余丢失
假定此配置中引入了网络故障。在给定 vSAN 主机上禁用了 vmnic1。因此,端口 vmk2 会受到影响。出现故障的网卡会触发网络连接警报和冗余警报。
对于 vSAN,此故障切换过程大约在 CMMDS(集群监控、成员资格和目录服务)检测到故障的 10 秒后触发。在故障切换和恢复期间,vSAN 会停止故障网络上的任何活动连接,并尝试在其他正常运行的网络上重新建立连接。
由于两个单独的 vSAN VMkernel 端口在隔离的 VLAN 上通信,因此可能会触发 vSAN 运行状况检查故障。由于 vmk2 无法再与 VLAN 3265 上的其对等设备进行通信,因此这是预料中的。
性能图表显示受影响的工作负载已在 vmnic0 上重新启动,因为 vmnic1 有故障(已在此测试中禁用)。此测试说明了 vSphere 网卡绑定与此拓扑之间的重要区别。vSAN 尝试在其余网络上重新建立或重新启动连接。
但是,在某些故障情况下,由于 ESXi TCP 连接超时,恢复受影响的连接可能需要长达 90 秒完成。随后的连接尝试可能会失败,但连接尝试将在 5 秒后超时,并且尝试将通过所有可能的 IP 地址进行轮换。此行为可能会影响虚拟机的客户机 I/O。因此,可能需要重试应用程序和虚拟机 I/O。
例如,在 Windows Server 2012 虚拟机上,在故障切换和恢复过程中可能会记录事件 ID 153(设备重置)和 129(重试事件)。在该示例中,事件 ID 129 的日志记录大约 90 秒,直到 I/O 恢复为止。
您可能需要修改某些客户机操作系统的磁盘超时设置,以确保它们不会受到严重影响。磁盘超时值可能会有所不同,具体取决于是否存在 VMware Tools 以及特定客户机操作系统类型和版本。有关更改客户机操作系统磁盘超时值的更多信息,请转到 VMware 知识库文章 1009465。
恢复和故障恢复
修复网络后,除非出现强制均衡工作负载的其他故障,否则工作负载不会自动重新均衡。受影响的网络一经恢复,即可用于新的 TCP 连接。