vSphere Distributed Switch 为与交换机关联的所有主机的网络连接配置提供集中化管理和监控。您可以在 vCenter Server 系统上设置 Distributed Switch,其设置将传播至与该交换机关联的所有主机。

图 1. vSphere Distributed Switch 架构

vSphere Distributed Switch 架构。

vSphere 中的网络交换机由两个逻辑部分组成:数据面板和管理面板。数据面板可实现软件包交换、筛选和标记等。管理面板是用于配置数据面板功能的控制结构。vSphere 标准交换机同时包含数据面板和管理面板,您可以单独配置和维护每个标准交换机。

vSphere Distributed Switch 的数据面板和管理面板相互分离。Distributed Switch 的管理功能驻留在 vCenter Server 系统上,您可以在数据中心级别管理环境的网络配置。数据面板则保留在与 Distributed Switch 关联的每台主机本地。Distributed Switch 的数据面板部分称为主机代理交换机。在 vCenter Server(管理面板)上创建的网络配置将被自动向下推送至所有主机代理交换机(数据面板)。

vSphere Distributed Switch 引入的两个抽象概念可用于为物理网卡、虚拟机和 VMkernel 服务创建一致的网络配置。

上行链路端口组
上行链路端口组或 dvuplink 端口组在创建 Distributed Switch 期间进行定义,可以具有一个或多个上行链路。上行链路是可用于配置主机物理连接以及故障切换和负载均衡策略的模板。您可以将主机的物理网卡映射到 Distributed Switch 上的上行链路。在主机级别,每个物理网卡将连接到特定 ID 的上行链路端口。您可以对上行链路设置故障切换和负载均衡策略,这些策略将自动传播到主机代理交换机或数据面板。因此,您可以为与 Distributed Switch 关联的所有主机的物理网卡应用一致的故障切换和负载均衡配置。
分布式端口组
分布式端口组可向虚拟机提供网络连接并供 VMkernel 流量使用。您使用对于当前数据中心唯一的网络标签来标识每个分布式端口组。您可以在分布式端口组上配置网卡绑定、故障切换、负载均衡、VLAN、安全、流量调整和其他策略。连接到分布式端口组的虚拟端口具有为该分布式端口组配置的相同属性。与上行链路端口组一样,在 vCenter Server(管理面板)上为分布式端口组设置的配置将通过其主机代理交换机(数据面板)自动传播到 Distributed Switch 上的所有主机。因此,您可以配置一组虚拟机以共享相同的网络配置,方法是将虚拟机与同一分布式端口组关联。

例如,假设在数据中心创建一个 vSphere Distributed Switch,然后将两个主机与其关联。您为上行链路端口组配置了三个上行链路,然后将每个主机的一个物理网卡连接到一个上行链路。通过此方法,每个上行链路可将每个主机的两个物理网卡映射到其中,例如上行链路 1 使用主机 1 和主机 2 的 vmnic0 进行配置。接下来,您可以为虚拟机网络和 VMkernel 服务创建生产和 VMkernel 网络分布式端口组。此外,还会分别在主机 1 和主机 2 上创建生产和 VMkernel 网络端口组的表示。您为生产和 VMkernel 网络端口组设置的所有策略都将传播到其在主机 1 和主机 2 上的表示。

为了确保有效地利用主机资源,将在运行 ESXi 5.5 及更高版本的主机上动态地按比例增加和减少代理交换机的分布式端口数。此主机上的代理交换机可扩展至主机上支持的最大端口数。端口限制基于主机可处理的最大虚拟机数来确定。

vSphere Distributed Switch 数据流

从虚拟机和 VMkernel 适配器向下传递到物理网络的数据流取决于为分布式端口组设置的网卡绑定和负载均衡策略。数据流还取决于 Distributed Switch 上的端口分配。

图 2. vSphere Distributed Switch 上的网卡成组和端口分配
用于虚拟机和 VMkernel 网络的 vSphere Distributed Switch 端口

例如,假设创建分别包含 3 个和 2 个分布式端口的虚拟机网络和 VMkernel 网络分布式端口组。Distributed Switch 会按 ID 从 0 到 4 的顺序分配端口,该顺序与创建分布式端口组的顺序相同。然后,将主机 1 和主机 2 与 Distributed Switch 关联。Distributed Switch 会为主机上的每个物理网卡分配端口,端口将按添加主机的顺序从 5 继续编号。要在每个主机上提供网络连接,请将 vmnic0 映射到上行链路 1、将 vmnic1 映射到上行链路 2 、将 vmnic2 映射到上行链路 3。

要向虚拟机提供连接并供 VMkernel 流量使用,可以为虚拟机网络端口组和 VMkernel 网络端口组配置绑定和故障切换。上行链路 1 和上行链路 2 处理虚拟机网络端口组的流量,而上行链路 3 处理 VMkernel 网络端口组的流量。

图 3. 主机代理交换机上的数据包流量
主机代理交换机上的网卡绑定和端口分布

在主机端,虚拟机和 VMkernel 服务的数据包流量将通过特定端口传递到物理网络。例如,从主机 1 上的 VM1 发送的数据包将先到达虚拟机网络分布式端口组上的端口 0。由于上行链路 1 和上行链路 2 处理虚拟机网络端口组的流量,数据包可以通过上行链路端口 5 或上行链路端口 6 继续传递。如果数据包通过上行链路端口 5,则将继续传递 vmnic0;如果数据包通过上行链路端口 6,则将继续传递到 vmnic1。