AWS HA vSocket 故障排除

概览

本指南提供了一个详细的故障排除框架,用于解决在部署 AWS vSocket 高可用性 (HA) 期间遇到的常见问题。 无论是手动部署还是通过 AWS Marketplace 部署,这些步骤旨在帮助有效识别和解决潜在问题。

症状

AWS vSocket HA 部署的常见问题可能包括:

  • HA 切换失败
    • 来自 vSocket WebUI 的 HA API 测试失败。
    • HA 切换失败导致流量未被转发到次要的 vSocket。
  • HA 状态未就绪
    • CMA 显示站点的 HA 状态为“未就绪”

可能原因

HA 部署失败通常是由于以下原因引起的:

  • 在 AWS 中使用非公共 DNS。
  • 管理接口缺乏互联网访问。
  • IAM 角色配置错误。
  • AWS 中的安全组和路由设置过于严格。
  • 无法将适当的网络接口分配到 LAN 路由表。
  • LAN 连接性问题。

问题故障排除

重要

重要:开始故障排除之前,请确保所有 AWS HA vSocket 部署的先决条件都已得到验证。 请参阅手动部署 AWS vSocket 站点从 AWS Marketplace 部署 vSocket 站点配置 AWS vSocket 的 HA

故障排除 HA 切换失败

如果流量在切换期间未路由到次要 vSocket,请考虑以下故障排除步骤:

运行 HA API 测试

  • 从 vSocket WebUI 运行 API 测试工具以测试两个 vSocket。
  • 此工具验证与 AWS 的 API 调用是否可以成功进行。
  • 此处可以看到与权限或路由表更新相关的任何错误。

检查 AWS DNS 配置

  • 验证关联 VPC 是否配置了默认的AWS DNS 服务器。 
  • 要检查 AWS DNS 配置,请参阅修复 DNS 配置问题
  • 如果配置了自定义 DNS 服务器(例如,私有 DNS 服务器),请确保其可以解析公共域名。 验证其可以解析由 API 使用的完全限定域名 (FQDN) ec2.<region>.amazonaws.com(例如,ec2.us-east-1.amazonaws.com),。
  • 即使配置了默认 AWS DNS 服务器,与 MGMT 接口关联的安全组也应允许对 8.8.8.8 和 8.8.4.4 的 DNS 请求。

验证 LAN 路由表

  • 为了将流量路由到主 vSocket,AWS 将当前主 vSocket 的 LAN 网络接口分配到 LAN 路由表。
  • 前往VPC > 路由表并选择 LAN 路由表。 在路由标签下,验证主 vSocket 的 LAN 网络接口是默认路由的网关 (目标)。 如果不是,请继续后续步骤。
  • 请注意,如果在切换期间未更改目标网络接口卡,则手动修改 LAN 路由表可能是一个快速的解决方法。

验证 IAM 角色

  • AWS vSocket 部署期间,HA IAM 角色被创建并与主要和次要 vSocket 关联。
  • 在每个实例的详细信息页面下,确认分配了正确的 IAM 角色。
  • 点击 IAM 角色链接,并在权限标签下,验证 IAM 策略是否包含正确的声明,如下所示。

注意: 如果缺失 IAM 角色,一旦角色被添加,必须重启 sockets 以使添加的角色生效。

验证 IMDS 设置

  • 确保两个 vSocket 使用匹配的 IMDS 设置(可选或必填)。 欲了解更多信息,请查看AWS 文档

  • 从 vSocket 版本 20.0.18221 开始,支持 IMDSv2。
  • 要修改 IMDS 设置,选择实例,然后在操作下点击实例设置 > 修改实例元数据选项

验证网络安全组。

  • 确保网络安全组未阻止到管理接口的出站流量。
  • EC2 > 网络接口下,找到与管理接口相关联的安全组。
  • 验证安全组的出站规则是否允许端口 80、443 和 53。 在这种情况下,所有出站流量均被允许。

