简介
本文档介绍Cisco vManage及其主/辅助指定路由器(DR)的状态特性,通过自动数据复制实现手动故障切换。
先决条件
要求
Cisco建议您掌握vManage 3节点群集的相关知识。
两个单独的vManage 3节点群集必须配置且运行正常,才能继续进行灾难恢复。在活动群集上,必须注册验证器和控制器。如果您在DR站点上有验证器和控制器,则这些控制器也必须在活动群集上而不是在DR vManage群集上入网。
Cisco建议在注册灾难恢复之前必须满足以下要求:
- 确保在传输VPN(VPN 0)上通过HTTPS可以访问主节点和辅助节点。
- 确保辅助设置中的思科vSmart控制器和思科vBond协调器连接到主设置。
- 确保Cisco vManage主节点和辅助节点运行相同的Cisco vManage版本。
- VPN 0中的带外集群接口:
- 对于集群中的每个vManage实例,除用于VPN 0(传输)和VPN 512(管理)的接口外,还需要第三个接口(集群链路)。
- 此接口用于集群内的vManage服务器之间的通信和同步。
- 此接口必须至少为1 Gbps,并且延迟为4毫秒或更短。建议使用10 Gbps接口。
- 两个vManage节点必须能够通过此接口相互连接:无论是第2层网段还是通过第3层路由。
- 在每个vManage中,必须在GUI中将此接口配置为集群接口(Administration>Cluster Management — 指示自己的带外集群接口IP地址、用户和密码)。
- 要允许Cisco vManage节点在数据中心之间相互通信,请在数据中心防火墙上启用TCP端口8443和830。
- 确保在两个Cisco vManage节点上启用所有服务(应用服务器、配置数据库、消息服务器、协调服务器和统计数据库)。
- 跨主要和辅助数据中心分发所有控制器,包括思科vBond协调器。确保分布在这些数据中心中的Cisco vManage节点可以访问这些控制器。控制器仅连接到主Cisco vManage节点。
- 确保主用(主要)和备用(辅助)Cisco vManage节点中没有其他操作正在进行。例如,确保没有服务器正在升级模板或将模板附加到设备。
- 如果已启用Cisco vManage HTTP/HTTPS代理服务器,请将其禁用。请参阅HTTP/HTTPS代理服务器,以实现Cisco vManage与外部服务器的通信。如果不禁用代理服务器,Cisco vManage会尝试通过代理IP地址建立灾难恢复通信,即使Cisco vManage带外集群IP地址可直接访问。您可以在灾难恢复注册完成后重新启用Cisco vManage HTTP/HTTPS代理服务器。
- 开始灾难恢复注册流程之前,请导航至主Cisco vManage节点上的Tools > Rediscover Network窗口,并重新发现Cisco vBond Orchestrator。
使用的组件
本文档中的信息基于以下软件版本:
- 经理:20.12.5
- 验证程序:20.12.5
- 控制器:20.12.5
- cEdge:17.12.5
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
灾难恢复提供了管理员触发的故障切换过程。注册灾难恢复后,数据将自动在主要和辅助Cisco vManage群集之间复制。如果需要,您可以手动执行到辅助群集的故障转移。
配置
网络图
此图显示了具有三节点群集的灾难恢复解决方案的高级架构。

配置
有关vManage灾难恢复的详细信息,请参阅此链接。
假设每个SD-WAN管理器具有最低配置并完成认证部分,则已创建两个单独的3节点集群。


- 在两个集群上导航到Administration > Cluster Management,并验证所有节点是否处于就绪状态。
DC vManage:

DR-vManage:




设置值,然后单击Save。
- DR注册现在开始。点击刷新按钮以手动刷新状态和进度日志。此过程可能需要20-30分钟。

确认
- 导航到管理>灾难恢复 以便查看灾难恢复状态以及上次复制数据的时间。
注意:在此场景中,复制仅需要49秒,因为实验室环境有一个小型数据库。但是,复制可能需要几个小时,具体取决于数据库大小。此外,它可能需要几个周期才能成功复制。

