一、问题描述

SP门户可以正常访问,但是租户设备和rm,sp设备无法重置处理,报:Error while retrieveing hander result for HAL;

istio 中的 ServiceEntry 是什么 is that service center_cert


SP门户界面,为租户分配computer resource资源时,加载一段时间后报错,无法成功进行资源分配,租户无法发布交付;

二、分析处理

1)查看SP主设备slony和desktone日志,发现状态异常;

istio 中的 ServiceEntry 是什么 is that service center_HAL_02


istio 中的 ServiceEntry 是什么 is that service center_SOAP_03


istio 中的 ServiceEntry 是什么 is that service center_fabric node_04


istio 中的 ServiceEntry 是什么 is that service center_sp故障_05


istio 中的 ServiceEntry 是什么 is that service center_cert_06


istio 中的 ServiceEntry 是什么 is that service center_cert_07


istio 中的 ServiceEntry 是什么 is that service center_HAL_08


istio 中的 ServiceEntry 是什么 is that service center_cert_09


istio 中的 ServiceEntry 是什么 is that service center_sp故障_10


istio 中的 ServiceEntry 是什么 is that service center_cert_11


istio 中的 ServiceEntry 是什么 is that service center_HAL_12


istio 中的 ServiceEntry 是什么 is that service center_sp故障_13


2)检查HAL:https://HAL_ip:8443/.结果如下:

istio 中的 ServiceEntry 是什么 is that service center_SOAP_14


上述这是正常情况。3)查看HVM记录,发现HAL被重新部署安装过,关机,重启原版HAL使用后,再次restore SP-ta2,如下:

istio 中的 ServiceEntry 是什么 is that service center_SOAP_15


istio 中的 ServiceEntry 是什么 is that service center_cert_16


istio 中的 ServiceEntry 是什么 is that service center_sp故障_17


istio 中的 ServiceEntry 是什么 is that service center_cert_18


istio 中的 ServiceEntry 是什么 is that service center_cert_19


istio 中的 ServiceEntry 是什么 is that service center_HAL_20


istio 中的 ServiceEntry 是什么 is that service center_SOAP_21


istio 中的 ServiceEntry 是什么 is that service center_SOAP_22


istio 中的 ServiceEntry 是什么 is that service center_sp故障_23


istio 中的 ServiceEntry 是什么 is that service center_cert_24


istio 中的 ServiceEntry 是什么 is that service center_HAL_25


istio 中的 ServiceEntry 是什么 is that service center_HAL_26


istio 中的 ServiceEntry 是什么 is that service center_sp故障_27


注: 如果原先HAL和HVM组件已被删除无法恢复的情况,可浏览器输入https://hvm_ip:4443/,登录当前HVM 批量部署页面(Rundeck Web 界面),如下图所示,执行HAL与SP的API身份认证信息重新同步:

istio 中的 ServiceEntry 是什么 is that service center_SOAP_28


istio 中的 ServiceEntry 是什么 is that service center_HAL_29


完成之后,重新登录service center页面重新置备失败SP或RM设备即可。

特别注意:如果需要更新的 HVM 和 HAL,就需要在HVM上执行Horizon-Air-Link 重新同步作业,以确保更新的设备可重新同步 HAL API 密钥,保持ssh通信一致。另外,在部署SP过程中,Horizon Air Link 通过将节点的 SSH 公用密钥复制到 SP 授权密钥列表,在安装节点和 SP1 之间建立临时 SSH 信任。在部署成功完成后,会自动移除这些密钥。但在出现意外部署故障时,这时就需要手动移除这些密钥。

4)SP数据库备份

istio 中的 ServiceEntry 是什么 is that service center_fabric node_30

19.3或更新版本执行:

/usr/local/desktone/scripts/backup_db.sh –P ‘<postgres_db_password>’ -U admin -V true --dbport
6432 //将PostgreSQL的FDB数据库提取到存档文件中,输出格式:..tar.gz 到/usr/local/desktone/backup下

istio 中的 ServiceEntry 是什么 is that service center_HAL_31

19.3版本之前执行:

/usr/local/desktone/scripts/backup_db.sh –P ‘<postgres_db_password>’ -U admin -V true

istio 中的 ServiceEntry 是什么 is that service center_fabric node_32

恢复时,将备份压缩包解压后的 .bak文件,复制到usr/local/desktone/backup,对应执行:

/usr/local/desktone/release/scripts/restore_db.sh -d fdb -p --dbport 6432 -f
<filename.bak>

/usr/local/desktone/release/scripts/restore_db.sh -d fdb -p -f <filename.bak>

5)初始化slony

appliances > maintenance > Slony Operations,选1000:

istio 中的 ServiceEntry 是什么 is that service center_fabric node_33

三、附录

1)webService三要素

SOAP,WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescription
Discovery andIntegration)之一, soap用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, uddi用来管理,分发,查询webService 。具体实现可以搜索 Web Services简单实例 ; SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。

