오픈스택 연구하기 : NFV Project Tacker

반응형

오픈스택 연구하기(2) : NFV Project Tacker

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

 

본 포스팅에서는 오픈스택 NFV project인 Tacker에 대해 알아도록 하겠습니다. Takcer는 제가 NFV 환경에 대해 연구 할때 가장 많이 사용했던 프로젝트입니다. 연구 결과 도출도 빠르고 비교적 필요한 기능도 어느정도 구현 되어있어서 빠르게 설계를 검증하기도 편리했던 것 같습니다.

 

오픈스택 NFV 프로젝트인 Tacker는 2015년에 5월 오픈스택 밴쿠버 서밋에서 발표되었습니다. Tacker는 오픈스택 정식 프로젝트로 VNFM, NFVO 그리고 VNFD와 같이 ETSI 표준을 구현하는 프로젝트로 해를 거듭해가면서 여러 내용들을 꾸준하게 업데이트 해갔습니다. 

 

초반에는 모니터링과 같은 기능을 시작해서 SFC,Multi-Site와 같은 주요 특징들을 구현해 나가기 시작하였고 현재는 오픈스택에서 어느정도 안정적인 NFV 프로젝트라고 할 수 있습니다. 

 

Architecture

Tacker의 구체적인 아키텍쳐를 보기에 앞서서 Tacker와 오픈스택 간의 관계를 먼저 확인하는 것이 중요할 것 같습니다.  

 

그림 1. Tacker- HEAT - Openstack 간의 관계도

그림 1에서는 Tacker-Heat-Openstack 간의 관계도를 나타냅니다. Tacker는 기본적으로 VNFD를 작성하는데, 이들의 정보는 VNFM, NFVO를 지나 Tosca-translate 라이브러리에 의해 Heat 템플릿으로 변형 됩니다. 한마디로 VNFD에서 Heat 템플릿으로 변환하는 과정을 거치고 그러한 과정에서 VNFM,NFVO은 VNFD를 보고 각자의 역할 을 수행하게 됩니다.

 

그런 다음 Heat Client 라이브러리를 통해 Heat 템플릿을 Heat게 전달하게 되고 Heat는 이를 오픈스택 프로젝트들에게 이러한 명령을 수행을 지시합니다. 한마디로 VNF가 요리면, Heat는 주방장이고 각 프로젝트는 그 아래에서 자신의 요리 파트를 담당하는 요리사라고 할 수 있습니다.

 

그림 2. 오픈스택 Tacker 구조

그림 2에서는 오픈스택 Tacker 구조를 나타냅니다. 해당 그림을 통해 실제 Tacker를 구성하는 모듈과 기능을 한 번 알아보도록 하겠습니다.  오픈스택의 Web UI 인터페이스를 제공하는 Horizon과 CLI를 통해 Tacker에서 제공하는 기능들을 사용할 수 있습니다. Web 인터페이스 혹은 CLI를 통해 원하는 동작을 요청하면 API를 통해 Tacker에게 전달 되게 됩니다. 그 뒤 각각의 컴포넌트들은 VNFD에 따라 여러 동작을 수행하게 됩니다. 한 예로 만약 VNFD에 모니터링과 관련 된 정책을 명시하게 되면, VNFD를 읽어들이고 순서에 맞게 데이터를 처리 한 뒤 모니터링 드라이버를 호출하여 추가 액션을 취하게 됩니다.

 

오픈스택 Tacker는 Multi-Site의 구조를 가지게 됩니다. Single-Site는 하나의 오픈스택이라고 생각하시면 됩니다. 따라서 Tacker 여러개의 오픈스택에 걸쳐 VNF를 배포하고 관리할 수 있다는 이야기가 됩니다. 이는 ETSI 구조상 VIM은 여러개가 될 수 있기 때문에 하나의 MANO로 여러 VIM을 관리하고 VNF를 조정할 수 있게 됩니다.

 

다만 제 경험상 여러개의 VIM에 VNF를 배포할 수 있으나 이후의 관리가 어려웠습니다. 예를들어 A,B,C 사이트에 모두 VNF를 각각 배포시키면 Tacker를 통해 구체적으로 VNF를 확인 할 수 있는것이 아니라, 자세한 내용은 각 사이트에 접근해서 진행해야 합니다. 한마디로 멀티사이트 환경에서는 아직까지 배포/삭제 정도의 라이프사이클 기능만을 가집니다. 

 

# 해당 글은 추후 VNF를 위한 TOSCA 분석에 대해 추가될 예정입니다.

 

결론

이번 포스팅에서는 Tacker 구조에 대해 알아보았습니다. Tacker는 오픈스택의 NFV 프로젝트이기도 하면서 NFV 환경에서의 MANO의 역할이 잘 구현되어 있는 프로젝트입니다. 아마 연구하시는 학생분들께 많이 도움 되는 프로젝트가 아닐까합니다.  

 

감사합니다. 

 

인용글

[1] Tacker Wiki : https://wiki.openstack.org/wiki/Tacker

업데이트로그

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

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

 

반응형

댓글(0)

Designed by JB FACTORY