验证 MGMT 接口的互联网流量路由。

  • 如果 MGMT 接口流量通过 AWS 中的第三方防火墙进行路由,请检查是否允许 UDP/53、TCP/80 和 TCP/443 出站连接。
  • 在网络接口页面上,点击 MGMT 接口的子网 ID。
  • 在子网页面上,选择路由表标签。 下图显示了指向 Internet 网关的默认路由,因此防火墙未阻止流量。
  • 打开相关的路由表并验证所有 MGMT 子网是否被列为相关联的子网。 在双可用区的情况下,将存在两个 MGMT 子网,每个 vSocket 一个,如为次要 vSocket 局域网接口创建子网中所述。
  • 在 VPC 的资源地图标签上,所有关联的子网及其路由配置都以视觉方式呈现,便于参考。
  • 确认弹性IP已关联到MGMT接口。 这可以从实例的网络选项卡中看到。 MGMT接口可以通过其设备索引0来识别。 WAN和LAN接口应分别与设备索引1和2关联。

检查CloudTrail日志

  • 启用AWS CloudTrail日志记录API调用到AWS,以调试HA故障转移期间LAN路由表的修改失败。
  • 您可以按照过程创建一个日志,定义存储日志的S3存储桶,并选择包括API活动的管理事件。 请参阅创建日志

 

排查HA状态未就绪问题

如果CMA显示HA状态未就绪并且两者vSocket都已上线运行,则两者vSocket将承担主控角色(分脑情况)。 这可能是由于以下原因:

  • 两个vSocket运行不同的固件版本
  • HA保持活动消息未到达次要vSocket

建议查看两者vSocket的WebUI页面以确认每个vSocket的HA状态。 如果主控和备用vSocket都处于主控角色,则会出现分脑情况。 WebUI将在主要监控页面的顶部显示当前角色。

检查固件版本

为了满足兼容版本标准,两者vSocket必须运行相同的主要版本,例如 v17.xx.yy 或 v18.xx.yy。vSocket在首次部署后执行初始升级。 如果其中一个vSocket未能升级,则必须对该问题进行故障排除。 提交支持工单以报告该问题。

检查HA保持活动

保持活动数据包使用AWS vSocket的UDP/20480端口,将仅从主控vSocket发送到备用vSocket。 当两个vSocket都有主控角色时会出现分脑情况,这可能由于vSocket之间的LAN连接性问题引起,导致HA保持活动消息未能到达次要vSocket。 

运行以下检查以确认LAN连接性:

  • 检查网络安全组是否正在阻止UDP/20480端口。 快速检查NSG规则的方法是转到AWS中的每个LAN网络接口并检查入站和出站规则,如检查网络安全组是否正在阻止出站流量中所述。
  • 确认两者LAN接口已关联到不同的LAN子网。
  • 从两者vSocket的WebUI中运行数据包捕获,并确定次要vSocket是否接收到主要发出的保持活动消息。

解决发现的问题

修复DNS配置问题

  • 要修复DNS配置问题,请检查AWS默认DNS服务器是否已为VPC配置。
  • 在VPC详细信息中,找到为其配置的DHCP选项集
  • 打开DHCP选项集,并验证已定义的域名服务器为AmazonProvidedDNS。
  • 无法更改现有的域名服务器。 为此,创建一个新的DHCP选项集,该选项集将默认使用AmazonProvidedDNS。

注销并重新部署AWS vSocket

  • 如果在执行了上述所有故障排除步骤后,HA故障转移仍继续失败,则可以注销并重新部署一个或两个vSocket。 请参阅重新部署高可用性vSocket站点
  • 在重新部署vSocket之前,重要的是要删除虚拟机,但保留网络接口、相关的公共IP和IAM角色。
  • 此外,请记得通过选择vSocket实例 > 安全性 > 附加IAM角色并分配AWS-HA角色,将正确的IAM角色重新附加到vSocket上。

 

向Cato支持提交案例

提交支持工单,同时附上上述故障排除步骤的结果。 请在工单中包括以下信息:

  • 问题的清晰描述,包括任何错误消息。
  • VPC中的DNS配置。
  • API测试结果。
  • LAN路由表和已配置的IAM角色的截图。
  • 如果可能,请附上故障转移失败时的CloudTrail日志文件。

 

这篇文章有帮助吗?

0 人中有 0 人觉得有帮助

0 条评论