一、背景

因业务需要,将桌面接入流量分流至专用接口,从而多个租户都可走一个出口,而这将出现一个新问题,即该出口出现单点且威胁较大,影响所有租户业务流量。对此,需要对该出口边界edge设备进行HA部署。

二、方案参考

1)相关概念介绍:

负载均衡(LB):将服务分摊到多个操作单元上执行从而共同完成工作任务。负载均衡既可以通过硬件来实现亦可以通过软件来实现,软件实现负载均衡的解决方案就是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡,优点是配置简单,使用灵活。

硬件负载均衡的解决方案是直接在服务器和外部网络间安装负载均衡设备(负载均衡器)。这样一来。专门的设备可以完成专门的任务,而且独立于操作系统外加多样化的负载均衡策略,再加上智能化的流量管理,就能实现最佳的负载均衡要求。一般来说,硬件的方式要优于软件,但是硬件方案成本也会更高。

传统的软件实现负载均衡的方式之所以不能与NSX Edge的负载均衡功能想比,是因为传统的方式需要在每台服务器上额外安装软件来实现负载均衡,这样的话,对于服务器的cpu也会有新的占用,软件的功能越强大,消耗的cpu越多,这样一来,反而成了系统的负载。

负载均衡又分为本地负载均衡全局负载军均衡,本地负载均衡是指对本地的服务器群做负载均衡,而全局负载均衡是指对放置于不同地理位置、不同网络结构的服务器群之间实现负载均衡。

负载均衡有三种部署方式:路由模式、桥接模式、服务直接返回模式,这三种模式中,路由模式比较灵活,大部分人都会用这种方式,桥接模式不会改变现有的网络架构,服务直接返回模式比较适合吞吐量大的网络应用。

这里我们使用NSX Edge部署负载均衡服务时,是为了实现两个功能:一是将功能进行横向扩展,即将工作负载横向分布在多台服务器上,二是促进高可用性。

NSX Edge能够提供网络中三到七层的很多功能,如路由、防火墙、负载均衡、二层和三层VPN、DHCP和DNS等等。,对于NSX Edge,NSX 6.0有三种可以选择的冗余部署方式,即Active/Standby(A/S)、Standalone和ECMP.其中Standalone HA;其中Standalone HA模式不支持等价多路径ECMP(Equal-Cost Multipath Routing,简写ECMP),即不支持负载均衡,且它也不支持超过两台NSX Edge的部署,在NSX 6.1版本之后该功能被ECMP HA 取代。

ECMP:即存在多条到达同一个目的地址的相同开销的路径。当设备支持等价路由时,发往该目的 IP 或者目的网段的三层转发流量就可以通过不同的路径分担,实现网络的负载均衡,并在其中某些路径出现故障时,由其它路径代替完成转发处理,实现路由冗余备份功能。

在NSX 中,默认的VXLAN流量复制方式就是单播模式,单播模式实现了物理网络与逻辑网络的完全解耦,这一点是与组播网络不同的。在单播模式下,每一个VTEP Segment中的ESXI主机都会充当单播隧道节点(UTEP),源UTEP的职责是将封装后的流量通过单播复制给本地的VTEP或者是远端的UTEP,而目的UTEP的职责是从源接收封装流量,再将流量通过单播的方式复制给本地的每一个VTEP。当虚拟机连接到VXLAN网段后,该虚拟机所在的主机只是向NSX Controller集群提供相关的VNI/VTEP信息,真正负责生成VTEP表项的工作其实是由NSX Controller集群来完成的。

NSX路由:集中式路由和分布式路由。集中式路由用于处理南北向通信,它允许逻辑网络和外部的三层网络进行路由通信;

1> NSX 集中式路由:

上面的图描述的就是集中式路由处理东西向流量时的流程:

主机1上的vm1想要和主机1上的vm进行通信时,因这两个虚拟机处于不同的网段,所以不能直接访问,需要走逻辑3层,即处于VXLAN5001上的vm1向VDS发送原始报文,由于另一台虚拟机处于VXLAN5002中,所以主机1的报文转发到NSX Edge网关所在的主机2上,然后数据包再被传送到了NSX Edge网关,进行路由处理,将数据包传回主机1,主机1收到后,将数据包发送给虚拟机2。

2> NSX分布式路由

分布式逻辑路由通常称为DLR,在NSX虚拟化环境中,分布式路由的控制平面是由NSX Controller和DLR-C-VM一起提供的,其中DLR-C-VM以虚拟机的形式安装在vSphere环境中。
同主机内不同网段的两台虚拟机的通信:

如上图所示,当VXLAN5001的vm1要与VXLAN5002中的vm2进行通信时,因不属于同一网络,vm1向默认网关(位于内核之上)发送了一个携带三层IP地址的报文,默认网关根据目的地址确认了目的地址所属的网段,默认网关检查了ARP表,并确认了目的MAC地址;
由于vm2与vm1位于同一个主机,默认网关直接将报文传递给虚拟机2;

不同主机上的vm之间通信过程

不同的ESXI主机上,属于VXLAN5001的vm1要与属于VXLAN5002上的vm2进行通信,vm1发出到目标网络的数据包。数据包会被发送到vm1的本地网关接口所在的分布式路由器上。
然后分布式路由会进行本地路由表查询,确认目的网段直接连接到LIF2。另外LIF2中的ARP表的查询也会确认其MAC地址与vm2 的IP地址关联,当ARP缓存里没有相关信息时,那么DLR就会在VXLAN5002上生成一个ARP请求,以确认需要映射的信息。
DLR本地的MAC地址表会进行二层的查询,以确认数据包是否到达vm2。确认完成后,本地就会进行VXLAN 的封装,并发送到主机2的VTEP。到达主机2对数据包进行解封装,并在关联了VXLAN5002的MAC地址表中进行二层查询,数据包最终抵达vm2。

2)负载均衡部署方式

单臂模式:由NSX Edge直接连接到逻辑网络并提供负载均衡服务的模式叫做单臂模式(代理模式)

在线模式:该方法与单臂模式相反,是由集中化的NSX Edge 来提供路由和负载均衡服务的模式。

分布式方式:该方式是将负载均衡服务分布式地部署在ESXI主机的Hypervisor之上,实现分布式的架构,使用这种部署模式,可以直接由每个web服务器所在的ESXI主机的Hypervisor来处理负载均衡。

3)Edge HA部署方式:

1> Active/Standby(A/S)模式

在这种部署模式下,一台NSX Edge处于active状态,另外一台处于Standby状态,处于active状态下的NSX作为主Edge,承载网络中的流量并提供其他逻辑网络中的网络负载服务,而至于处于Standby状态的Edge则作为备用Edge,不承载网络流量和服务,只有当主用Edge失效后,它将接管其工作对外提供服务。将NSX Edge配置为HA模式之后,主Edge会一直处于Active状态,备用Edge处于Standby状态,NSX Manager会将NSX Edge的配置由主Edge定期同步到备用Edge,并在之后按成对设备对其生命周期管理。

另建议在不同的资源池和不同的数据存储中创建主备NSX Edge。如果数据存储为本地存储器,则两个虚拟机均部署在同一主机上。即使在使用 DRS 和 vMotion 之后,两个 HA NSX Edge 虚拟机也不在同一个 ESXi 主机上(除非以手动方式通过 vMotion 将二者移至同一个主机)。主备之间的心跳与信息同步使用的是这两个Edge之间的内部接口进行传递,接口使用了指定的IP地址,连接到相同的二层子网,这个IP只能作为信息同步的IP,不可用做其他服务的IP。另,跨 vCenter NSX 环境中的 NSX Edge 上启用高可用性,则活动和备用 NSX Edge 设备必须位于同一个 vCenter Server 中。如果您将 NSX Edge HA 对的一个设备迁移到其他 vCenter Server 中,则两个 HA 设备不再作为 HA 对运行,而且您可能会遇到流量中断问题。

所有 NSX Edge 服务均在活动设备上运行。主设备会维护备用设备的检测信号(UDP-694),并通过内部接口发送服务更新。如果未在指定的时间内(默认值为 15 秒)收到主设备的检测信号,则主设备会被声明为已停止运行。备用设备进入活动状态,接管主设备的界面配置,然后启动先前在主设备上运行的 NSX Edge 服务。发生切换时,会在“设置和报告”的系统事件 (System Events)选项卡中显示一个系统事件。 负载平衡器和 VPN 服务需重新建立与 NSX Edge 的 TCP 连接,所以将出现短时间的服务中断。逻辑交换机连接和防火墙会话将在主设备和备用设备之间同步,但在切换过程中等待备用设备变为活动状态并接管相应任务时,服务会中断

NSX Edge HA 与 vSphere HA 兼容。如果运行 NSX Edge 实例的主机停止运行,则 NSX Edge 会在备用主机上重新启动,从而确保 NSX Edge HA 对仍可以再进行一次故障切换。

如未启用 vSphere HA,则活动/备用 NSX Edge HA 对在一次故障切换后仍将处于有效状态。但是,如果在还原第二个 HA 对之前再次出现故障切换,则将危及 NSX Edge 的可用性。

