您可以在一个集群上同时配置 NSX Manager、主机传输节点和 NSX Edge 虚拟机。集群中的每个主机都提供了两个为 NSX-T 配置的物理网卡。

前提条件

  • 所有主机必须属于同一个 vSphere 集群。
  • 每个主机都启用了两个物理网卡。
  • vCenter Server 注册所有主机。
  • vCenter Server 上确认共享存储器可供这些主机使用。
  • NSX-T Data Center 3.1 开始,NSX Edge 虚拟机的 TEP 可以直接与其上正在运行 NSX Edge 虚拟机的主机 TEP 进行通信。在 NSX-T 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-T Data Center 3.2.2 开始,您可以以让多个 NSX Manager 来管理单个 vCenter Server。请参见管理单个 vCenter Server 的多个 NSX Manager

    配置合并的集群后,如果允许 vCenter Server 与多个 NSX Manager(多个 NSX Manager 注册到同一 vCenter Server)结合使用,则无法将新的 NSX Manager 节点部署到集群。解决办法是创建新集群并部署 NSX Manager 节点。

    注:NSX-T 2.4.2 或 2.5 版本开始,可部署完全合并的单一 vSphere 集群拓扑。

    该过程中引用的拓扑具有:

    • 通过集群中的主机来配置的 vSAN。
    • 每个主机中的至少两个物理网卡。
    • vMotion 和 Management VMkernel 接口。
    图 1. 拓扑:单个 N-VDS 交换机,用于管理主机与 NSX Edge 和客户机虚拟机之间的通信 使用单个 N-VDS 交换机配置 NSX Manager、主机传输节点和 NSX Edge 虚拟机的集群拓扑。

