NFV의 이해(2) : MANO

반응형

MANO란?

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

 

이번 포스팅에서는 NFV를 구성하는 컴포넌트 중 MANO에 대해서 설명하고자 합니다. MANO (Management And Orchestration)의 약자로 한마디로 NFV 환경에서 리소스와 VNF의 라이프사이클을 관리하는 역할은 하는 관리 컴포넌트입니다. 

 

제가 가장 많이 연구했던 컴포넌트이기도 하고, 해당 컴포넌트와 연동하여 VNF의 모니터링, 장애 복구, 관리 등에 대해서 진행하기도 하였습니다. 본 포스팅은 먼저 MANO 표준 문서인 ETSI GS NFV-MAN 001 v1.1.1 (그림참조 : [1]) 문서를 기준으로 최대한 이해하기 쉽게 설명하고자 합니다. 또한 현재 있는 MANO를 구현한 오픈소스 프로젝트까지 알아보고 이들의 차이점이 무엇인지 분석하고자 합니다. 

 

* 혹 수정 사항이나 추가할 사항 궁금한 점이 있으시면 언제든지 말씀해주시면 반영하고 답변드리겠습니다. 

* 현재 포스팅의 모든 그림(그림 2 제외)의 출처는 [1][2][3] 임을 밝힙니다.

MANO 표준

MANO는 크게 NFVO, VNF, VIM 그리고 카탈로그 등으로 이루어져 있습니다. 해당 컴포넌트들의 대략적인 역할은 앞선 글에서 설명하였으니 참고하시면 될 것 같습니다. 

 

[참고] NFV의 이해(1) https://delightwook.tistory.com/14

 

그럼 NFV 001 문서에서 나타난 NFV-MANO 아키텍처를 기준으로 각 컴포넌트의 역할의 범위와 인터페이스 그리고 디테일한 컴포넌트들이 무엇인지에 대해 확인하겠습니다.

 

그림 1. NFV-MANO 아키텍쳐

앞서 말씀드린 것처럼 NFVO는 리소스뿐만 아니라 NFV 환경 전반적인 관리를 진행하게 됩니다. 만약 VNFM이 VNF 생성에 대한 요청을 받게 되면 NFVO는 이를 VIM에게 VNF 생성이 가능한 만큼의 리소스가 있는지 질의를 보내게 되고 VIM은 이에 대한 피드백을 NFVO에게 보내게 됩니다.

 

해당 결과에 따라 NFVO는 VNFM에게 VNF 생성 가능 여부를 회신하게 됩니다. VNFM은 VNF 생성에 대한 명령을 VIM에게 전달하게 되고, VIM은 이러한 VNFM의 요청에 따라 가상 머신, 크기, 이미지, 네트워크 연결 등에 대해 VNF를 생성하고 구성하기 시작합니다.  그 이후 VNFM은 VNF에 대한 라이프 사이클을 관리합니다.

 

그럼 도대체 NS 카탈로그와 VNF 카탈로그 NFV 인스턴스, NFVI 리소스라고 적혀 있는 컴포넌트들은 무엇일까요? 위에서 언급한 4가지의 컴포넌트 모두 저장소로 생각하시면 될 것 같습니다.

 

그전에 NS란 무엇일까요? NS는 Network Service의 약자로 VNF보다 더욱 큰 논리적인 개념입니다.  그림 2에서는 NS가 무엇인지를 나타낸 그림입니다.  VNFC들은 서로 연결되어있고 VNF로 묶여있습니다. 이러한 VNF들이 모여 하나의 NS를 이루게 됩니다. 따라서 NS는 하나의 네트워크 서비스를 제공하기 위한 여러 가상화 네트워크 기능들의 논리적인 그룹이라고 볼 수 있습니다.

 

그림 2. NS,VNF,VNFC의 관계

NS에 따라서 VNF가 1개로 구성될 수도 있고, 수십, 수백 개의 VNF가 하나의 NS를 구성하는 경우도 있을 수 있습니다.  이는 모두 논리적인 개념으로 실제 MANO 오픈소스 프로젝트에서는 표준에 따라 해당 개념을 모두 구현한 경우는 드물거나 다르게 구현한 경우가 많습니다.

 

자 그럼 다시 본론으로 돌아가서, NS, VNF 카탈로그, NFV 인스턴스, NFVI 리소스는 무엇일까요? 다시 말씀드리지만 모두 저장소입니다. 그럼 무엇을 저장하는 컴포넌트일까요? 

 

간단하게 말해서 먼저 NS 카탈로그는 NSD(Network Service Descriptor), 네트워크 링크 정보, VNF들 간의 연결 정보 등을 저장해놓는 저장소입니다. 간단하게 말해서 이 정도이고, 표준 문서에서는 더 자세하게 다루고 있으므로 이는 문서를 참고하시는 게 좋을 것 같습니다. 그럼 Descriptor란 무엇일까요? Descriptor는 NS 생성에 대한 일종의 주문서입니다. 

 

