I. 전통적인 서버 가상화 기술, 하이퍼바이저의 개요
가. 하이퍼바이저의 정의
- 호스트 컴퓨터에서 다수의 서로 다른 운영체제를 동시에 실행하기 위한 논리적 소프트웨어 가상화 플랫폼
나. 하이퍼바이저의 특징
특징 |
내용 |
정확성 |
- VM을 위해 만든 환경은 물리적 머신과 본질적으로 동일해야 한다. |
독립성과 안정성 |
- 하이퍼바이저는 시스템 자원에 대한 완전한 제어권을 갖는다. |
성능 |
- VM과 물리적 환경 간의 성능 차이가 없어야 한다. |
II. 하이퍼바이저의 유형 및 가상화 방식
가. 하이퍼바이저의 유형
유형 |
항목 |
내용 |
TYPE1 |
개념 |
- Native 또는 Bare-Metal 하이퍼바이저로도 표현 - 하이퍼바이저가 HW 위에서 다수의 GuestOS를 관리 |
장점 |
- 가상 시스템 또는 GuestOS 중 하나의 문제가 하드웨어에서 실행 중인 다른 GuestOS에 영향 없음 - Type2에 비해 상대적으로 빠른 성능 |
|
단점 |
- 여러 하드웨어 드라이버 세팅등의 설치의 어려움이 존재 |
|
솔루션 |
- Xen, Oracle VM Server, Microsoft-Hyper-V, Vmware ESX |
|
TYPE2 |
개념 |
- 호스트 된 하이퍼바이저라고도 표현 - 다른 응용프로그램과 같이 일반적인 OS에서 구동되는 유형 |
장점 |
- 기존 컴퓨팅 환경에 하이퍼바이저를 설치/활용하는 것이 용이 |
|
단점 |
- 하이버바이저가 안전하더라도 기본 OS의 문제에 영향받음 - Type1보다 성능이 떨어질 수 있다. |
|
솔루션 |
- Vmware Workstation, VirtualBox, Parallels Desktop for Mac |
- 하이퍼바이저의 위치 및 역할 차이에 따라 Type1, Type2로 구분
나. 하이퍼바이저의 가상화 방식
가상화방식 |
역할 |
주요기술 |
전가상화 (Full-Virtualization) |
가상화 범위 |
- 하드웨어 전체 가상화 |
HOST OS |
- OS 수정없이 사용가능, 설치와 구성이 용이 |
|
GUEST OS |
- Guest OS가 하드웨어 직접 통제하는 것처럼 동작 |
|
하드웨어 제어 |
- 실제 CPU의 VT에서 하이퍼바이저에게 의뢰하는 형태 - CPU-VT지원에 따른 하드웨어 제약, Host OS를 통해 접근 |
|
I/O 루틴 |
- I/O 루틴의 복잡성으로 인한 낮은 성능(RTOS 지원불가) |
|
반가상화 (Para-Virtualization) |
가상화 범위 |
- 하드웨어 일부 가상화 |
HOST OS |
- OS의 커널 일부 수정, 하이퍼바이저가 커널드라이버 보유 |
|
GUEST OS |
- Guest OS는 공유되는 디바이스에 접근 필요 |
|
하드웨어 제어 |
- 파티셔닝된 디바이스를 각 VM에 할당 - 하이퍼바이저가 하드웨어 통제 |
|
I/O 루틴 |
- 단순한 I/O루틴으로 상대적으로 고성능 유지(RTOS 지원가능) |
- 주로 서버 가상화에서 등장하는 개념, 분류하는 기준은 하드웨어에 대한 I/O 접근의 가상화 범위로 결정
III. 하이퍼바이저와 도커의 비교
구분 |
하이퍼바이저 |
도커 |
개념도 |
||
추상화 |
- 전체 H/W Device를 추상화 |
- OS 커널 |
OS |
- 여러 OS를 동시 사용 |
- 단일 OS상의 다양한 에디션 |
호환성 |
- 여러 플랫폼 지원 |
- LXC기반, 리눅스 유리, 타 플랫폼 미비 |
성능 |
- Guest/Host OS Layer로 인해 저하 - 도커에 비해 오버헤드 큼 - 스토리지 자원 소비가 높음 |
- 직접 OS를 Access하여 우수 - 하이퍼바이저보다 오버헤드 작음 - 스토리지 자원 소비가 적음 |
- 하이퍼바이저는 도커에 비해 호스트 하드웨어와 독립적되어 시스템의 가용 리소스를 더 많이 활용하고 IT 모빌리티를 향상할 수 있으며 이를 통해 가상 머신을 여러 서버간에 쉽게 이동시킬 수 있다.
'IT기술노트 > 컴퓨터구조 및 운영체제' 카테고리의 다른 글
우선순위 역전(Priority Inversion) (0) | 2021.10.20 |
---|---|
데스크탑 가상화(VDI, Virtual Desktop Infrastructure) (0) | 2021.03.12 |
쿠버네티스(Kubernates) (0) | 2021.03.12 |
도커(Docker) (0) | 2021.03.12 |
가상화(Virtualization) (0) | 2021.03.12 |
운영체제(OS, Operating System) (0) | 2021.03.12 |
가상메모리(Virtual Memory) (0) | 2021.03.12 |
기억장치 할당 (0) | 2021.03.12 |
댓글