过程

  1. 准备四个 ESXi 主机,vmnic0 位于 vSS 或 vDS 上,vmnic1 处于空闲状态。
    其中一个虚拟机网卡连接到 VSS 交换机,另一个虚拟机网卡可用的四个 ESXi 主机。
  2. 在主机 1 上,安装 vCenter Server,配置 vSS/vDS 端口组,然后在主机上创建的端口组中安装 NSX Manager
    安装 vCenter Server,配置 VSS 或 DVS 端口组,并在新端口组上安装 NSX Manager。
  3. 准备要用作传输节点的 ESXi 主机 1、2、3 和 4。
    1. 使用指定的绑定策略创建 VLAN 传输区域和覆盖网络传输区域。请参见创建传输区域
    2. 为主机的隧道端点 IP 地址创建一个 IP 池或 DHCP。请参见创建 IP 池以分配隧道端点 IP 地址
    3. 为 Edge 节点的隧道端点 IP 地址创建一个 IP 池或 DHCP。请参见创建 IP 池以分配隧道端点 IP 地址
    4. 创建包含指定绑定策略的上行链路配置文件。请参见创建上行链路配置文件
    5. 通过应用传输节点配置文件来将主机配置为传输节点。在此步骤中,传输节点配置文件仅将 vmnic1(未使用的物理网卡)迁移到 N-VDS 交换机。在将传输节点配置文件应用于集群主机后,将创建 N-VDS 交换机,并将 vmnic1 连接到 N-VDS 交换机。请参见添加传输节点配置文件
    准备 ESXi 主机作为传输节点。
    将可用虚拟机网卡连接到 N-VDS 交换机。
    所有主机上的 vmnic1 都会添加到 N-VDS 交换机。因此,在两个物理网卡中,有一个会迁移到 N-VDS 交换机。vmnic0 接口仍会连接到 vSS 或 vDS 交换机,这可确保到主机的连接可用。
  4. NSX Manager UI 中,为 NSX ManagervCenter ServerNSX Edge 创建支持 VLAN 的分段。请确保为每个支持 VLAN 的分段选择正确的绑定策略。不要将 VLAN 中继逻辑交换机用作目标。在 NSX Manager UI 中创建目标分段时,在输入 VLAN 列表字段中,只输入一个 VLAN 值。
  5. 在主机 2、主机 3 和主机 4 上,必须将 vmk0 适配器和 vmnic0 一起从 VSS/VDS 迁移到 N-VDS 交换机。更新每个主机上的 NSX-T 配置。迁移时,请确保:
    • vmk0 已映射到 Edge 管理分段
    • vmnic0 已映射到活动上行链路 uplink-1
    将 vmk0 和 vmnic0 从 VSS 或 DVS 交换机迁移到 N-VDS 交换机。
  6. 在 vCenter Server 中,转至主机 2、主机 3 和主机 4,同时确认 vmk0 适配器已连接到 N-VDS 上的 vmnic0 物理网卡且必须可访问。
  7. 在 NSX Manager 用户界面中,转至主机 2、主机 3 和主机 4,并确认这两个物理网卡都位于 N-VDS 交换机上。
    在主机 2、主机 3 和主机 4 上,确认两个 vmnic 在 N-VDS 交换机上均处于连接状态。
  8. 在主机 2 和主机 3 上,从 NSX Manager UI 中安装 NSX Manager 并将 NSX Manager 连接到分段。等待大约 10 分钟以形成集群,并验证集群是否已形成。
    在主机 2 和主机 3 上安装 NSX Manager。
  9. 关闭第一个 NSX Manager 节点的电源。等待大约 10 分钟。
  10. NSX Manager 和 vCenter Server 重新连接到先前创建的逻辑交换机。在主机 4 上,打开 NSX Manager 的电源。等待大约 10 分钟,然后验证集群是否处于稳定状态。在第一个 NSX Manager 关闭电源后,执行冷 vMotion 以将 NSX ManagervCenter Server 从主机 1 迁移到主机 4。

    有关 vMotion 限制的信息,请参见 https://kb.vmware.com/s/article/56991

    使用冷 vMotion 功能将 NSX Manager 和 vCenter Server 从主机 1 迁移到主机 4。
  11. NSX Manager 用户界面中,转至主机 1,将 vmk0 和 vmnic0 一起从 VSS 迁移到 N-VDS 交换机。
  12. 用于安装的网络映射字段中,确保 vmk0 适配器已映射到 N-VDS 交换机上的 Edge 管理分段
    在用于安装的网络映射字段中,vmk0 已映射到 N-VDS 交换机上的“Edge 管理”分段。
    vmnic0 已从 VSS 交换机迁移到 N-VDS 交换机。
  13. 在主机 1 上,通过 NSX Manager UI 安装 NSX Edge 虚拟机。
    在主机 1 上,安装 NSX Edge 虚拟机。
  14. NSX Edge 虚拟机加入管理平面。
  15. 要建立南北向流量连接,请为 NSX Edge 虚拟机配置一个外部路由器。
  16. 验证 NSX Edge 虚拟机与外部路由器之间的南北向流量连接。
  17. 如果出现了要重新引导整个集群的电源故障,则 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 虚拟机移至另一台主机,则 NSX Manager 在恢复后会连接到未阻止的端口,从而防止与 NSX-T 管理组件的连接中断。
    1. NSX Manager UI 中,转到管理器模式 > 网络 > 逻辑交换机选项卡(3.0 和更高版本)。搜索分段计算虚拟机分段。选择概览选项卡,然后找到并复制 UUID。此示例中使用的 UUID 为 c3fd8e1b-5b89-478e-abb5-d55603f04452
    2. 为每个 NSX Manager 各创建一个 JSON 负载。
      • 在 JSON 负载中,将 logical_switch_id 的值替换为之前创建的 Edge 管理分段的 UUID,以便在初始化状态为 UNBLOCKED_VLAN 时创建逻辑端口。
      • 在每个 NSX Manager 的负载中,attachment_type_iddisplay_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_idEdge 管理分段的逻辑交换机 ID。
    3. 如果部署了三个 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
    4. 确认已创建逻辑端口。
      验证是否已创建逻辑端口。
    5. 找到每个 NSX Manager 的虚拟机实例 ID。您可以从清单 → 虚拟机中检索实例 ID,选择 NSX Manager 虚拟机,选择概览选项卡,然后复制实例 ID。或者,您可以从 vCenter Server 的受管对象浏览器 (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

    6. 找到托管 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
    7. 在将 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
    8. 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'
    9. 确保采用静态方式创建的逻辑端口已启动
      验证逻辑端口是否已启动。
    10. 对集群中的每个 NSX Manager 重复上述步骤。