2)SOAP(Simple Object Access Protocol简单对象访问协议)是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。

SOAP封装(envelop),它定义了一个框架,描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们;
SOAP编码规则(encoding rules),它定义了一种序列化机制,用于表示应用程序需要使用的数据类型的实例;
SOAP RPC表示(RPC representation),它定了一个协定,用于表示远程过程调用和应答;
SOAP绑定(binding),它定义了SOAP使用哪种协议交换信息,定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。使用HTTP/TCP/UDP协议都可以。把SOAP绑定到HTTP提供了同时利用SOAP的样式和分散的灵活性的特点以及HTTP的丰富的特征库的优点。在HTTP上传送SOAP并不是说SOAP会覆盖现有的HTTP语义,而是HTTP上的SOAP语义会自然的映射到HTTP语义。一条 SOAP 消息就是一个普通的 XML 文档.

  1. rundeck

    Rundeck 是一个在指定中央管理控制点的系统上托管的服务器应用程序。在内部,Rundeck 将作业定义和执行历史存储在关系数据库中,命令和作业执行的输出保存在磁盘上。Rundeck 应用程序本身是一个基于 Java 的 web 应用程序。该应用程序提供 Rundeck shell 工具使用的图形界面和网络界面。

更多参看:官方文档

  1. HAL和HVM

随着 Horizon DaaS 9 的发布,VMware 推出了两款新设备:Horizon Version Manager (HVM) 和 Horizon Air Link (HAL)。HVM 是基于 Rundeck 自动化的自动化设备。HAL 是管理设备的资源管理器。随着新版本 Horizon DaaS 9 的发布,如果有新版本可用,则必须更换这两个设备。由于 VMware 一直在创新,因此他们会在每个新版本中添加新功能、脚本和代码库,因此建议在安装新版本的 Horizon DaaS 时确保使用正确的版本。

注意:更新DAAS版本重新部署HVM时,不要忘记将所有 Debian 文件、JSON、latest_rev.txt 和设备模板 OVA 从文件共享中的文件夹传输到 /opt/vmware/hvm/install-upgrade. 共有九个文件。此外,还需要更改 Horizon DaaS的node-manifest.json 文件的权限,确保:

istio 中的 ServiceEntry 是什么 is that service center_SOAP_34

如果需要对Horizon Daas进行热修复,需要将修补程序上载到 Horizon Version Manager 设备,而不是 DaaS 设备上。在Horizon-DaaS-Artifact-Upload项目下执行作业Upload Artifacts to Horizon Version Manager;

更多参看官方文档

5)Horizon DAAS 9.1.1最佳实践

1》大规模部署 Horizon DaaS
以下是构建和扩展 Horizon DaaS 生产部署的最佳做法:

每个租户资源管理器 (RM) 最多支持 18 个租户(建议的最大值为 12 个租户)。
每个租户 RM 仅管理一个 vCenter Server 实例。
vCenter Server 实例最多管理 10,000 个虚拟机,这些虚拟机可位于多个集群中。
当租户需要多个桌面管理器时(租户设备也是桌面管理器),必须将每个 DM 分配给单独的 vCenter 集群。因此,对于具有两个 DM 的大型租户,必须将其分配给两个单独的 vCenter 集群,但它们可由同一租户 RM 管理,该 RM 将负责同时管理这两个集群的 vCenter Server 实例。请牢记有关 vCenter Server 可扩展性的最佳实践(包括使用 VMware App Volumes 进行应用程序生命周期管理的建议)。

示例:一种具有 60 个租户的 Horizon DaaS 生产部署,每个租户都只需要租户设备,并为租户分配了单个容量集合,且每个租户运行的虚拟机数量少于 2,000 个。

对于上述环境,建议的设置为:

数据中心服务提供程序设备对。
服务提供程序连接到管理设备的 vCenter Server。
虽然此 vCenter 仅用于平台管理功能,但它不需要专门用于该任务,可用于其他管理功能。
服务提供程序不直接连接到 vCenter,而是使用 HAL 设备对 vCenter 执行任何操作。
五个租户 RM,每个都管理 12 个租户。
支持租户桌面工作负载、五 (5) 个 vCenter Server 以及集群,集群数量取决于使用的是专用集群还是分区集群。
建议每个 vCenter Server 最多 10,000 个虚拟机。
每个租户设备或桌面管理器最多管理 2,000 个桌面或会话。
对于大型租户,建议使用专属的 vCenter Server 集群。
60 个租户设备对(很可能是 60 个 Unified Access Gateway 对)。
如果其中某些租户需要另一个 DM,可以将这些 DM 分配给现有租户 RM,而不是分配给已指定给同一租户的租户设备的租户 RM。
请记住,建议的每个租户 RM 支持的最大租户数量为 12 个。

更多关于Horizon DAAS 9.1.x版本信息,参看官方发布