验证两个群集中的灾难恢复日志。
DC-vmanage (9a15f979-d613-4d75-97bf-f7d4124bc687 is export ID)
vmanage1:/var/log/nms$ cat vmanage-disaster_recovery.log | grep 9a15f979-d613-4d75-97bf-f7d4124bc687
04-Jul-2025 05:17:08,297 UTC INFO [] [] [DataReplicationManager] (pool-232-thread-1) || Export ID Generated: 9a15f979-d613-4d75-97bf-f7d4124bc687
04-Jul-2025 05:17:58,431 UTC INFO [] [] [DisasterRecoveryAlarmsDAO] (pool-232-thread-1) || AlarmsDAO::addAlarm() - Adding alarm {suppressed=false, component=["Disaster Recovery"], severity="Info", eventname="EXPORT_DATA", message="Primary Successfully Exported", acknowledged=false, active=true, type="Disaster_Recovery", rule_name_display="Disaster_Recovery", uuid="ec133314-7205-4afc-bee3-a4b080fc42f0", update_time=1751606278431, entry_time=1751606278431, values=[{host-name="vmanage1", system-ip="11.11.11.1", dcPersonality="primary", exportSize="22.363 MB", exportDuration="49 secs", exportID="9a15f979-d613-4d75-97bf-f7d4124bc687"}], values_short_display=[{host-name="vmanage1", system-ip="11.11.11.1", dcPersonality="primary", exportSize="22.363 MB", exportDuration="49 secs", exportID="9a15f979-d613-4d75-97bf-f7d4124bc687"}], devices=[{host-name="vmanage1", system-ip="11.11.11.1", dcPersonality="primary", exportSize="22.363 MB", exportDuration="49 secs", exportID="9a15f979-d613-4d75-97bf-f7d4124bc687"}], receive_time=1751606278431}
04-Jul-2025 05:17:58,722 UTC INFO [] [] [DataReplicationManager] (pool-232-thread-1) || Sending the import request to remote server 89.89.89.4 for exportID: 9a15f979-d613-4d75-97bf-f7d4124bc687.
04-Jul-2025 05:17:59,081 UTC INFO [a17a50ae-e6d3-401c-9d34-7c9423a5dd5a] [vmanage1] [DisasterRecoveryRestfulResource] (default task-32) |default| Received request from 89.89.89.1, for token: 9a15f979-d613-4d75-97bf-f7d4124bc687, and file: default_1751001428297.tar.gz
04-Jul-2025 05:21:06,515 UTC INFO [a456da19-9868-42e1-b3e7-9cb7ef3bdb81] [vmanage1] [DisasterRecoveryRestfulResource] (default task-31) |default| Replication status for exportID: 9a15f979-d613-4d75-97bf-f7d4124bc687, is Success
vmanage1:/var/log/nms$
DR-Vmanage
DR-vmanage1:/var/log/nms$ cat vmanage-disaster_recovery.log | grep 9a15f979-d613-4d75-97bf-f7d4124bc687
04-Jul-2025 05:15:23,296 UTC INFO [] [] [DataReplicationManager] (Thread-366) || Payload received for data replication: {replicationDir="/opt/data/disaster_recovery/", filename="default_1751001428297.tar.gz", exportID="9a15f979-d613-4d75-97bf-f7d4124bc687", deviceIP="89.89.89.1", exportTime="1751606278229", exportDuration="49 secs", exportSize="22.363 MB", SwitchOverHistoryNode={lastSwitch=0, reasonForSwitch=null, updatedPrimary="89.89.89.1"}, startTime="1751606228297", sha256sum="06363770a967beec4667f29e5b033de4a538523f34e36d9952ffc893fb0557db"}
04-Jul-2025 05:15:23,298 UTC INFO [] [] [DataReplicationManager] (Thread-366) || destinationURL dataservice/disasterrecovery/download/9a15f979-d613-4d75-97bf-f7d4124bc687/default_1751001428297.tar.gz Saved to File /opt/data/disaster_recovery/default_1751001428297.tar.gz
04-Jul-2025 05:15:24,040 UTC INFO [] [] [DisasterRecoveryAlarmsDAO] (Thread-366) || AlarmsDAO::addAlarm() - Adding alarm {suppressed=false, component=["Disaster Recovery"], severity="Info", eventname="DOWNLOAD_DATA", message="Replication payload successfully downloaded by secondary", acknowledged=false, active=true, type="Disaster_Recovery", rule_name_display="Disaster_Recovery", uuid="94ab4c3a-26d9-4d99-b631-d380313d7f08", update_time=1751606124040, entry_time=1751606124040, values=[{host-name="DR-vmanage1", system-ip="12.12.12.1", dcPersonality="secondary", exportSize="22.363 MB", downloadDuration="00 secs", exportID="9a15f979-d613-4d75-97bf-f7d4124bc687"}], values_short_display=[{host-name="DR-vmanage1", system-ip="12.12.12.1", dcPersonality="secondary", exportSize="22.363 MB", downloadDuration="00 secs", exportID="9a15f979-d613-4d75-97bf-f7d4124bc687"}], devices=[{host-name="DR-vmanage1", system-ip="12.12.12.1", dcPersonality="secondary", exportSize="22.363 MB", downloadDuration="00 secs", exportID="9a15f979-d613-4d75-97bf-f7d4124bc687"}], receive_time=1751606124040}
04-Jul-2025 05:15:24,170 UTC INFO [] [] [DataReplicationManager] (Thread-366) || Downloaded replication file size 23449259 for token 9a15f979-d613-4d75-97bf-f7d4124bc687
04-Jul-2025 05:15:24,171 UTC INFO [] [] [DisasterRecoveryManager] (Thread-366) || Sending rpc message to copyReplicationFile for token 9a15f979-d613-4d75-97bf-f7d4124bc687
04-Jul-2025 05:15:24,216 UTC INFO [] [] [DisasterRecoveryManager] (Thread-366) || Sending message to destinations [Endpoint{ip='89.89.89.5', uuid='c3e303a2-53d0-4525-901b-d96e9ce92875'}, Endpoint{ip='89.89.89.6', uuid='bf45f345-ff2e-48ec-b8fd-0bb92427cc28'}] for token 9a15f979-d613-4d75-97bf-f7d4124bc687
04-Jul-2025 05:15:24,245 UTC INFO [] [] [DisasterRecoveryManager] (Thread-366) || Waiting for copyReplicationFile to complete for token 9a15f979-d613-4d75-97bf-f7d4124bc687
04-Jul-2025 05:18:19,545 UTC INFO [] [] [DataReplicationWorker] (Thread-366) || Successfully Deleted Imported Data Directory /opt/data/disaster_recovery/9a15f979-d613-4d75-97bf-f7d4124bc687
04-Jul-2025 05:18:19,643 UTC INFO [] [] [DisasterRecoveryAlarmsDAO] (Thread-366) || AlarmsDAO::addAlarm() - Adding alarm {suppressed=false, component=["Disaster Recovery"], severity="Info", eventname="IMPORT_DATA", message="Secondary Successfully Imported", acknowledged=false, active=true, type="Disaster_Recovery", rule_name_display="Disaster_Recovery", uuid="1fc80500-f621-4d45-9395-4ed949ddda68", update_time=1751606299643, entry_time=1751606299643, values=[{host-name="DR-vmanage1", system-ip="12.12.12.1", dcPersonality="secondary", exportSize="22.363 MB", importDuration="02 mins 45 secs", exportID="9a15f979-d613-4d75-97bf-f7d4124bc687"}], values_short_display=[{host-name="DR-vmanage1", system-ip="12.12.12.1", dcPersonality="secondary", exportSize="22.363 MB", importDuration="02 mins 45 secs", exportID="9a15f979-d613-4d75-97bf-f7d4124bc687"}], devices=[{host-name="DR-vmanage1", system-ip="12.12.12.1", dcPersonality="secondary", exportSize="22.363 MB", importDuration="02 mins 45 secs", exportID="9a15f979-d613-4d75-97bf-f7d4124bc687"}], receive_time=1751606299643}
04-Jul-2025 05:18:19,707 UTC INFO [] [] [DataReplicationManager] (Thread-366) || Successfully imported data from exportID 9a15f979-d613-4d75-97bf-f7d4124bc687
04-Jul-2025 05:18:19,716 UTC INFO [] [] [DisasterRecoveryManager] (Thread-366) || Sending rpc message to deleteReplicationFile for token 9a15f979-d613-4d75-97bf-f7d4124bc687
04-Jul-2025 05:18:19,849 UTC INFO [] [] [DisasterRecoveryManager] (Thread-366) || Sending message to destinations [Endpoint{ip='89.89.89.5', uuid='c3e303a2-53d0-4525-901b-d96e9ce92875'}, Endpoint{ip='89.89.89.6', uuid='bf45f345-ff2e-48ec-b8fd-0bb92427cc28'}] for token 9a15f979-d613-4d75-97bf-f7d4124bc687
如何验证复制领导节点?
https://<vmanage-ip>/data service/entity ownership/tree。
对于DC群集:
复制节点是cb87a08e-079e-4394-81c3-e63c36ac22c0,它是node1,请通过show control local-properties进行验证。