如上图所示,左面的图是正常情况下连接逻辑路由器的逻辑网段的流量都是通过主用 的Edge与物理网络通信的,而右边的图展示了当主Edge失效后,备用Edge将会接管其工作的继续对外提供服务。

当备用Edge在一定时间(默认为15秒,最小设置为6秒)无法收到心跳信息后,它就会认为主用的Edge已经挂了,这时备用的Edge就会去接管工作。当原主edge恢复后,自动以备用身份加入HA对,直到下一次Failover,整个过程由NSX Controller来控制,当然你可以手动进行切换。如故障的主用Edge无法恢复了,只需重新添加新的备用设备到HA。如果是外部ESXI 主机或存储失效后导致NSX Edge无法工作时,可将其迁移到其他ESXI主机或存储上上。

如果 NSX Edge 设备发生故障并报告错误状态,HA 将强制同步发生故障的设备以恢复该设备。恢复后,该设备具备当前活动设备的配置,并保持待机状态。如果 NSX Edge 设备已停止运行,您必须删除该设备,然后添加新设备。
2> NSX Edge之ECMP HA

使用了ECMP实现的HA,将允许分布式逻辑路由器和外部物理网络之间通过部署最多8台NSX Edge,最大可以支持8路等价路径(负载均衡)。这意味着同一时间内,数据平面与外部物理网络的的通信能达到最大的利用率。任何一台NSX Edge失效,对整体网络服务性能损失不大,仍然能保持原有性能的87.5%。但多edge部署会占用更多存储和计算资源,可根据实际应用需求,考虑置备合适数量的edge。

左图展示的是将Edge部署为ECMP模式,可以看到,南北向流量的通信很可能是遵循非对称的路径,不同网段不同类型的流量可能会穿越不同的NSX Edge网关。这种南北向流量中非对称等价多路径的选择是在分布式逻辑路由器或物理三层设备,对网络中的原始数据包的源目IP地址进行哈希计算得出的结果。,右边的图展示的是ECMP模式下一台NSX Edge失效的情形,一旦其中一台NSX Edge失效,物理三层设备或分布式逻辑路由器会迅速重新建立邻居关系,并针对网络中的路径重新选路,使得存活的剩余的NSX Edge仍可以继续实现ECMP模式。

当Edge HA配置后,一旦其中一个edge挂掉后,再重新建立通信,两个 NSX Edge HA 设备将重新协商活动和备用状态。如果没有完成该协商,并且两个设备在重新建立连接时都宣称处于活动状态,则会在界面观察到意外行为。我们将这种情况称为脑裂,一般是由于以下环境条件造成的:

1> 物理网络连接问题,包括网络分区。
2> NSX Edge 上的 CPU 或内存争用。
3> 可能导致至少一个 NSX Edge HA 虚拟机变得不可用的临时存储问题。经验表明,从过度置备的存储中移走虚拟机时,将观察到 NSX Edge HA 稳定性和性能提高。特别是,在较大的通宵备份期间,较大的存储延迟峰值可能会影响 NSX Edge HA 稳定性。
4> 数据包交换涉及的物理或虚拟网络适配器上的拥塞。
5> HA 配置引擎变为错误状态或 HA 守护进程失败时,将会观察到脑裂情况。

三、Edge HA部署配置

这里我们选着A/S模式。


上图中:

1>声明失效时间:以秒为单位输入时间段,如果备用设备在该时间段内未从主设备收到检测信号,则将主设备视为处于不活动状态,并且备用设备接替主设备的工作。默认时间间隔为 15 秒。

2> vNIC:选择要配置 HA 参数的内部接口

如果为接口选择“任意”,但未配置任何内部接口,则 UI 会显示错误。将创建两个 Edge 设备,但由于未配置任何内部接口,新的 NSX Edge 将保持备用状态且会禁用 HA。在配置内部接口后,将在 NSX Edge 设备上启用 HA。现场环境可靠

3> 管理 IP(可选):
可以采用 CIDR 格式输入两个管理 IP 地址,以替代分配给 HA 虚拟机的本地链路 IP 地址。确保管理 IP 地址不与用于任何其他接口的 IP 地址重叠,并且不干扰流量路由。不要使用在网络上其他位置使用的 IP 地址,即使该网络未直接连接到设备。

