'Logical Architecture'에 해당되는 글 1건

  1. 2013.07.23 논리 아키텍쳐로 알아보는 OpenStack~!! (2)
OpenStack2013.07.23 15:30

오랜만에 Openstack과 관련된 글을 쓰는 것 같습니다. 

사실 그동안 프로젝트 하느라 openstack을 들여다 볼 시간적 여유가 없었거든요~!! 

얼마전에 오픈스택 3주년 기념 세미나 때 오픈스택 아키텍쳐를 최초에 설계한 Ken Pepple 이 과거 오픈스택이 처음 탄생했을 때의 아주 단순했던 아키텍쳐부터 지금까지의 아키텍쳐 변화를 그림과 함께 설명을 했었습니다. 


사실 요즘 오프스택 아키텍쳐를 보면 눈에 잘 들어오지 않습니다. 너무 커서~~~ 말입니다. 그래서 오늘은 그 아키텍쳐를 한번 부분별로 살펴 볼까 합니다. 그러면 더 눈에 잘 보이지 않을까요?



Conceptual Architecture

아래 그림은 개념적으로 설계한 Conceptual Architecture 이다. 기본 3개의 프로젝트에 4개의 추가 프로젝트로 구성되어 있다. 단 이번 Grizzly 버전을 업그레이드하면서 Network Service인 Quantum 프로젝트가 Neutron 으로 이름이 변경이 되었다.


Logical Architecture

정말 복잡한 그래서 눈에 잘 들어오지 않는 논리적으로 설계한 Logical Architecture이다. 오늘은 이 복잡한 아키텍처를 프로젝트별로 나누어서 살펴보고자 한다.


Compute

아래 그림은 논리 설계도 중 Compute 서비스에 해당하는 Nova 프로젝트에 대한 아키텍쳐이다. 구조를 살펴보면, Queue 중심으로 nova-api, nova-compute, nova-consoleauth, nova-scheduler, nova-conductor, nova-cert 가 메시지를 서로 주고 받을 수 있도록 설계되어 있으며, hypervisor는 libvirt나 XenApi를 통해 nova-compute와 연동이 되어 있다. 


Object Store

오브젝트 스토리지 서비스를 제공하는 Swift는 의외로 간단하다. Swift 별도로 구성을 했을 경우에는 오브젝트 스토리지로 Compute 서비스와 연동해서는 Glance 이미지의 이미지 백업 스토리지로 사용할 수 있다. Swift는 Proxy를 중심으로 account, container, object 가 존재한다.

Image Store

이미지 서비스를 제공하는 Glance는 glance.conf 파일에서 설정해 둔 Glance 스토리지에 Image 파일을 등록 및 수정, 삭제 등의 관리를 담당한다. 이전 Folsom 버전까지만 해서 이미지 파일을 등록하기 위해서는 CLI Command 를 이용해야만 했었는데 지금은 Dashboard에서 UI로 관리가 가능해 졌다.

Network

네트워크 서비스를 위해 별도로 분리된 Quantum 프로젝트는 Grizzly를 업데이트 하는 과정에서 Neutron 이라는 이름으로 그 명칭이 변경이 되었다. Neutron에는 Server, agent, plugins으로 구성되어 있으며, 기본 네트워크는 openvswitch로 되어 있다. 사용 가능한 플러그인은 Big switch networks의 Floodlight(http://www.bigswitch.com/products/open-source-projects), cisco의 ncclient, linuxbridge, ml2(Modular layer 2), NEC OpenFlow, Nicira NVP, ryu, PLUMgrid(http://plumgrid.com/solutions/openstack/) 와 같은 것들이 있다.

Block Storage

블록 스토리지는 컴퓨터 서버에 디바이스처럼 추가하여 사용할 수 있는 스토리지로 cinder-volume, cinder-backup, database, volume provider, cinder-scheduler 가 존재한다. 이전에는 Nova-Volume이 이 기능을 대신하였으나, Cinder라는 별도 프로젝트로 분리하여 현재는 cinder가 블록 스토리지를 관리하고 있다. 기본적으로는 LVM을 생성하여 cinder-volume으로 사용하나 이 외에도 다음과 같은 스토리지 서비스를 대신할 수 있다. 
IBM (Xiv, Storwize and SVC), SolidFire, Scality, Coraid appliances, RADOS block storage (Ceph), Sheepdog, NetApp, Windows Server 2012 iSCSI, HP (Lefthand and 3PAR), Nexenta appliances, Huawei (T series and Dorado storage systems), Zadara VPSA, Red Hat’s GlusterFS, EMC (VNX and VMAX arrays), Xen and linux iSCSI.

Identity

인증 서비스를 담당하고 있는 Keystone은 오픈스택의 모든 서비스들의 인증을 담당하며, 테넌트, 사용자, 인증 토큰, End Point URL, LDAP 등을 관리한다. Flosom 버전에서는 서비스들의 권한만 생성하면 되었지만, Grizzly로 와서는 사용자 권한 및 Role, 인증 토큰, 인증키까지도 관리되도록 업그레이드 되었다.

Dashboard

Dashboard 서비스를 담당하는 Horizon~!! 사용자들이 오픈스택을 쉽게 사용할 수 있도록 지원해 주는 가장 가까운 곳에서 사용들을 만나는 UI 서비스이다. Horizon 서비는 날이 가면 갈수록 점점 더 버전이 업그레이드 되고 있다. 오픈스택의 각 프로젝트에서 제공하는 API를 이용하여 Dashboard를 구현하였으며, Apache2 서버에 Python 장고 프레임웍을 사용한다.


Posted by 나리 짱!!! naleejang