与DR-vManage类似,复制节点为d78832e5-e6d3-4b6b-bf61-f923cf3c7282。

灾难恢复注册后验证器(vBond)密码更新
如果在灾难恢复注册完成后更改vBond密码,则切换将失败,因为辅助群集上的vBond密码未更新,而辅助群集仍保留旧的vBond密码。
[04-July-2025 6:47:35 UTC] Unshut control tunnel on the standby vManage.
[04-July-2025 6:47:36 UTC] Sleeping for 10 seconds to ensure control tunnel is fully up and functional on the vmanage.
[04-July-2025 6:47:55 UTC] Failed to activate the cluster. Vbond is unreachable
================
04-July-2025 06:47:55,206 UTC ERROR [89b008fa-2c1b-4f78-b093-ed1fa1f06b71] [vManage20-14-DR] [DisasterRecoveryManager] (dr_activate) |default| IP credentials are not reachable through given ip and authentication creds com.viptela.vmanage.server.device.common.NetConfClientException: java.io.IOException: Unable to authenticate for deviceIP 10.66.91.163. With session Nio2Session[local=/10.66.91.173:56704, remote=/10.66.91.163:830]!
at com.viptela.vmanage.server.device.common.NetConfClient.connect(NetConfClient.java:255) ~[vmanage-server-1.0.0-SNAPSHOT.jar:?]
at com.viptela.vmanage.server.device.common.NetConfClient.(NetConfClient.java:114) ~[vmanage-server-1.0.0-SNAPSHOT.jar:?]
更新验证程序(vbond)密码
确保在Disaster Recovery页面和Manage Password下更新新的vBond密码:
Administration > Disaster Recovery > Manage Password > Update vBond password。
确保在更新密码后复制成功。仅在确认复制成功后尝试故障切换。
注意:https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwn19224。

在灾难恢复注册后向重叠添加新验证器(vBond)
不支持在灾难恢复注册后向SD-WAN重叠添加新验证器,因为灾难恢复设置不知道此新验证器信息,因为它在注册期间未更新。
虽然您可以添加验证器,但切换失败。
如果需要添加新验证器,请遵循以下步骤:
1.删除灾难恢复设置。
2.将新验证器添加到SD-WAN重叠。
3.重新配置灾难恢复。
升级灾难恢复重叠
-
使用CLI方法升级主用和备用Cisco SD-WAN Manager。
-
确保Administration > Disaster Recoverypage上的复制状态是稳定的,并且不处于Import Pending、Export Pending或Download Pending等暂时状态。在暂停灾难恢复之前,它必须处于“成功”状态。
-
使用Administration > Disaster Recoverypage下的Pause Disaster Recovery暂停灾难恢复。
升级过程
在本例中,您正在将vManage集群从20.12.5升级到20.15.2。请使用CLI方法升级集群。
在升级之前,请验证版本和复制状态。

暂停灾难恢复:

升级后,确保所有服务都在运行,并且可以使用GUI登录到所有vManage节点(DC和DR)。

恢复灾难恢复;复制开始,复制状态最终必须显示为成功。

相关信息