简介
本文档介绍排除以应用为中心的基础设施(ACI)升级问题的步骤以及在升级过程之前和过程中要遵循的最佳实践。
ACI升级包括更新应用策略基础设施控制器(APIC)软件和交换机(枝叶和主干)。交换机升级通常非常简单,但APIC升级可能涉及一些集群问题。以下是思科建议在开始升级之前准备的一些预检。
升级前
在开始ACI升级之前,请确保执行一些预检以避免任何意外行为。
APIC升级前的工作
- 清除所有故障
ACI交换矩阵状态中存在许多故障,即存在无效或冲突策略,甚至连断开的接口等等。在开始升级之前,了解触发因素并清除它们。请注意, encap already been used
或 Routed port is in L2 mode
可能导致意外中断。升级交换机时,它会从APIC从头下载所有策略。因此,意外策略可能会接管可能导致中断的预期策略。
- 清除VLAN池重叠
VLAN池重叠表示同一VLAN ID是两个或多个VLAN池的一部分。如果同一VLAN ID部署在属于不同VLAN池的多台枝叶交换机上,则这些交换机上的VXLAN ID将不同。由于ACI使用VXLAN ID进行转发,因此发往特定VLAN的流量可能最终位于不同的VLAN或被丢弃。由于枝叶在升级后从APIC下载配置,因此VLAN的部署顺序具有主要作用。因此,这可能导致某些VLAN中终端的中断或间歇性连接丢失。
在开始升级之前,必须检查VLAN ID重叠并纠正它们。建议将一个VLAN ID仅作为一个VLAN池的一部分,并在需要时重新使用VLAN池。
- 确认支持的升级路径
APIC升级涉及从一个版本到另一个版本的数据转换,这是在内部完成的。要成功转换数据,需要注意一些版本兼容性问题。请务必检查思科是否支持从您当前的ACI版本直接升级到您要升级到的新目标版本。有时,您必须经过多跳才能到达目标版本。如果升级到不支持的版本,则可能导致集群问题和配置问题。
Cisco ACI升级指南中始终列出支持的升级路径。
- 备份APIC配置
在开始升级之前,请确保将配置备份导出到远程服务器。如果您丢失了所有配置或升级后出现数据损坏,则此导出的备份文件可用于在APIC上恢复配置。
注意:如果为备份启用加密,请确保保存加密密钥。否则,将无法正确导入包括管理员密码在内的所有用户帐户密码。
- 确认APIC CIMC访问
思科集成管理控制器(CIMC)是远程控制台访问APIC的最佳方式。如果APIC在重新启动后未恢复或进程停滞,则您可能无法通过APIC的带外或带内管理连接到APIC。在此阶段,您可以登录CIMC并连接APIC的KVM控制台以执行一些检查并排除问题。
- 检查并确认CIMC版本兼容性
在开始ACI升级之前,请务必运行与目标ACI版本兼容的思科推荐的CIMC版本。请参阅推荐的APIC和CIMC版本。
- 确认APIC进程未锁定
在APIC中运行的称为设备元素(AE)的流程负责触发APIC中的升级。CentOS智能平台管理接口(IPMI)中存在一个已知的漏洞,可以锁定APIC中的AE进程。如果AE进程锁定,APIC固件升级将不会启动。此过程每10秒查询一次机箱IPMI。如果AE进程在过去10秒内未查询机箱IPMI,则可能意味着AE进程已锁定。
您可以检查AE进程的状态,以了解上次IPMI查询。从APIC CLI输入命令 date
检查当前系统时间。现在输入命令 grep "ipmi" /var/log/dme/log/svc_ifc_ae.bin.log | tail -5
并检查AE进程上次查询IPMI的时间。将时间与系统时间进行比较,以检查上次查询是否在系统时间的10秒窗口内。
如果AE进程在系统时间的最后10秒内查询IPMI失败,您可以重新启动APIC以在开始升级之前恢复AE进程。
注意:请勿同时重新启动两个或多个APIC以避免任何集群问题。
- 检查并确认NTP可用性
从每个APIC,对NTP服务器执行ping操作并确认其可达性,以避免因APIC时间不匹配而出现已知问题。有关此方面的更多详细信息,请参阅本文的故障排除部分。
- 检查APIC运行状况
在开始升级之前,检查并确认集群中APIC的运行状况。运行状况得分255表示APIC是健康的。输入命令 acidiag avread | grep id= | cut -d ' ' -f 9,10,20,26,46
从任何APIC CLI检查APIC运行状况。如果任何APIC的运行状况得分不是255,则不要开始升级。
- 评估新版本的影响
在开始升级之前,请查看目标ACI版本的版本说明,并了解适用于交换矩阵配置的任何行为更改,以避免升级后出现任何意外结果。
- 在实验中进行升级
思科建议在实际生产交换矩阵之前尝试在实验室或测试交换矩阵中进行升级,以熟悉新版本中的升级和行为。这也有助于评估升级后可能运行到的任何问题。
交换机升级前的操作
- 将虚拟端口通道(vPC)和冗余枝叶对置于不同的维护组中
ACI APIC具有检查和延迟vPC对枝叶节点从特定版本及更高版本升级的机制。但是,最好将vPC对交换机置于不同的维护组中,以避免两台vPC交换机同时重新启动。
如果非vPC交换机是冗余的,如边界枝叶交换机,请确保将它们放入不同的端口组中以避免任何故障。
排除升级问题
如果升级停滞或失败,请始终开始排除APIC1故障。如果APIC1升级尚未完成,请勿在APIC2和APIC3中执行任何操作。APIC升级过程是增量的,因此APIC2仅在APIC1完成升级并通知APIC2有关它等内容后才会升级。因此,违反此操作可能会使集群进入损坏数据库的损坏状态,并且可能需要您重建集群。
场景:APIC ID 2或更高版本停滞在75%
在此场景中,您会看到APIC1已成功升级,但APIC2仍然保持在75%。如果APIC1升级版本信息未传播到APIC2或更高版本,则会发生此问题。请注意, svc_ifc_appliance_director
进程负责APIC之间的版本同步。
如何排除故障
步骤 1:确保APIC1能够使用其隧道终端(TEP)IP地址对其余APIC执行ping操作,因为这将确定您是需要从枝叶交换机进行故障排除还是从APIC本身继续进行故障排除。如果APIC1无法ping通APIC2,您可能需要致电技术支持中心(TAC)对交换机进行故障排除。如果APIC1能ping通APIC2,则继续执行第二步。
步骤 2:由于APIC可以相互ping通,因此APIC1版本信息应已复制到对等体,但不知何故被对等体接受。版本信息由版本时间戳标识。您可以从CLI和APIC2 CLI确认APIC1的版本时间戳,等待75%。
在APIC1上
apic1# acidiag avread | grep id=1 | cut -d ' ' -f20-21
version=2.0(2f) lm(t):1(2018-07-25T18:01:04.907+11:00)
在APIC2上
apic2# acidiag avread | grep id=1 | cut -d ' ' -f20-21
version=2.0(1m) lm(t):1(2018-07-25T18:20:04.907+11:00)
如您所见,在本示例中运行版本2.0(1m)的APIC2(18:20:04)的版本时间戳高于运行版本2.0(2f)的APIC1(18:01:04)的版本时间戳。 因此,APIC2安装程序进程认为APIC1升级尚未完成,等待75%。当APIC1的版本时间戳高于APIC2的版本时间戳时,APIC2升级将启动。但是,根据时间差,这可能需要等待很多时间。为了从此状态恢复交换矩阵,您可以打开TAC案例,从APIC1获取故障排除和解决问题的帮助。