[오픈스택 개발] 엣지클라우드 장애원인분석 시스템 개발

반응형

엣지클라우드 장애 원인 분석 시스템 개발

안녕하세요 김민욱입니다.

 

이번 포스팅에서는 엣지 클라우드 장애 원인 분석 시스템 개발에 대한 내용을 말씀드리고자 합니다. 가입자에 근접한 네트워크 엣지에서 서비스를 제공하는 엣지 클라우드는 5G에 대한 초 저지연의 속도를 이루기 위한 중요한 기술로 떠오르고 있습니다. 엣지 클라우드는 지리적으로 가입자와 가까운 곳에 위치하면서 서비스를 제공하기 때문에 실질적으로 응답 신속성이 높아지며, VR/AR과 같은 트래픽이 높은 컨텐츠를 제공할 수 있게 됩니다.

 

또한 기존 중앙 클라우드 방식으로 트래픽이 중앙으로  몰리게 되면서 발생하는 여러 문제점을 엣지 클라우드로 인한 트래픽 분산으로 해결할 수 있게 됩니다. 이러한 엣지 클라우드는 현재 ETSI를 비롯하여 많은 표준 기관에서 표준 문서를 제정하였고 [1], 오픈소스 프로젝트 등에서도 다양한 연구가 진행 중입니다.

 

이처럼 관리해야할 수가 많아지는 클라우드 수가 증가함에 따라 이에 대한 안정성을 확보하기 위해서는 장애 원인 분석 기능이 기본적인 기반 환경으로 필요할 수 있습니다.  따라서 기존처럼 중앙 클라우드 방식에서만 적용되어 있는 장애 원인 분석 기능을 엣지 클라우드 환경으로 확장시키기고 다수의 엣지 클라우드에서 발생하는 여러 장애를 식별하고자 합니다. 

 

[GITHUB]     : https://github.com/delightwook/EdgeCloudRCA

Architecture 

이번 설계에서는 엣지 클라우드 장애 원인 분석 설계를 위해 여러 가지 프로젝트들 중 오픈스택 환경에서 구현하기 위하여 오픈스택 Vitrage를 사용하고자 합니다. 다른 RCA 프로젝트들은 다른 포스팅에서 진행하도록 하겠습니다. 


그림 1. 엣지 클라우드 장애 원인 분석 기능 설계 

그림 1에서는 엣지 클라우드 장애 원인 분석 기능의 설계 구조를 나타냅니다. 구조를 설명하기에 앞서 그럼 기존의 방식을 똑같이 엣지 클라우드에 적용했을 경우에는 무슨 차이가 있을 까요? 기존 방식의 경우에는 엣지 클라우드를 관리하는 중앙 클라우드에 RCA 트리를 구성하는 RCA 엔진과 트리에 대한 시각화를 담당하는 RCA 시스템으로 구성됩니다. RCA 엔진에 포함되어있는 데이터 소스 드라이버를 통해 각 엣지의 리소스를 중앙으로 수집합니다. 이런 구조는 클라우드의 컨트롤 노드에서 컴퓨트 노드 간 정보를 수집하는 방식과 동일하므로 수집이 빈번하게 되어 트래픽이 중앙으로 과도하게 증가하게 됩니다.

 

그럼 다시 그림 1로 돌아가서 엣지 클라우드 환경에서는 하나의 중앙 클라우드와 여러 개의 엣지 클라우드 구조가 될 수 있습니다. 따라서 엣지 클라우드에는 모두 경량화된 컨트롤 노드의 기능이 들어가 있기 때문에 RCA 엔진과 함께 운용이 가능합니다. 따라서 RCA 엔진을 경량화시켜서 엣지 클라우드의 로컬 RCA 엔진으로 놓습니다.  그 뒤 리소스( 하드웨어, 가상 머신 등) 정보는 엣지에서 로컬 하게 수집하여 RCA 트리 구조로 만든 뒤 이를 중앙으로 보내게 됩니다. 중앙에서는 이를 하나의 전체 RCA 트리로 구성하게 됩니다. 이렇게 전체 엣지 클라우드의 RCA 트리를 구성하는 시스템이 그림 1의 엣지 클라우드 중앙 RCA 시스템입니다. 

 

엣지 클라우드 중앙 RCA 시스템을 구성하는 각각의 컴포넌트의 역할은 다음과 같습니다. 

 

 * ConfReader

  - 각 엣지에 접근하기 위한 인증 정보를 파일로부터 읽어 들임

 * Authentication

  - 각 엣지에접근할 수 있는 인증된클라이언트 생성

 * GatherEdgeRCA / Alarm / Template

  - RCA, 알람,알람, 상관관계 템플릿에 대한 정보를 각 엣지에게 요청 후 리스트 구성

 * GahterEdgeTree

  - 각 엣지 클라우드로부터 구성된로컬 트리를 수집

 * EntireTreeConfiguration

  - 수집된 로컬 트리를 계층적 장애 원인 분석 트리로 구성

 

 

그림 2. 엣지 클라우드 RCA 시스템 구현 구조

