- Server Virtualization
- 상위 문서: 가상화
분류
- 가상머신 방식(하이퍼바이저 이용)
- 호스트 가상화
- 베어메탈 가상화(aka. 네이티브 가상화)
- 전가상화
- 반가상화
- 컨테이너 방식
가상머신 방식
- 하이퍼바이저를 이용한다. 하이퍼바이저 가상화라고도 한다.
호스트 가상화
호스트 OS 위에서 게스트 OS를 구동시키는 방식
가상환경 | 가상환경 |
---|---|
애플리케이션 | 애플리케이션 |
미들웨어 | 미들웨어 |
게스트 OS | 게스트 OS |
하이퍼바이저 | |
호스트 OS | |
하드웨어 |
- 장점 : 가상의 하드웨어를 에뮬레이팅하기 때문에 호스트 운영체제에 크게 제약사항이 없음
- 단점 : OS위에 OS가 얹히는 방식이기 때문에 오버헤드가 클 수 있음
- 예시) VMware Workstation, VMware Server, VMware Player, MS Virtual Sever, Virtual PC, Virtual Box, Paralles Workstation, QEMU 등
베어메탈 가상화
호스트 OS 없이 하드웨어에 하이퍼바이저를 설치하는 방식
가상환경 | 가상환경 |
---|---|
애플리케이션 | 애플리케이션 |
미들웨어 | 미들웨어 |
게스트 OS | 게스트 OS |
하이퍼바이저 | |
하드웨어 |
- 장점 : 별도의 Host OS가 없기 때문에 오버헤드가 적고, 하드웨어를 직접 제어하기 때문에 효율적으로 리소스를 사용할 수 있음
- 단점 : 자체적으로 머신에 대한 관리 기능이 없기 때문에 관리를 위한 컴퓨터나 콘솔 필요
- 예시) Xen, MS hyper-V, citrix, Linux KVM 등
전가상화와 반가상화
- 현재는 전가상화와 반가상화의 차이가 매우 모호해짐
- 완전한 전가상화도 아니고 완전한 반가상화도 아닌, 적절히 조합된 형태로 구성
전가상화
- Full-Virtualization
- 하드웨어를 완전히 가상화 하는 방식으로 Hardware Virtual Machine 이라고도 불림
- 하이퍼바이저를 구동하면 DOM0라고 하는 관리용 가상 머신이 실행되며, 모든 가상머신들의 하드웨어 접근이 DOM0을 통해서 이루어짐
- 즉, 모든 명령에 대해서 DOM0가 개입을 하게되는 형태입니다.
- 하이퍼바이저는 가상화된 OS에 무관하게 각 OS들이 내리는 명령어 인식 가능
- ex) 윈도우 에서 Add, 리눅스 에서 ADD, 맥에서 add 라는 명령어를 내렸을때 하이퍼바이저가 “더해라”라고 번역 하여 명령어로 번역하여 실행
- 하이퍼바이저는 이러한 번역 역할 뿐만 아니라 가상화된 OS들에게 자원을 할당해주는 역할도 담당
- 장점 : 하드웨어를 완전히 가상화하기 때문에 Guest OS 운영체제의 별다른 수정이 필요 없음
- 단점 : 하이퍼바이저가 모든 명령을 중재하기 때문에 성능이 비교적 느림
반가상화
- Para-Virtualization
- 반가상화는 전가상화와 달리 하드웨어를 완전히 가상화 하지 않음
- 전가상화의 가장큰 단점인 성능저하의 문제를 해결하기 위해 하이퍼콜(Hyper Call)이라는 인터페이스를 통해 하이퍼바이저에게 직접 요청
- 가상화된 각 OS들이 각각 다른 번역기를 가진 형태로, 그 번역기는 각각 다른 OS에서 내리는 각각 다른 명령어를 "더해라"라고 번역
- 장점 : 모든 명령을 DOM0를 통해 하이퍼바이저에게 요청하는 전가상화에비해 성능이 빠름
- 단점 : 하이퍼바이저에게 Hyper Call 요청을 할 수 있도록 각 OS의 커널을 수정해야하며 오픈소스 OS가 아니면 반가상화를 이용하기가 쉽지 않음
컨테이너 가상화
호스트 OS위에 컨테이너관리 소프트웨어를 설치하여, 논리적으로 컨테이너를 나누어 사용하는 방식
가상환경 | 가상환경 |
---|---|
애플리케이션 | 애플리케이션 |
미들웨어 | 미들웨어 |
컨테이너 관리 소프트웨어 | |
OS | |
하드웨어 |