목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

구성

네트워크 다이어그램

설정

확인

복제 리더 노드를 확인하는 방법?

재해 복구 등록 후 검증기(vBond) 비밀번호 업데이트

Update Validator(vbond) 비밀번호

재해 복구 등록 후 오버레이에 새 검증기(vBond) 추가

재해 복구 오버레이 업그레이드

시작하기 전에

업그레이드 프로세스

관련 정보

소개

이 문서에서는 자동 데이터 복제를 통해 수동 장애 조치를 활성화하는 Cisco vManage 및 기본/보조 DR(Designated Router)의 상태 저장 특성에 대해 설명합니다.

사전 요구 사항

요구 사항

vManage 3노드 클러스터에 대한 지식이 있는 것이 좋습니다.

재해 복구를 진행하려면 두 개의 별도의 vManage 3노드 클러스터를 구성하고 작동해야 합니다. 활성 클러스터에는 검증자 및 컨트롤러가 온보딩되어야 합니다. DR 사이트에 검증기와 컨트롤러가 있는 경우, DR vManage 클러스터가 아니라 활성 클러스터에서도 온보딩해야 합니다.

Cisco에서는 재해 복구를 등록하기 전에 다음 요구 사항을 충족해야 한다고 권장합니다.

- 전송 VPN(VPN 0)에서 HTTPS를 통해 기본 및 보조 노드에 연결할 수 있는지 확인합니다.

- 보조 설정의 Cisco vSmart Controller 및 Cisco vBond Orchestrator가 기본 설정에 연결되어 있는지 확인합니다.

- Cisco vManage 기본 노드 및 보조 노드에서 동일한 Cisco vManage 버전을 실행하고 있는지 확인합니다.

- VPN 0의 OOB(Out of Band) 클러스터 인터페이스:

- 클러스터 내의 각 vManage 인스턴스에는 VPN 0(전송) 및 VPN 512(관리)에 사용되는 인터페이스 외에 세 번째 인터페이스(클러스터 링크)가 필요합니다.

- 이 인터페이스는 클러스터 내에서 vManage 서버 간의 통신 및 동기화에 사용됩니다.

- 이 인터페이스는 1Gbps 이상이어야 하며 지연 시간은 4ms 이하여야 합니다. 10Gbps 인터페이스를 사용하는 것이 좋습니다.

- 두 vManage 노드는 다음 인터페이스를 통해 서로 연결할 수 있어야 합니다. 레이어 2 세그먼트 또는 레이어 3 라우팅을 통해 제공되어야 합니다.

- 각 vManage에서 이 인터페이스는 GUI에서 클러스터 인터페이스(Administration>Cluster Management- 자체 OOB(Out-of-Band) 클러스터 인터페이스 IP 주소, 사용자 및 비밀번호를 나타냄)로 구성되어야 합니다.

- Cisco vManage 노드가 데이터 센터 전체에서 서로 통신할 수 있도록 하려면 데이터 센터 방화벽에서 TCP 포트 8443 및 830을 활성화합니다.

- 모든 서비스(application-server, configuration-db, messaging server, coordination server 및 statistics-db)가 두 Cisco vManage 노드에서 모두 활성화되었는지 확인합니다.

- Cisco vBond Orchestrator를 비롯한 모든 컨트롤러를 기본 및 보조 데이터 센터 전체에 배포합니다. 이러한 데이터 센터에 분산된 Cisco vManage 노드에서 이러한 컨트롤러에 연결할 수 있는지 확인합니다. 컨트롤러는 기본 Cisco vManage 노드에만 연결됩니다.

- 활성(기본) 및 대기(보조) Cisco vManage 노드에서 다른 작업이 진행 중이 아닌지 확인합니다. 예를 들어, 어떤 서버도 디바이스에 템플릿을 업그레이드하거나 연결하는 중이지 않는지 확인합니다.

- 활성화된 경우 Cisco vManage HTTP/HTTPS 프록시 서버를 비활성화합니다. 외부 서버와의 Cisco vManage 통신에 대해서는 HTTP/HTTPS 프록시 서버를 참조하십시오. 프록시 서버를 비활성화하지 않으면 Cisco vManage는 Cisco vManage 대역외 클러스터 IP 주소에 직접 연결할 수 있는 경우에도 프록시 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 클러스터 간에 자동으로 복제됩니다. 필요한 경우 보조 클러스터에 대한 장애 조치를 수동으로 수행합니다.

