소개
이 문서에서는 요소 관리자가 독립형 모드로 실행될 때 문제를 해결하는 방법에 대한 요약을 제공합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
사용되는 구성 요소
이 문서의 정보는 Ultra 5.1.x 릴리스를 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.
배경 정보
Ultra-M은 VNF 구축을 간소화하기 위해 사전 패키지 및 검증된 가상화 모바일 패킷 코어 솔루션입니다. OpenStack은 Ultra-M용 VIM(Virtualized Infrastructure Manager)이며 다음 노드 유형으로 구성됩니다.
- 컴퓨팅
- 개체 스토리지 디스크 - 컴퓨팅(OSD - 컴퓨팅)
- 컨트롤러
- OpenStack Platform - 디렉터(OSPD)
Ultra-M 및 관련 구성 요소의 고급 아키텍처는 다음 이미지에 설명되어 있습니다.
UltraM 아키텍처
이 문서는 Cisco Ultra-M 플랫폼에 익숙한 Cisco 담당자를 대상으로 하며, 컨트롤러 서버 교체 시 OpenStack 및 StarOS VNF 레벨에서 수행해야 하는 단계를 자세히 설명합니다.
약어
약어는 다음 문장에서 쓰인다.
VNF |
가상 네트워크 기능 |
EM |
요소 관리자 |
VIP |
가상 IP 주소 |
CLI |
명령줄 |
문제/장애:EM은 Ultra-M Health Manager의 경우와 마찬가지로 이 상태로 끝날 수 있습니다.
EM: 1 is not part of HA-CLUSTER,EM is running in standalone mode
버전에 따라 다르며, 시스템에서 실행되는 EM이 2개 또는 3개일 수 있습니다.
3개의 EM이 구축된 경우, 2개는 작동하고 3번째 1개는 Zookeeper 클러스터를 가질 수 있습니다.그러나 사용되지 않습니다.
2개의 기능 EM 중 하나가 작동하지 않거나 연결할 수 없는 경우, 작동 중인 EM은 독립형 모드로 전환됩니다.
2개의 EM을 구축한 경우, 둘 중 하나가 작동하지 않거나 연결할 수 없는 경우 나머지 EM은 독립형 모드에 있을 수 있습니다.
이 문서에서는 이러한 상황이 발생할 경우 어떤 상황을 확인하고 어떻게 복구하는지 설명합니다.
문제 해결 및 복구 단계
1단계. EM의 상태를 확인합니다.
EM VIP에 연결하고 노드가 다음 상태에 있는지 확인합니다.
root@em-0:~# ncs_cli -u admin -C
admin connected from 127.0.0.1 using console on em-0
admin@scm# show ems
EM VNFM ID SLA SCM PROXY
3 up down up
admin@scm#
여기서 SCM에는 단 하나의 엔트리가 있으며, 이것이 Cisco 노드의 엔트리입니다.
다른 EM에 연결할 경우 다음과 같은 항목이 표시됩니다.
root@em-1# ncs_cli -u admin -C admin connected from 127.0.0.1 using
admin connected from 127.0.0.1 using console on em-1
admin@scm# show ems
% No entries found.
EM의 문제에 따라 NCS CLI에 액세스할 수 없거나 노드를 재부팅할 수 있습니다.
2단계. 클러스터에 참여하지 않는 노드의 /var/log/em에 있는 로그를 확인합니다.
문제 상태의 노드의 로그를 확인합니다.따라서 앞서 언급한 샘플의 경우 em-1/var/log/em/zookeeper 로그를 탐색합니다.
...
2018-02-01 09:52:33,591 [myid:4] - INFO [main:QuorumPeerMain@127] - Starting quorum peer
2018-02-01 09:52:33,619 [myid:4] - INFO [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181
2018-02-01 09:52:33,627 [myid:4] - INFO [main:QuorumPeer@1019] - tickTime set to 3000
2018-02-01 09:52:33,628 [myid:4] - INFO [main:QuorumPeer@1039] - minSessionTimeout set to -1
2018-02-01 09:52:33,628 [myid:4] - INFO [main:QuorumPeer@1050] - maxSessionTimeout set to -1
2018-02-01 09:52:33,628 [myid:4] - INFO [main:QuorumPeer@1065] - initLimit set to 5
2018-02-01 09:52:33,641 [myid:4] - INFO [main:FileSnap@83] - Reading snapshot /var/lib/zookeeper/data/version-2/snapshot.5000000b3
2018-02-01 09:52:33,665 [myid:4] - ERROR [main:QuorumPeer@557] - Unable to load database on disk
java.io.IOException: The current epoch, 5, is older than the last zxid, 25769803777
at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:539)
at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:500)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:153)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:111)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
2018-02-01 09:52:33,671 [myid:4] - ERROR [main:QuorumPeerMain@89] - Unexpected exception, exiting abnormally
java.lang.RuntimeException: Unable to run quorum server
at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:558)
at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:500)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:153)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:111)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
Caused by: java.io.IOException: The current epoch, 5, is older than the last zxid, 25769803777
at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:539)
3단계. 문제의 스냅샷이 있는지 확인합니다.
/var/lib/zookeeper/data/version-2로 이동하여 2단계에서 빨간색으로 표시된 스냅샷이 있는지 확인합니다.
300000042 log.500000001 snapshot.300000041 snapshot.40000003b
ubuntu@em-1:/var/lib/zookeeper/data/version-2$ ls -la
total 424
drwxrwxr-x 2 zk zk 4096 Jan 30 12:12 .
drwxr-xr-x 3 zk zk 4096 Feb 1 10:33 ..
-rw-rw-r-- 1 zk zk 1 Jan 30 12:12 acceptedEpoch
-rw-rw-r-- 1 zk zk 1 Jan 30 12:09 currentEpoch
-rw-rw-r-- 1 zk zk 1 Jan 30 12:12 currentEpoch.tmp
-rw-rw-r-- 1 zk zk 67108880 Jan 9 20:11 log.300000042
-rw-rw-r-- 1 zk zk 67108880 Jan 30 10:45 log.400000024
-rw-rw-r-- 1 zk zk 67108880 Jan 30 12:09 log.500000001
-rw-rw-r-- 1 zk zk 67108880 Jan 30 12:11 log.5000000b4
-rw-rw-r-- 1 zk zk 69734 Jan 6 05:14 snapshot.300000041
-rw-rw-r-- 1 zk zk 73332 Jan 29 09:21 snapshot.400000023
-rw-rw-r-- 1 zk zk 73877 Jan 30 11:43 snapshot.40000003b
-rw-rw-r-- 1 zk zk 84116 Jan 30 12:09 snapshot.5000000b3 ---> HERE, you see it
ubuntu@em-1:/var/lib/zookeeper/data/version-2$
4단계. 복구 단계.
1. EM이 재부팅을 중지하도록 디버그 모드를 활성화합니다.
ubuntu@em-1:~$ sudo /opt/cisco/em-scripts/enable_debug_mode.sh
VM을 다시 재부팅해야 할 수 있습니다(자동으로 재부팅되며 아무 작업도 필요하지 않음).
2. 사육사 데이터를 이동합니다.
/var/lib/zookeeper/data에 DB의 스냅샷이 있는 version-2라는 폴더가 있습니다.위의 오류는 로드 실패를 표시하여 사용자가 제거합니다.
ubuntu@em-1:/var/lib/zookeeper/data$ sudo mv version-2 old
ubuntu@em-1:/var/lib/zookeeper/data$ ls -la
total 20
....
-rw-r--r-- 1 zk zk 2 Feb 1 10:33 myid
drwxrwxr-x 2 zk zk 4096 Jan 30 12:12 old --> so you see now old folder and you do not see version-2
-rw-rw-r-- 1 zk zk 4 Feb 1 10:33 zookeeper_server.pid
..
3. 노드를 재부팅합니다.
sudo reboot
4. 디버그 모드를 비활성화합니다.
ubuntu@em-1:~$ sudo /opt/cisco/em-scripts/disable_debug_mode.sh
이러한 단계를 수행하면 서비스가 문제 EM에 다시 연결됩니다.