注:如果在启用 HA 之前在该 Edge 设备上配置 L2 VPN,您必须至少设置两个内部接口。如果在此 Edge 上配置了一个已由 L2 VPN 使用的接口,则会在 Edge 设备上禁用 HA。运行强制同步可将 NSX Manager 已知的 Edge 配置同步到所有组件。但对于 NSX Data Center 6.2 或更高版本,强制同步可以避免东西向路由流量的数据损失,但南北向路由和桥接可能会出现中断。从 NSX 6.4.4 版本开始, NSX Manager 在强制同步操作期间执行以下操作:如果 Edge 设备处于错误状态,则 NSX Manager 将删除 Edge 配置,重新引导错误的 Edge 设备,并将最新配置发布到 Edge 设备。如果 Edge 设备未处于错误状态,则 NSX Manager 将不会重新引导 Edge 设备,而是直接将最新配置发布到 Edge 设备。通过消除 Edge 设备不必要的重新引导,可减少停机时间。在 跨 vCenter NSX 环境中,您必须先在主 NSX Manager 中的 NSX Edge 实例上运行强制同步。完成后,再强制同步辅助 NSX Manager 上的 NSX Edge 实例。




由上可知Edge设备对部署完成后,配置信息一致,每设备有8个IP地址。

四、维护

1、使用 /api/4.0/edges//appliances 和 REST api 很容易管理Edge映射规则。

2、Edge HA中,一旦禁用HA,edge-standby将会被删除;新 edge-VM 将仅联网以与主 edge-VM 心跳通信和配置等信息同步。

3、Edge HA检查确认:
nsxe-0> show service highavailability //输出类似如下

Highavailability Status: runningHighavailability Unit Name: nsxe-0Highavailability Unit State: activeHighavailability Interface(s): vNic_5Unit Poll Policy:Frequency: 3 secondsDeadtime: 15 secondsStateful Sync-up Time: 10 secondsHighavailability Healthcheck Status:Peer host [vse-1 ]: goodThis host [vse-0 ]: goodHighavailability Stateful Logical Status:File-Sync runningConnection-Sync runningxmit        xerr  rcv       rerr51219548828 0     42990848  0

确认HA连接同步情况,执行:
nsxe-0> show service highavailability connection-sync //输出类似如下

connections local:
current active connections: 12693
connections created:            368613263  failed: 0
connections updated:           21695297    failed: 0
connections destroyed:        368600570  failed: 0connections peer:
current active connections: 0
connections created:          26571 failed: 0
connections updated:         1024 failed: 0
connections destroyed:        26571 failed: 0traffic processed:
1248602045934 Bytes 6285222215 PcktsUDP traffic (active device=vNic_5):
51255382200 Bytes sent 43018912 Bytes recv
590146284 Pckts sent 2518471 Pckts recv
0 Error send 0 Error recvmessage tracking:
0 Malformed msgs 5863 Lost msgs

查看服务高可用性同步情况,执行:
vse-0> show service highavailability link //输出类似如下
Local IP Address: 192.18.0.1/30
Peer IP Address: 192.18.0.2/30

Debug显示/“嗅探”HA 心跳情况,执行:
nsxe-0> debug packet display interface vNic_# port_694 //输出类似如下

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vNic_5, link-type EN10MB (Ethernet), capture size 65535 bytes
17:22:50.357722 IP 192.18.0.2.24758 > 192.18.0.1.694: UDP, length 189
17:22:52.709253 IP 192.18.0.1.32165 > 192.18.0.2.694: UDP, length 189
17:22:53.360327 IP 192.18.0.2.24758 > 192.18.0.1.694: UDP, length 190
17:22:55.711667 IP 192.18.0.1.32165 > 192.18.0.2.694: UDP, length 203
17:22:55.711715 IP 192.18.0.1.32165 > 192.18.0.2.694: UDP, length 189
17:22:55.742631 IP 192.18.0.2.24758 > 192.18.0.1.694: UDP, length 203
17:22:56.353520 IP 192.18.0.2.24758 > 192.18.0.1.694: UDP, length 189
17:22:58.716886 IP 192.18.0.1.32165 > 192.18.0.2.694: UDP, length 189
17:22:59.357186 IP 192.18.0.2.24758 > 192.18.0.1.694: UDP, length 189

4、在 vsphere Web 客户端中查看 Edge 的历史 HA 系统事件
打开 Networking & Security—>NSX Edges—> general —>event–搜索:HighAvailability

5、API相关操作:

1)在 Edge 上查询 HA 配置详细信息
GET https://nsxm-ip/api/4.0/edges/edge-#/highavailability/config

2)删除 Edge 上的 Edge HA 配置
DELETE https://nsxm-ip/api/4.0/edges/edge-#/highavailability/config

3)主动监控高可用性运行状况
收集Edge的所有日志后,如果想确认心跳交互情况,可搜索 “lost packet”;是否有心跳延迟,搜索 “Late heartbeat”是否脑裂,可搜索 “returning after partition”和 “Deadtime value may be too small”,

