您可以在一个集群上同时配置 NSX Manager、主机传输节点和 NSX Edge 虚拟机。集群中的每个主机都提供了两个为 NSX 配置的物理网卡。
前提条件
- 所有主机必须属于同一个 vSphere 集群。
- 每个主机都启用了两个物理网卡。
- 向 VMware vCenter 注册所有主机。
- 在 VMware vCenter 上确认共享存储器可供这些主机使用。
- 从 NSX 3.1 开始,NSX Edge 虚拟机的 TEP 可以直接与其上正在运行 NSX Edge 虚拟机的主机 TEP 进行通信。在 NSX 3.1 之前,NSX Edge 虚拟机 TEP 必须与主机 TEP 位于不同的 VLAN 中。
注: 或者,也可以使用 vSphere Distributed Switch 部署本主题中所述的配置。在主机上配置 vSphere Distributed Switch 后,此过程将变得十分简单。无需将 vSphere Distributed Switch 迁移到 N-VDS,也无需在 NSX 分布式虚拟端口组上部署 NSX Manager。但是, NSX Edge 虚拟机必须连接到 VLAN 分段才能使用与 ESXi 主机 TEP 相同的 VLAN。
-
从 NSX 3.2.2 开始,您可以以让多个 NSX Manager 来管理单个 VMware vCenter。请参见管理单个 VMware vCenter 的多个 NSX Manager。
配置合并的集群后,如果允许 VMware vCenter 与多个 NSX Manager(多个 NSX Manager 注册到同一 VMware vCenter)结合使用,则无法将新的 NSX Manager 节点部署到集群。解决办法是创建新集群并部署 NSX Manager 节点。
注: 从 NSX 2.4.2 或 2.5 版本开始,可部署完全合并的单一 vSphere 集群拓扑。该过程中引用的拓扑具有:
- 通过集群中的主机来配置的 vSAN。
- 每个主机中的至少两个物理网卡。
- vMotion 和 Management VMkernel 接口。
- 从 NSX 4.0 开始,传输节点主机仅支持 VDS 交换机。但是,可使用 NVDS 交换机配置 NSX Edge。
过程
- 准备四个 ESXi 主机,vmnic0 位于 vSS 或 vDS 上,vmnic1 处于空闲状态。
- 在主机 1 上,安装 VMware vCenter,配置 vSS/vDS 端口组,然后在主机上创建的端口组中安装 NSX Manager。
- 准备要用作传输节点的 ESXi 主机 1、2、3 和 4。
- 使用指定的绑定策略创建 VLAN 传输区域和覆盖网络传输区域。请参见创建传输区域。
- 为主机的隧道端点 IP 地址创建一个 IP 池或 DHCP。请参见创建 IP 池以分配隧道端点 IP 地址。
- 为 Edge 节点的隧道端点 IP 地址创建一个 IP 池或 DHCP。请参见创建 IP 池以分配隧道端点 IP 地址。
- 创建包含指定绑定策略的上行链路配置文件。请参见创建上行链路配置文件。
- 通过应用传输节点配置文件来将主机配置为传输节点。在此步骤中,传输节点配置文件仅将 vmnic1(未使用的物理网卡)迁移到 N-VDS 交换机。在将传输节点配置文件应用于集群主机后,将创建 N-VDS 交换机,并将 vmnic1 连接到 N-VDS 交换机。请参见添加传输节点配置文件。
所有主机上的 vmnic1 都会添加到 N-VDS 交换机。因此,在两个物理网卡中,有一个会迁移到 N-VDS 交换机。vmnic0 接口仍会连接到 vSS 或 vDS 交换机,这可确保到主机的连接可用。 - 在 NSX Manager UI 中,为 NSX Manager、VMware vCenter 和 NSX Edge 创建支持 VLAN 的分段。请确保为每个支持 VLAN 的分段选择正确的绑定策略。不要将 VLAN 中继逻辑交换机用作目标。在 NSX Manager UI 中创建目标分段时,在输入 VLAN 列表字段中,只输入一个 VLAN 值。
- 在主机 2、主机 3 和主机 4 上,必须将 vmk0 适配器和 vmnic0 一起从 VSS/VDS 迁移到 N-VDS 交换机。更新每个主机上的 NSX-T 配置。迁移时,请确保:
- vmk0 已映射到 Edge 管理分段。
- vmnic0 已映射到活动上行链路 uplink-1。
- 在 vCenter Server 中,转至主机 2、主机 3 和主机 4,同时确认 vmk0 适配器已连接到 N-VDS 上的 vmnic0 物理网卡且必须可访问。
- 在 NSX Manager 用户界面中,转至主机 2、主机 3 和主机 4,并确认这两个物理网卡都位于 N-VDS 交换机上。
- 在主机 2 和主机 3 上,从 NSX Manager UI 中安装 NSX Manager 并将 NSX Manager 连接到分段。等待大约 10 分钟以形成集群,并验证集群是否已形成。
- 关闭第一个 NSX Manager 节点的电源。等待大约 10 分钟。
- 将 NSX Manager 和 vCenter Server 重新连接到先前创建的逻辑交换机。在主机 4 上,打开 NSX Manager 的电源。等待大约 10 分钟,然后验证集群是否处于稳定状态。在第一个 NSX Manager 关闭电源后,执行冷 vMotion 以将 NSX Manager 和 VMware vCenter 从主机 1 迁移到主机 4。
有关 vMotion 限制的信息,请参见 https://kb.vmware.com/s/article/56991。
- 从 NSX Manager 用户界面中,转至主机 1,将 vmk0 和 vmnic0 一起从 VSS 迁移到 N-VDS 交换机。
- 在用于安装的网络映射字段中,确保 vmk0 适配器已映射到 N-VDS 交换机上的 Edge 管理分段。
- 在主机 1 上,通过 NSX Manager UI 安装 NSX Edge 虚拟机。
请参见 创建 NSX Edge 传输节点。
- 将 NSX Edge 虚拟机加入管理平面。
请参见 将 NSX Edge 加入管理平面。
- 要建立南北向流量连接,请为 NSX Edge 虚拟机配置一个外部路由器。
- 验证 NSX Edge 虚拟机与外部路由器之间的南北向流量连接。
- 如果出现了要重新引导整个集群的电源故障,则 NSX-T 管理组件可能无法启动并与 N-VDS 通信。为了避免出现这种情况,请执行以下步骤:
小心: 错误地运行任何 API 命令都会导致与 NSX Manager 的连接中断。注: 在单集群配置中,管理组件将作为虚拟机托管在 N-VDS 交换机上。出于安全考虑,管理组件默认情况下连接到的 N-VDS 端口会初始化为已阻止的端口。如果发生电源故障而需要重新引导所有四个主机,则会将管理虚拟机端口初始化为已阻止状态。为避免出现循环依赖关系,建议在 N-VDS 上创建处于未阻止状态的端口。未阻止的端口可确保在集群重新引导时,NSX-T 管理组件可以与 N-VDS 通信以恢复正常功能。在该子任务结束时,迁移命令会采用以下信息:
- NSX Manager 所在主机节点的 UUID。
- NSX Manager 虚拟机的 UUID,并且会将其迁移到处于未阻止状态的静态逻辑端口。
- 在 NSX Manager UI 中,转到管理器模式 > 网络 > 逻辑交换机选项卡(3.0 和更高版本)。搜索分段计算虚拟机分段。选择概览选项卡,然后找到并复制 UUID。此示例中使用的 UUID 为 c3fd8e1b-5b89-478e-abb5-d55603f04452。
- 为每个 NSX Manager 各创建一个 JSON 负载。
- 在 JSON 负载中,将 logical_switch_id 的值替换为之前创建的 Edge 管理分段的 UUID,以便在初始化状态为 UNBLOCKED_VLAN 时创建逻辑端口。
- 在每个 NSX Manager 的负载中,attachment_type_id 和 display_name 的值各不相同。
重要说明: 重复此步骤以创建总共四个 JSON 文件 - 其中三个文件用于 NSX Manager,一个用于 vCenter Server Appliance (VCSA)。port1.json { "admin_state": "UP", "attachment": { "attachment_type": "VIF", "id": "nsxmgr-port-147" }, "display_name": "NSX Manager Node 147 Port", "init_state": "UNBLOCKED_VLAN", "logical_switch_id": "c3fd8e1b-5b89-478e-abb5-d55603f04452" }
其中,admin_state
:端口的状态。必须为“已启动”。attachment_type
:必须设置为 VIF。所有虚拟机都已通过 VIF ID 连接到 NSX-T 交换机端口。id
:VIF ID。每个 NSX Manager 的值必须是唯一的。如果您有三个 NSX Manager,则将有三个负载,其中每个负载必须具有不同的 VIF ID。要生成唯一的 UUID,请登录到 NSX Manager 的 root shell,然后运行 /usr/bin/uuidgen 以生成唯一的 UUID。display_name
:必须是唯一的,以便帮助 NSX admin 将其与其他 NSX Manager 显示名称区分开来。init_state
:如果将值设置为UNBLOCKED_VLAN
,NSX 会为 NSX Manager 取消阻止端口,即使 NSX Manager 不可用也是如此。logical_switch_id
:Edge 管理分段的逻辑交换机 ID。
- 如果部署了三个 NSX Manager,则需要创建三个负载,即为 NSX Manager 的每个逻辑端口创建一个负载。例如,port1.json、port2.json、port3.json。
运行以下命令以创建负载。
curl -X POST -k -u '<username>:<password>' -H 'Content-Type:application/json' -d @port1.json https://nsxmgr/api/v1/logical-ports
curl -X POST -k -u '<username>:<password>' -H 'Content-Type:application/json' -d @port2.json https://nsxmgr/api/v1/logical-ports
curl -X POST -k -u '<username>:<password>' -H 'Content-Type:application/json' -d @port3.json https://nsxmgr/api/v1/logical-ports
通过执行 API 创建逻辑端口的示例。
root@nsx-mgr-147:/var/CollapsedCluster# curl -X POST -k -u '<username>:<password>' -H 'Content-Type:application/json' -d @port1.json https://localhost/api/v1/logical-ports { "logical_switch_id" : "c3fd8e1b-5b89-478e-abb5-d55603f04452", "attachment" : { "attachment_type" : "VIF", "id" : "nsxmgr-port-147" }, "admin_state" : "UP", "address_bindings" : [ ], "switching_profile_ids" : [ { "key" : "SwitchSecuritySwitchingProfile", "value" : "fbc4fb17-83d9-4b53-a286-ccdf04301888" }, { "key" : "SpoofGuardSwitchingProfile", "value" : "fad98876-d7ff-11e4-b9d6-1681e6b88ec1" }, { "key" : "IpDiscoverySwitchingProfile", "value" : "0c403bc9-7773-4680-a5cc-847ed0f9f52e" }, { "key" : "MacManagementSwitchingProfile", "value" : "1e7101c8-cfef-415a-9c8c-ce3d8dd078fb" }, { "key" : "PortMirroringSwitchingProfile", "value" : "93b4b7e8-f116-415d-a50c-3364611b5d09" }, { "key" : "QosSwitchingProfile", "value" : "f313290b-eba8-4262-bd93-fab5026e9495" } ], "init_state" : "UNBLOCKED_VLAN", "ignore_address_bindings" : [ ], "resource_type" : "LogicalPort", "id" : "02e0d76f-83fa-4839-a525-855b47ecb647", "display_name" : "NSX Manager Node 147 Port", "_create_user" : "admin", "_create_time" : 1574716624192, "_last_modified_user" : "admin", "_last_modified_time" : 1574716624192, "_system_owned" : false, "_protection" : "NOT_PROTECTED", "_revision" : 0
- 确认已创建逻辑端口。
- 找到每个 NSX Manager 的虚拟机实例 ID。您可以从清单 → 虚拟机中检索实例 ID,选择 NSX Manager 虚拟机,选择概览选项卡,然后复制实例 ID。或者,您可以从 VMware vCenter 的受管对象浏览器 (Managed Object Browser, MOB) 中搜索实例 ID。将 :4000 添加到 ID,以获取 NSX Manager 虚拟机的 VNIC 硬件索引。
例如,如果虚拟机的实例 UUID 为
503c9e2b-0abf-a91c-319c-1d2487245c08
,则其 vnic 索引将为503c9e2b-0abf-a91c-319c-1d2487245c08:4000
。三个 NSX Manager vnic 索引分别为:mgr1 vnic: 503c9e2b-0abf-a91c-319c-1d2487245c08:4000
mgr2 vnic: 503c76d4-3f7f-ed5e-2878-cffc24df5a88:4000
mgr3 vnic: 503cafd5-692e-d054-6463-230662590758:4000
- 找到托管 NSX Manager 的传输节点 ID。如果您有三个 NSX Manager,并且分别托管在不同的传输节点上,则请记下传输节点 ID。例如,三个传输节点 ID 分别为:
tn1: 12d19875-90ed-4c78-a6bb-a3b1dfe0d5ea
tn2: 4b6e182e-0ee3-403f-926a-fb7c8408a9b7
tn3: d7cec2c9-b776-4829-beea-1258d8b8d59b
- 在将 NSX Manager 迁移到新创建的端口时,检索要用作负载的传输节点配置。
例如,
curl -k -u '<user>:<password' https://nsxmgr/api/v1/transport-nodes/12d19875-90ed-4c78-a6bb-a3b1dfe0d5ea > tn1.json
curl -k -u '<user>:<password' https://nsxmgr/api/v1/transport-nodes/4b6e182e-0ee3-403f-926a-fb7c8408a9b7 > tn2.json
curl -k -u '<user>:<password' https://nsxmgr/api/v1/transport-nodes/d7cec2c9-b776-4829-beea-1258d8b8d59b > tn3.json
- 将 NSX Manager 从上一个端口迁移到在 Edge 管理分段上新创建的未阻止逻辑端口。VIF-ID 值是先前为 NSX Manager 创建的端口的连接 ID。
迁移 NSX Manager 时需要使用以下参数:
- 传输节点 ID
- 传输节点配置
- NSX Manager VNIC 硬件索引
- NSX Manager VIF ID
用于将 NSX Manager 迁移到新创建的未阻止端口的 API 命令为:/api/v1/transport-nodes/<TN-ID>?vnic=<VNIC-ID>&vnic_migration_dest=<VIF-ID>例如,
root@nsx-mgr-147:/var/CollapsedCluster# curl -k -X PUT -u 'admin:VMware1!VMware1!' -H 'Content-Type:application/json' -d @<tn1>.json 'https://localhost/api/v1/transport-nodes/11161331-11f8-45c7-8747-34e7218b687f?vnic=5028d756-d36f-719e-3db5-7ae24aa1d6f3:4000&vnic_migration_dest=nsxmgr-port-147' - 确保采用静态方式创建的逻辑端口已启动。
- 对集群中的每个 NSX Manager 重复上述步骤。