그림 2에서는 엣지 클라우드 RCA 시스템의 실제 구현 구조를 나타내었습니다. 먼저 엣지 클라우드 1,2,3을 구성하기 위해서 경량화 된 오픈스택을 각각 구성하게 됩니다. 물론 하드웨어는 서버 급으로 어느 정도 실험에 원활한 진행을 위해 충분한 리소스를 사용하였습니다. 로컬 RCA 엔진은 오픈스택 Vitrage의 엔진으로 구성하였습니다. 각 엣지의 인프라, 가상머신 등에서 발생하는 장애 이벤트 수집을 위해서 오픈소스 모니터링 툴인 Zabbix를 사용하였습니다. Vitrage는 Zabbix로 부터 알람 이벤트를 수집하게 됩니다. 주기적으로 각 엣지 클라우드의 Vitrage 엔진들은 자신들이 가지고 있는 리소스(컴퓨트 노드, 가상머신,네트워크 등) 정보를 주기적으로 모으고 하나의 로컬 트리로 만들어 냅니다. 이를 중앙에서 요청 시, 로컬 트리를 전달하고 중앙 RCA 시스템은 개발한 알고리즘에 따라 트리를 구성하는 하나의 구성요소들을 인덱스 순서에 맞게 이를 재구성해 냅니다. 

 

그림 3. 엣지 클라우드 RCA 트리 수집 예

그림 3에서는 RCA 트리 수집의 예를 나타냅니다. RCA 트리는 상하 관계에 따라 장애 원인을 밝혀 내는데, 각각의 엣지 클라우드 들은 자신이 가지고 있는 로컬에서 발생하는 모든 상황과 리소스를 자기의 지역만의 로컬 트리로 만들고 이를 중앙으로 보내게 됩니다. 이에 따라 그림 3처럼 하나의 트리로 취합되게 됨으로써 관리자 입장에서는 전체 트리를 보게 되면 어느 엣지의 어느 리소스에서 문제가 발생했는지 충분히 식별 가능하게 됩니다. 

 

구현 결과 및 데모 

사실 RCA라는 개념이 생소하기도 하고 설계와 이렇게 구현을 했다라고만 보면 실제 모습이 어떤지 상상이 안 가기도 할 것 같습니다. 제 생각에는 아직 나와있는 오픈소스 RCA 프로젝트들은 장애 원인 분석이라기보다는 시각화 쪽에 가까운 것 같습니다. 분석은 자동적으로 되어야 하는 건데 템플릿을 기반으로 시각화해주기 때문입니다. 어디까지나 제 생각입니다. 아무튼 그래서 실제 UI에서 보이는 모습과 위에서 수집 예에서 보여드렸던 트리 구조 예를 한 번 비교해보고자 합니다. 

 

그림 4. 엣지 클라우드 RCA 트리 예
그림 5. 실제 구현 모습

그림 4에서의 예와 같이 실제 구현 모습도 비슷한 모습을 보여주고 있습니다. 각각의 엣지로부터 수집한 로컬 RCA 트리를 지금 보시는 엔티티 그래프에서 하나로 취합해 전체 엣지 클라우드에서 발생하는 장애와 상황을 파악할 수 있습니다. 참고로 노란색 종모양이 자빅스로부터 가져온 장애 알람이고, 파란색 종 알람이 그로 인해 발생한 결과 알람입니다. 따라서 노란색은 원인이고 파란색은 결과가 됩니다.

 

그림 6. 워크플로우

중앙 RCA 시스템의 컴포넌트는 그림 6과 같은 워크플로우를 가지게 됩니다. 먼저 confread는 각 엣지에 접근하기 위한 인증정보가 담긴 conf 파일을 읽어오고 인증 요청을 위해 Authentication 컴포넌트에게 전달합니다. 이는 각 엣지 클라우드에 잇는 인증 프로젝트인 keystone에게 보내지고 인증 정보를 받게 됩니다. GatherEdgeComponent는 앞에 인증 프로젝트가 받아온 토큰을 가지고 로컬 트리를 보내달라는 요청을 하게 됩니다. 보내 온 로컬 트리는 EntireTree Configuration 컴포넌트가 개발한 알고리즘에 따라 인덱스를 기준으로 트리를 조정하고 시각화하게 됩니다. 

 

추가적으로 위에서  ConfReader는 각 엣지에 접근하기 위한 인증정보를 읽어 드린다고 말씀드렸습니다. 아무래도 직접 보여드리는 편이 좋을 것같아서 conf 파일을 작성하고 어떻게 로컬로부터 읽어온 엣지 클라우드 트리가 conf 파일을 통해 전체 트리로 구성되는지 데모를 통해 확인 하겠습니다. 

 

 

동영상 1. conf 파일 구성 데모

 

결론

이번 포스팅에서는 엣지 클라우드의 장애 원인 분석 시스템에 대하여 말씀드렸습니다. 해당 개발은 사실 굉장히 재미있게 개발하기도 했고 시각적으로 효과도 뛰어났다고 생각이 들어서 무척 유익한 개발 과정들이었다고 생각합니다. 장애 원인 분석이라는 타이틀을 달고 있지만 무엇보다 수많은 엣지들의 리소스와 상태, 장애를 한눈에 파악하는데 유용하다고 생각됩니다. 혹 궁금한 사항이 있으시다면, 언제든지 문의주시면 답변드리겠습니다. 감사합니다.

인용글

[1] ETSI MEC : https://www.etsi.org/technologies/multi-access-edge-computing

업데이트로그

------------------------------------------------------------------------------------------------------------------------------------

해당 글은 스스로 연구한 내용을 통한 주관적인 이해를 바탕으로 작성 되었습니다. 수정 할 부분이 있거나, 다른 의견이 있으시다면 언제든지 말씀해주시면 반영하도록 하겠습니다. 읽어 주셔서 감사합니다. 끝으로 불법으로 복제하는 것은 금합니다.

 

반응형

댓글

Designed by JB FACTORY