有关Horizon View 使用AVI做负载均衡的POC试验

2023-12-14 07:58

本文主要是介绍有关Horizon View 使用AVI做负载均衡的POC试验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概要:由于移动云桌面市场前景较好,各区域大力支持下,售卖率较高,同时带来了一些并发的问题,由于一个CS最多支持2000个并发会话,为了满足云桌面客户的并发量,我参照官方推荐,使用VAI作为CONNECTION SERVER 和 UAG的负载均衡,并对AVI进行了UAG和CS 负载均衡的POC。

一、有关Horizon View 使用AVI做负载均衡的POC试验

移动云云桌面Horizon架构:

img

1.前期网络规划

地址类型地址规划
AVI Controller01 管理地址172.20.254.235
Service Engine 管理地址172.20.254.116-172.20.254.119
Horizon CS01 业务地址192.168.253.200
Horizon CS02 业务地址192.168.253.199
Horizon CS VIP 业务地址192.168.253.150
UAG01业务地址192.168.253.249
UAG02业务地址192.168.253.248
UAG VIP业务地址192.168.253.250

2.Application中创建Cloud(基于VMware)

Cloud 是安装或运行Avi Vantage的环境的容器

在基础架构Infrastructure页面中创建Clouds
在这里插入图片描述
点击创建按钮
在这里插入图片描述
DateCenter中选择 对应数据中心
在这里插入图片描述
配置相关网络
在这里插入图片描述

设置或者新建Service Engine Group

Service Engine是在一个组中创建的,Service Engine Group包含se应该如何调整大小、如何放置以及如何使其高度可用的定义。每个Cloud将至少有一个SE组。每个Service Engine可能只存在于一个组中。每个组充当一个隔离域。一个Service Engine Group中的Service Engine资源可能会被移动以容纳虚拟服务,但是Service Engine Group之间永远不会共享SE资源 。
在这里插入图片描述
记得选择对于的Cloud ,Service Engine Group 是所以唯一的Cloud下的,点击创建
在这里插入图片描述
其中High Availability Mode 有3中高可用模式:

  1. Active/Standby: 两台 Service Engine 其中一主一备,只能创建两个业务引擎。对于一个服务器上的每个活动的虚拟服务,另一个服务器上都有一个配置好的备用服务,备用服务可以在活动SE发生故障时接管。在这种HA模式下没有服务引擎扩展
  2. Active/Active:这种HA模式将虚拟服务分发到至少两个Service Engine
  3. N + M (buffer): 这种默认模式允许至多N个活动SE提供虚拟业务,其容量相当于组内M个Service Engine随时准备吸收Service Engine的故障

高级配置中 选择 Service Engine 虚拟机命名浅醉、所属VC文件夹、集群和主机信息
在这里插入图片描述
点击保存,完成 Service Engine Group 的创建

以上,我们就完成了,AVI基本的架构,后面就是涉及到具体负载的业务组件了。

3.Template中创建IP Group(内部服务器地址组)

IP Group 是 底层负载服务的ip集合
在这里插入图片描述
点击创建按钮
在这里插入图片描述
输入唯一Ip group 的名称,输入 底层服务的ip地址,点击添加按钮,添加ip,点击保存。

4.Template中创建IP中创建创建服务可用性的健康检查

负载均衡很重要的一点是,如何判断底层是否可以用呢,如果底层服务不可用时,需要暂停不可用底层服务的,或者将不可用的服务剔除负载。
在将客户端负载平衡到特定服务器之前,Avi Vantage 必须验证服务器是否正常工作以及是否能够适应额外的工作负载。运行状况监控器通过主动向服务器发送综合事务或被动监控客户端与服务器的体验来执行此功能。Avi Vantage 定期发送来自托管虚拟服务的服务引擎的活动运行状况监视器

下面就要创建 服务的监控检查监控。
在这里插入图片描述
点击创建按钮,如下图
在这里插入图片描述

上图中,需要输入健康监控的唯一名称,监控的手段,有HTTPS/HTTP/TCP/UDP/PING等,并设置其他选项。详见:什么是health-monitors
在这里插入图片描述
在输入请求的端口信息和请求的url,Horizon Connection Server 中的端口是443,可以通过q请求/portal/favicon.ico 资源判断CS是否正常。(虽然这里有点暴力,地址能访问,不代表CS内部正常)。
在这里插入图片描述
最后在 通过Response Code2XX开头,代表访问正常,也代表CS状态健康。
点击保存。

5.Application中创建POOL绑定各种负载均衡策略及组件

pool护分配给它们的服务器列表,并执行健康监控、负载平衡、持久性和涉及 Avi-Vantage
与服务器交互的功能。典型的虚拟服务将指向一个池;但是,更高级的配置可能会通过HTTP
请求策略或DataScripts跨多个池切换虚拟服务内容。一个池一次只能被一个虚拟服务使用或引用。