예로 내가 NS를 만들건대 VNFC를 각가2개씩 가지는 VNF 4개랑 이들은 VNFC들은 리눅스 OS를 사용하게 하고 CPU는 2 코어 등등 NS를 구성하기 위해 VNFM에게 전달하는 주문서를 의미합니다. 여기에는 VNF들 간의 연결 정보(포워딩 그래프)등도 포함됩니다. 

 

마찬가지로 VNF 카탈로그에는 VNFD, 소프트웨어 이미지, 파일 등이 저장됩니다. 현재까지 구현된 바로는 NSD와 VNFD는 크게 차이가 없고 특정 MANO 프로젝트에서는 VNF와 VNFC들 사이에서의 네트워크 정보를 명시하고 이들을 연결하는 수준까지 되어 있습니다.  따라서  VNF 생성 시 NSD보다 VNFD라는 것이 더욱 익숙해지실 것 같습니다. 

 

NFV 인스턴스는 VNF들의 정보를 저장하고 있는데, 실행 주기 동안의 상태 정보 등을 모두 저장하고 있습니다. 한 예로 VNF를 생성하게 되면, 생성, 초기화, 온보딩 등의 상태를 가지게 되는데 이러한 정보를 VNF 각각 매핑시켜서 저장하고 있습니다. 

 

NFVI 리소스 또한 사용 중인 리소스나 사용 가능한 리소스 혹은 특정 프로젝트를 사용하여 필요한 리소스를 미리 예약해두는 등 리소스의 사용 출처에 대한 상태를 저장하고 있는 저장소입니다. 

 

대략적인 NFV의 큰 구조는 분석을 완료하였고, 각 컴포넌트들 사이에 정해진 인터페이스는 어떤 데이터가 어떤 범위에서 전달되는지도 문서로 정해져 있습니다. 그중에서 VNF-EM-MANO 사이의 레퍼런스 포인트와 데이터 모델을 예전에 분석한 것을 토대로 설명드리겠습니다. 

 

먼저 VNF-EM-MANO사이의 인터페이스 이름은 Ve-VNFM이라고 합니다. 해당 인터페이스의 정의는 ETSI SOL002 (그림참조 : [2])와 IFA008 (그림참조 : [3])에 나와 있습니다. 참고로 모든 인터페이스는 SOL, IFA 번호에 따라 모두 정의되어 있으니 필요한 컴포넌트 사이의 정보가 필요한 경우 찾아보시면 될 것 같습니다.

 

그림 3. VNF 초기화 워크플로우 

그림 3에서는 SOL-IFA 문서에 무엇을 다루는지 설명드리기 위해 VNF 초기화 예입니다. EM에서 VNFM에게 VNF 식별자 생성을 요청하게 되면 VNFM은 VNF를 생성하고 정보 등을 응답하게 됩니다. 이처럼 SOL-IFA 문서는 어떠한 과정으로 VNF 생성이 이루어지는데, 또 그러한 데이터의 형식은 어떠한지를 구체적으로 설명하고 있습니다. 원하는 인터페이스의 표준이 궁금하시다면 꼭 참고하시기 바랍니다. 

 

그림 4. SOL 002 문서에서 Restful protocol 예 

그림 4에서는 SOL 002 문서에서 명시되어 있는 Restful API를 정의한 표입니다.  마찬가지로 HTTP 메서드 형식과 리소스의 URI가 모두 정의되어 있습니다. NFV 환경에서 구현할 때에는 꼭 이 SOL-IFA 문서를 참조하여 표준 인터페이스를 따르는 개발이 필요합니다. 

 

결론

이번 포스팅에서는 NFV의 MANO에 대해 표준을 기준으로 여러 컴포넌트에 대해 알아보았고, 또한 구현 시 많이 참조하게 되는 표준 문서인 SOL-IFA 문서를 분석하였습니다. 구체적으로 SOL-IFA 문서에 대해 분석하기보다는 본인이 필요한 파트의 표준 문서를 이렇게 확인하시면 될 것 같다는 것을 말씀드리고자 하였습니다. 

 

아무쪼록 부족한 글이었지만, 읽어주셔서 감사합니다. 혹 더 필요하신 내용이나 수정이 필요한 내용은 말씀 주시면 즉시 반영하도록 하겠습니다. 감사합니다. 

 

인용글

[1] ETSI GS NFV-MAN 001 v1.1.(2014-12) : https://www.etsi.org/deliver/etsi_gs/NFV-MAN/001_099/001/01.01.01_60/gs_nfv-man001v010101p.pdf

[2] ETSI GS NFV-SOL 002 v2.3.1(2017-08) : https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.03.01_60/gs_NFV-SOL002v020301p.pdf

[3] ETSI GS NFV-IFA 008 v2.1.1(2016-10) : https://www.etsi.org/deliver/etsi_gs/NFV-IFA/001_099/008/02.01.01_60/gs_NFV-IFA008v020101p.pdf

업데이트로그

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

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

 

반응형

댓글

Designed by JB FACTORY