개발/가상화
-
3. Domain간 통신 방법개발/가상화 2016. 11. 6. 12:49
Guest OS들은 동작하면서 Block, Network Device처럼 다양한 장치에 접근할 일이 생긴다. Domain0는 Real Hardware driver를 갖고 있기 때문에 직접 접근 할 수 있지만, DomainU는 Control Domain의 역할을 하는 Domain0를 거쳐서 접근해야 한다. DomainU는 Domain 0에게 전송을 요청할 뿐만 아니라 Domain0에게 전송할 데이터들을 전달해야하는데 이때 Domain간에 통신 메커니즘이 필요하다. 가상머신에서 잠깐 물러나 일반 OS를 생각해보자. 두 개의 프로세스가 메시지를 전달 하는 방법은 여러 가지가 존재한다. 간단히 file에다가 값을 입력하는 방식도 있고 socket, pipe 공유메모리까지 사용 환경과 목적에 맞춰서 적용이 가능하..
-
2. Xen 기본 구조/Hypercall개발/가상화 2016. 11. 5. 20:52
Xen 기본 구조를 설명하기에 앞서 Hypervisor의 기본 형태중 Type 1에 대해서 간단히 설명을 한다. Type1은 가상머신을 관리하는 Hypervisor가 OS처럼 직접 하드웨어를 통제하고 VM(Guest OS)들은 Hypervisor 위에서 동작하는 형태이다. 스케줄러, MMU, Page table처럼 OS의 기본적인 기능들을 Hypervisor가 갖고 있고 위 기능들을 잘 이용해서 여러 개의 Guest OS들을 관리한다(작은 OS인 느낌이다). 기본적인 개념은 Type1 Hypervisor들이 모두 같으나 Guest OS를 관리하는 메커니즘은 Hypervisor마다 차이가 있다. Xen은 Guest OS들을 도메인이라 부르고 Domain이 생성된 순서에 따라 Domain + 생성순서로 이름..
-
1. Xen Project 소개개발/가상화 2016. 11. 5. 19:38
반가상화(Para-virtualization) 소프트웨어로 가장 대표적인 Xen에 대한 포스트를 앞으로 써보려고 한다. 이번 포스트에서는 Xen에 대한 소개와 역사 및 앞으로의 포스트 순서에 대해서 소개해보려 한다. 1. 소개 Xen은 Para-virtualization 형태로 여러 개의 Guest OS를 실행 할 수 있는 Hypervisor이다. 현재 Xen community에서 오픈소스의 형태로 개발중(www.xenproject.org)이며 작업에 따라서 여러가지 브랜치로 나눠져 있다. 크게 다음과 같이 세가지 Feature를 지원하는 것을 목표로 작업이 나눠져 있다. Feature Value Hypervisor 개발 여러개의 반가상화 Guest OS를 동시에 실행 할 수 있는 플랫폼을 개발한다. 확..
-
가상화기술 Type1개발/가상화 2016. 9. 11. 19:59
가상화 기술 Type1은 가상화 소프트웨어가 OS의 형태(OS로 말하기는 좀 부족하고 기능이 추가된 바이오스라 생각하면 좋다)로 구현된 것이다. 대표적인 소프트웨어로는 Xen,과 Window Server로 사용되는 Hyper-V가 있다. Type1은 일반 사용자들에게 익숙하지 않은데 아마 주로 서버 개발에 사용되기 때문일 것이다. 클라우드 컴퓨팅 회사에서 비싼 서버 한 대를 이용해 여러 개의 서버를 돌리듯한 효과를 주기 위해 Type1의 가상 기술을 이용한다. 위 방식은 Hypervisor가 하드웨어 통제권을 가지고 있다는 장점이 있다. Type 2에서 Hypervisor가 하드웨어의 통제권을 가지지 못해 하드웨어를 제어하는데 오버헤드가 많이 걸렸는데 여기선 Hypervisor가 하드웨어를 장악하고 있고..
-
가상화기술 Type2개발/가상화 2016. 9. 11. 19:12
가상화 기술 Type2는 가상화 기술을 애플리케이션의 형태로 구현하는 방식이다.대표적인 예로는 VMware, Virtual Box처럼 윈도우나 리눅스에 설치 할 수 있는 소프트웨어이다. 이러한 형태의 구현 방식은 기존 PC 시장에 쉽게 가상화 기술 소프트웨어를 도입 할 수 있다는 이점이 있다. 또한 Host OS가 제공하는 시스템콜과 하드웨어 제어권을 빌려오는 형태여서 여러가지 요소들을 신경쓰지 않고 구현(실제로는 생각을 많이 써야 하지만 처음부터 다 만들어 가는것은 아니기 때문에)할 수 있다. 애플리케이션 형태이기 때문에 안전성에 문제가 생겨도 Host OS 자체의 안정성은 침해하지 않는다는 장점이 있다. 하지만 위 방식은 느리다. 가상화 소프트웨어가 하드웨어를 직접 통제하는 것이 아니기 때문에 하드웨..
-
가상화 기술의 유형개발/가상화 2016. 9. 6. 19:24
가상화 기술은 어떤 방식으로 구현하느냐에 따라 크게 Type 1& Type 2로 나뉜다. 직관적으로 이해하기 위해 먼저 그림으로 표현하면 다음과 같다. 위 두 그림의 가장 큰 차이점은 Hypervisor(가상머신)의 존재 형태이다, Type1에서는 Hypervisor가 하드웨어를 관리하는 운영체제의 일종으로 보이고, Type2에서는 Host OS의 application과 동등한 형태를 띄는 것으로 보인다. 가상화 기술은 "Hypervisor를 어떠한 형태로 개발할 것이냐"에 따라 두가지로 나눌 수 있다. - Type1 : Hypervisor를 OS의 형태로 개발한다. - Type2 : Hypervisor를 Application의 형태로 개발한다. 아마 대부분의 사람들에게 익숙한 형태는 Type2일 것이다..
-
가상화 기술이란?개발/가상화 2016. 7. 31. 23:22
대학교 1학년때 컴퓨터에 대해서 관심을 갖기 시작할 시절, 동기중 한 명이 Virtual Box라는 것을 이용하면 하나의 PC로 여러개의 운영 체제를 구동 할 수 있다는 것을 알려 주었다. 그 친구는 자신의 집에서는 윈도우 위에 우분투라는 것을 올렸다며 엄청난 기술이라고 호들갑을 떨었는데 당시 나는 전공 초짜였지만 기술 지식에서 뒤쳐지는게 싫어서 "오 그래? 대단한걸? 나도 집에가서 해봐야겠다!"라고 말해놓고 우분투는 대체 뭐고 왜 하나의 PC에 여러 개의 운영체제를 올려야 하냐며 혼잣말을 했었던 기억이 난다. 하지만 운영체제 수업에서 리눅스라는 환경을 처음으로 경험하게 되고 후에 RoR(Ruby on Rails), NodeJs등을 이용해 개발하는 일이 늘어나면서 리눅스는 나와 뗄레야 뗄 수 없는 사이가..