有关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

相关文章

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意