NSX-V edge HA部署相关推荐

  1. 四十九、Hadoop HA部署(MINI版)

    环境准备: 编号 主机名 类型 用户 密码 1 master1-1 主节点 root passwd 2 slave1-1 从节点 root passwd 3 slave1-2 从节点 root pas ...

  2. spark standalone zookeeper HA部署方式

    虽然spark master挂掉的几率很低,不过还是被我遇到了一次.以前在spark standalone的文章中也介绍过standalone的ha,现在详细说下部署流程,其实也比较简单. 一.机器 ...

  3. flink yarn模式HA部署

    文章目录 1.yarn cluster 模式部署介绍 2.flink session HA模式 3.flink-per-job模式 该文章基于上一篇: Flink的local和standalone H ...

  4. hadoop和spark HA部署

    hadoop和spark主备HA配置说明 1.  环境说明 集群中包括4个节点:2个Master(主备),2个Salve,节点之间局域网连接,可以相互ping通.节点IP地址分布如下: Hadoop ...

  5. 基于YRCloudFile容器存储的WordPress HA部署方案

    WordPress是一款非常流行的内容分享平台软件,官方刚刚庆祝了它的"大麦",全球1000万个流行网站中,有1/3选择了WordPress. 在本文中,给大家展示一下如何在K8S ...

  6. Hadoop HA部署(阿里云)

    文章预览: 1.阿里云添加实例(3台) 2.前置环境配置 1.关闭防火墙 2.添加hadoop用户 3.配置host映射 4.免密登录(3台) 3.环境部署 1.zookeeper部署 1.解压 创建 ...

  7. 什么是服务器的“HA部署”?“HA”是什么的简称?

    HA是High Availability的简称.国内译成双机热备部署方案. 这个顾名思义就是:高可用性. 意思是为了减少系统停工时间,最大限度地保持服务的高度可用性.

  8. openstack ha 部署

    一.控制节点架构如下图: 二.初始化环境: 1.配置IP地址: 1.节点1:ip addr add dev eth0 192.168.142.110/24 echo 'ip addr add dev ...

  9. Vcenter 7.0 HA部署

    1.环境介绍 vcenter 版本: 7.0u2 esxi版本:7.0u2 2.架构 2.打开设置界面 3.资源设置 (1)主节点 (2)被动节点 (3)见证节点 4.ip设置 (1)主动节点 (2) ...

最新文章

  1. 源码解读Mybatis List列表In查询实现的注意事项
  2. Android——开源框架Universal-Image-Loader + Fragment使用+轮播广告
  3. word存为html图片有两个,如何批量保存Word图片?另存为Word多个图片的方法
  4. Link-Cut Tree动态树模板
  5. Hello,My first blog!
  6. (二叉树存储+递归遍历)Binary Tree Traversals
  7. 今天研究 Client本来是关联的Expression接口,笔记记录一下。
  8. Linux系统编程6:入门篇之如何拿下gdb调试器?来和我一起调试一个程序
  9. wamp xampp mysql端口冲突,xampp安装后apache 80端口被占用的解决方法
  10. ironpython调用c dll_在IronPython中加载模块
  11. 医院门诊管理系统php文献,医院门诊管理系统(源码+系统)
  12. 纸牌游戏程序设计要点(C语言)
  13. mysql按照汉字拼音排序
  14. java的jar文件
  15. 最强蜗牛服务器维护祷告bug,最强蜗牛 这个游戏的玩家太难带了,竟然天天希望服务器有事...
  16. linux佳能打印机服务,linux桌面打印机配置指南
  17. 如何将微服务应用设计为四层结构:平台层/服务层/边界层/客户端层
  18. python string转float原来如此简单,集合set的操作,对于动态变化的训练集操作
  19. 基于32位版CentOS6配置符合HA模式的CDH5.7.0的Hadoop+Yarn+HBase集群
  20. 关于浅拷贝、深拷贝的探究

热门文章

  1. 身份证识别OCR 应用技术及应用行业
  2. 雷蛇灵刃触摸按压反馈失灵解决方法
  3. errorImg异常图片显示
  4. Win10 升级后不能正常使用谷歌浏览器
  5. 多个视频的音频互换软件,一键互换视频的音频声音
  6. python tableau工作流_【干货】五分钟Get到Tableau五个实用小技巧
  7. Unity性能优化之动态图形渲染
  8. OpenMV4开发笔记1-感光元件初始化
  9. Linux-uboot-学习笔记(10):移植三星官方uboot
  10. [日常技能]手机投屏到电视的5种方法