구성

네트워크 다이어그램

이 그림에서는 3노드 클러스터를 사용하는 재해 복구 솔루션의 상위 레벨 아키텍처를 보여줍니다.

설정

vManage 재해 복구에 대한 자세한 내용은 이 링크를 참조하십시오.

각 SD-WAN 관리자에 최소 컨피그레이션이 있고 인증 부분이 완료되었다고 가정할 때 두 개의 개별 3-노드 클러스터가 이미 생성됩니다.

- 두 클러스터에서 Administration(관리) > Cluster Management(클러스터 관리)로 이동하고 모든 노드가 준비 상태인지 확인합니다.

DC vManage:

DR-vManage:

- Administration>Disaster Recovery로 이동합니다. Manage Disaster Recovery를 클릭합니다.

- 팝업 창에서 기본 및 보조 vManage의 세부사항을 모두 입력합니다.
표시할 IP 주소는 OOB(Out of Band) 클러스터 인터페이스 IP 주소입니다.

자격 증명은 netadmin 사용자의 자격 증명이어야 하며 DR이 구성된 후에는 삭제되지 않는 한 변경할 수 없습니다.

입력을 마쳤으면 다음을 클릭합니다.

- vBond 컨트롤러의 세부사항을 입력합니다.

vBond 컨트롤러는 지정된 IP 주소에서 Netconf를 통해 연결할 수 있어야 합니다.

입력을 마쳤으면 다음을 클릭합니다.

- Recovery Mode(복구 모드)에서 Manual(수동)을 선택합니다. 자동화 모드는 사용되지 않습니다. Next(다음)를 클릭합니다.

값을 설정하고 저장을 클릭합니다.

- 이제 DR 등록이 시작됩니다. 상태 및 진행 로그를 수동으로 새로 고치려면 새로 고침 버튼을 클릭합니다. 이 프로세스는 최대 20-30분이 소요될 수 있습니다.

확인

- Administration>Disaster Recovery로 이동합니다. 재해 복구 상태 및 마지막으로 데이터가 복제된 시간을 확인할 수 있습니다.

참고: 이 시나리오에서는 랩 환경에 데이터베이스가 작기 때문에 복제가 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

복제 리더 노드를 확인하는 방법?

- 두 클러스터에서 복제 리더 노드를 찾으려면 다음 API를 사용합니다.

https://<vmanage-ip>/data service/entity ownership/tree.

DC 클러스터의 경우:

복제 노드는 node1인 cb87a08e-079e-4394-81c3-e63c36ac22c0입니다. 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:?]

Update Validator(vbond) 비밀번호

Disaster Recovery(재해 복구) 페이지 및 Manage Password(비밀번호 관리)에서 새 vBond 비밀번호를 업데이트해야 합니다.

Administration(관리) > Disaster Recovery(재해 복구) > Manage Password(비밀번호 관리) > Update vBond password(vBond 비밀번호 업데이트).

암호를 업데이트한 후 복제가 성공했는지 확인합니다. 성공적인 복제를 확인한 후에만 장애 조치를 시도합니다.

주의: 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(다운로드 보류 중)과 같은 일시적 상태가 아닌지 확인합니다. 재해 복구를 일시 중지하기 전에 Success(성공) 상태여야 합니다.

- Administration(관리) > Disaster Recoverypage(재해 복구 일시 중지)의 Pause Disaster Recovery(재해 복구 일시 중지)를 사용하여 재해 복구를 일시 중지합니다.

업그레이드 프로세스

이 경우 vManage 클러스터를 20.12.5에서 20.15.2로 업그레이드합니다. 클러스터를 업그레이드하려면 CLI 방법을 사용하십시오.

업그레이드하기 전에 버전 및 복제 상태를 확인하십시오.

재해 복구 일시 중지:

업그레이드 후 모든 서비스가 실행 중인지, 그리고 GUI를 사용하여 모든 vManage 노드(DC 및 DR)에 로그인할 수 있는지 확인합니다.

재해 복구 재개; 복제가 시작되고 복제 상태가 성공으로 표시되어야 합니다.

관련 정보

- https://www.cisco.com/c/en/us/td/docs/routers/sdwan/configuration/ha-scaling/ios-xe-17/high-availability-book-xe/m-disaster-recovery.html

- Cisco 기술 지원 및 다운로드