1. Xen Project 소개

컴퓨터공부/가상화기술 2016. 11. 5. 19:38 Posted by 아는 개발자

반가상화(Para-virtualization) 소프트웨어로 가장 대표적인 Xen에 대한 포스트를 앞으로 써보려고 한다. 이번 포스트에서는 Xen에 대한 소개와 역사 및 앞으로의 포스트 순서에 대해서 소개해보려 한다.


1. 소개 


Xen은 Para-virtualization 형태로 여러 개의 Guest OS를 실행 할 수 있는 Hypervisor이다. 현재 Xen community에서 오픈소스의 형태로 개발중(www.xenproject.org)이며 작업에 따라서 여러가지 브랜치로 나눠져 있다. 크게 다음과 같이 세가지 Feature를 지원하는 것을 목표로 작업이 나눠져 있다.


 Feature

 Value 

 Hypervisor 개발

 여러개의 반가상화 Guest OS를 동시에 실행 할 수 있는 플랫폼을 개발한다. 확장성, 성능, 보안성, 유연성등 최적화된 가상화 환경을 만드는 작업으로 이뤄진다.

 Guest OS 수정 작업

 Xen은 반가상화 형태의 Hypervisor이기 때문에 Guest OS들의 수정이 필요하다. Xen community에서는 Linux, Windows, NetBSD, FreeBSD와 같이 점유율이 있는 OS들에 대해 Xen에 포팅 될 수 있도록 변경하는 작업을 진행한다.

 Cloud platform 제공

 여러가지 클라우드 환경(CloudStack, OpenStack)에 적용 될 수 있는 플랫폼을 제공한다. 


* Cloud platform 제공은 서버 가상화에 대한 내용인데 이건 Xen Server Project에서 별도로 관리한다. OS virtualization과 성격이 많이 다르다 보니 그런 것 같다. 이쪽은 아직 한번도 보지 않았기 때문에 패스한다.




마스코트는 닌자 판다를 쓰고 있다. 닌자인지 아닌지는 모르겠지만... Xen 관련 Slide Share와 wiki xen page의 첫장에 등장 한다.

어려운 내용을 설명하기 전에 잠시 머리 식히기 위한 의도(?) 인건지 그냥 리눅스 펭귄에서 따온건지 모르겠다. 전혀 가상화랑 관련 없어보이지만 왠지 모르게 친숙한 느낌을 주는 마스코트이다.


2. 역사


1990년대 후반에 XenoServer 프로젝트로 시작되어 왔고 2002년에 오픈소스의 형태로 재출범이 되었다고 한다. 그후 1년만에 정식 Xen 1.0 버전을 출범했고 x86 아키텍쳐에서만 만들다가 2008년에 Xen-ARM 프로젝트가 만들어졌다(삼성전자가 만들었다고 한다) 2009년에는 Xen Cloud Platform이 출범 되었다고 한다. 


2011년에는 리눅스 2.6.37에서 Xen의 Dom0로 부팅 할 수 있도록 릴리즈 되었고 3.x 버전 부터는 Xen Dom0, DomU 동시에 지원이 되도록 추가되었다고 한다. 대표적인 OS의 추가 기능으로 들어갔으니 아마 이때부터 Xen이 기술력을 인정받는 순간이 아니었나 싶다. 리눅스 OS를 다운 받으면 폴더 파일 명중 Xen이 있고 Xen에 포팅 될 수 있는 GuestOS로 컴파일 할 수 있도록 지원한다.


현재 버전은 4.7.0 까지 stable한 버전으로 릴리즈가 되었고 3.0 인가 부터는 Fully Virtualization도 지원한다고 된 것 같은데 많이 활성화는 된 것 같지 않다. 


정식 출범 이후 거의 13년 가까이 이뤄진 프로젝트인 만큼 기술적으로 안정적이고 대중적으로는 인지도를 가지고 있다. 많은 회사에서 Xen 을 이용해 가상화 기술을 만들고 있다고 한다(Community의 말로는 그렇다)


3. 앞으로 포스트 순서


가상화에 대한 기본적인 개념(Para/Full virtualization 정도는 구분 하는)을 알고 있으면서 Xen을 한 번도 접해보지 않은 사람들을 위한 포스트를 쓰려고 한다. Xen Feature중 Hypervisor 개발에 대한 내용들을 먼저 다루고 xenstore, xen-qemu처럼 Constrol Domain에 대한 내용은 후반부에서 다룰 예정이다. 다음의 순서로 포스트를 작성할 예정이다.


  1. Xen 기본 구조, Hypercall
  2. Domain간 메모리 공유 방법
  3. Xen용 장치 드라이버 만들기
  4. Xenstore, Xenbus


'컴퓨터공부 > 가상화기술' 카테고리의 다른 글

3. Domain간 통신 방법  (0) 2016.11.06
2. Xen 기본 구조/Hypercall  (0) 2016.11.05
1. Xen Project 소개  (0) 2016.11.05
가상화기술 Type1  (0) 2016.09.11
가상화기술 Type2  (0) 2016.09.11
가상화 기술의 유형  (0) 2016.09.06