ISA Level (Instruction Set Architecture)
- ISA Level 수준에서 가상화
- 코드를 인터프리트 함
- 주어진 위치에서 많은 양의 레거시 이진코드 실행
- 새하드웨어 호스트 시스템, 코드해석
- 동적 이진변환
- 위에서는 어떤 운영체제 관계없음
- 그러나 실제 기계가 될수록 하드웨어가 복잡해질 가능성
Hardware Abstraction Level
- Hypervisor
- 위에 다양한 운영체제에 대한 것 가능
- Hypervisor 무게에 따라 성능 문제 생길 수 있음
- bare H/W의 top
- 여러 사용자가 동시에 하드웨어 활용율을 업그레이드
- Linux 및 기타 게스트 OS를 실행하는 x86기반 시스템의 Xen 하이퍼바이저
OS Level
- OS 인스턴스에 격리된 컨테이너를 생성해 활용
- hypervisor보다 overhead가 낮아 효율적일 수 있음
Library Support Level
- UNIX 기반으로 하는 WINE
- 윈도우가 UNIX에서 돌아갈수있게
User-Application Level
고성능, 유연성, 복잡도, 격리 면에서 비교가능
VMM (Virtual Machine Monitor)
- 전체적인 제어권한을 가짐-
- 프로그램에 대한 하드웨어 리소스 할당 담당
- 프로그램이 명시적으로 할당되지 않은 리소스에 엑세스할 수 없음
- OS 레벨에서만 가상화 지원
OS-Level Virtualization을 고려해야 하는 이유?
- 성능의 오버헤드를 줄이기 위해
- 하드웨어 수준의 전가상화(Full Virtualization)은 성능 속도가 느리다는 단점이 있음 (Hypervisor가 무거워져 Performance 낮아짐)
- 반가상화(Para-Virtualization)는 게스트 OS를 수정해야하기때문에 modify부담이 있음
- 단일 OS 커널에서 여러개의 분리된 VM : VE,VPS,컨테이너 (컨테이너는 좋은 솔루션)
OS 확장의 장단점
- 동일한 물리 머신의 모든 OS수준 VM 은 단일 OS 커널을 공유한다.
- 가상화 계층은 프로세스를 허용하는 방식으로 설계할 수 있음
- VM에서 호스트 시스템의 리소스에 대해 최대한 많이 엑세스하지만 절대 수정하지 않을 것임
- OS 확장의 주요 단점 : 모든 VM이 단일 컨테이너에는 동일한 종류의 게스트 OS가 있어야함.
- Full Virtualization 전가상화 : hypervisor(or VMM)
- Para-Virtualization 반가상화
- Host-based virtualization (호스트OS의 top부분 가상화, VM Ware)