详情见:什么是pool

进入Application 选择Pools 点击创建
在这里插入图片描述
填写pool的负载均衡策略等
在这里插入图片描述

  • name:为池提供唯一名称。
  • Default server port:与服务器的新连接将使用此目标服务端口。默认端口为 80,除非它是从虚拟服务继承的(如果池是在同一工作流中创建的),或者端口是手动分配的。通过在Step2: Servers选项卡中编辑单个服务器的服务端口字段,可以在每个服务器的基础上更改默认服务器端口设置。
  • Load Balance: Round Robin- 新连接按顺序发送到池中下一个符合条件的服务器。这种静态算法最适合基本负载测试,但不适用于生产流量,因为它没有考虑单个服务器的变化速度或周期性打嗝。
  • Enable real time metrics:Checking this option enables real time metrics for server and pool metrics. Default is OFF.
  • Persistence: 默认情况下,每次客户端打开与虚拟服务的新连接时,Avi Vantage 都会将客户端负载平衡到新服务器。不能保证客户端会重新连接到它之前连接到的同一台服务器。持久性配置文件确保来自同一客户端的后续连接将连接到同一服务器。持久性可以被认为是负载均衡的对立面:客户端与 Avi Vantage 的第一个连接是负载均衡的;此后,该客户端及其建立的任何连接将在所需的时间段内持久保存到同一服务器。对于大多数在本地维护客户端会话信息的服务器来说,持久连接是至关重要的。例如,许多 HTTP 应用程序会将用户的信息保存在内存中 20 分钟,这使用户能够通过重新连接到同一服务器来继续他们的会话。作为最佳实践,需要持久性的 HTTP 虚拟服务应该使用 HTTP cookie,而需要持久性的一般 TCP 或 UDP 应用程序将使用客户端的源 IP。
    在这里插入图片描述
    选择之前创建IP Group
    在这里插入图片描述
    点击保存。

6.Application中创建VirtualService

虚拟服务是 Avi Vantage 负载平衡和代理功能的核心。虚拟服务向外部世界通告 IP 地址和端口并侦听客户端流量。当虚拟服务接收流量时,它可以配置为:

  • 代理客户端的网络连接。 执行安全、加速、负载均衡、收集流量统计和其他任务。 将客户端的请求数据转发到目的池进行负载均衡。
  • 执行安全、加速、负载均衡、收集流量统计和其他任务。
  • 将客户端的请求数据转发到目的池进行负载均衡。
    代理客户端的网络连接。

通常,客户端和 Vantage 之间的连接在 SE 处终止或代理,这会在其自身和服务器之间打开一个新的 TCP 连接。服务器将直接响应 Vantage IP 地址,而不是原始客户端地址。Vantage 通过自身与客户端之间的 TCP 连接将响应转发给客户端。
在这里插入图片描述

详见:什么是Virtual Service

首先进入Application 选择Virtual Service,点击创建,选择 Advance setup在这里插入图片描述

在这里插入图片描述
选择我们之前创建的Cloud
在这里插入图片描述
进入到创建页面:
在这里插入图片描述
输入 Virtual Service 的唯一名称,输入VIP,选择 TCP/UDP Profile 和Application Profile
有关Application Profile 详见:application profile 参考
有TCP/UDP Profile 详见:TCP/UDP Profile
添加VIP 对应端口,映射到 后台服务端口
添加之前创建的pool

点击保存,及创建Virtual Service,之后会显示 创建的Virtual Service:
在这里插入图片描述
在Infrastructure 会出现 Sevice Engine 正在安装中(图中是已经安装好的)
在这里插入图片描述

注意,如果一般在安装SE中,下图红框中会显示 进度:
在这里插入图片描述

7、验证负载均衡效果

我们可以查看VirtualSerivce的 日志,分析请求的日志记录
在这里插入图片描述
在这里插入图片描述

如需要通过UAG 访问Horizon 的云桌面,则需要对UAG进行负载均衡,其配置与 上面方式大致一致,有需要的同学,可以尝试配置一下。

作者:庞飞

链接:https://ecloud.10086.cn/api/query/developer/user/home.html?ticket=ST-15374-0HLCgSGLDecRBJAffNVH-cas01.example.org#L2FwaS9xdWVyeS9kZXZlbG9wZXIvYmxvZy9ibG9nZGV0YWlsLmh0bWw/YmxvZ19pZD0yMzcyN2U2ZGYzNWY0ODNjOTQzYzE2NWQ3MGVhMWVkOA==

来源:移动云开发者社区

这篇关于有关Horizon View 使用AVI做负载均衡的POC试验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/491750

相关文章

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完