簡介
本文檔介紹Cisco vManage及其主/輔助指定路由器(DR)的狀態性質,通過自動資料複製實現手動故障切換。
必要條件
需求
思科建議您瞭解vManage 3節點群集。
必須配置兩個獨立的vManage 3節點群集並使其正常運行,才能繼續進行災難恢復。在活動群集上,必須安裝驗證器和控制器。如果您在DR站點上有驗證器和控制器,則這些控制器也必須在活動群集上而不是在DR vManage群集上被登入。
思科建議在註冊災難恢復之前,必須滿足以下要求:
- 確保在傳輸VPN(VPN 0)上通過HTTPS可以訪問主節點和輔助節點。
- 確保輔助設定中的Cisco vSmart控制器和Cisco 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節點上啟用所有服務(應用伺服器、配置資料庫、消息伺服器、協調伺服器和統計資訊資料庫)。
- 在主資料中心和輔助資料中心之間分發所有控制器,包括Cisco 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 Disaster Recovery的詳細資訊,請參閱此鏈接。
假設每個SD-WAN管理器具有最低配置且認證部分已完成,則已經建立了兩個單獨的3節點群集。


- 在兩個群集上導航到Administration > Cluster Management,並驗證所有節點是否處於就緒狀態。
DC vManage:

DR-vManage:

- 導覽至Administration>Disaster Recovery。按一下Manage Disaster Recovery。



設定值,然後按一下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)密碼
確保在「災難恢復」頁面和「管理密碼」下更新新的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管理器。
-
請確保Administration > Disaster Recovery頁面上的複製狀態是穩定的,並且不處於Import Pending、Export Pending或Download Pending等暫時狀態。暫停災難恢復前必須處於「成功」狀態。
-
使用Administration > Disaster Recoverypage下的Pause Disaster Recovery暫停災難恢復。
升級程式
在這種情況下,您正在將vManage群集從20.12.5升級到20.15.2。請使用CLI方法升級群集。
升級之前,請驗證版本和複製狀態。

暫停災難恢復:

升級後,確保所有服務都在運行,並且可以使用GUI登入到所有vManage節點(DC和DR)。

恢復災難恢復;複製開始,複製狀態最終必須顯示為成功。

相關資訊