리눅스에서의 가상화 솔루션의 종류와 특성 (1)

기준 환경:

Ubuntu 20.04.1 LTS (WSL2 by Windows 10 x64)

이 글은 가상화에 대해 간략히 소개한다. 다음 글에서 리눅스에서의 가상화에 대해 조금 더 깊게 다룰 예정이다.


가상화란

물리 자원을 추상화하는 방법 중 하나로, 하나의 물리 자원을 여러 개의 논리적 자원으로 나누거나, 여러 물리 자원을 하나의 논리적 자원으로 다루는 것을 말한다.

  • 각 자원이 서로에게 영향을 끼치지 못하므로, 장애 전파가 되지 않는다.

  • 논리적인 자원을 유지하면서, 물리적인 자원을 교체할 수 있다.

  • 물리적 자원간의 약간의 차이를 무시하기 위해 일반 사양으로 논리적 자원을 구성할 수 있다.


가상화의 원리와 Linux에서의 가상화

기본적으로 가상화는 HW에서 지원해줘야 한다. 실제 CPU에 Guest OS를 실행했을 때, Guest OS가 제어권을 Host OS로 반환할 지 알 수 없기 때문이다. 따라서, HW는 Host OS가 관리할 수 있는 방식의 규칙과 제약을 제공한다. 출처

가상화 방식은 크게 Type 1 (= Full Virtualization), Type 2(= Para Virtualization) 가 있는데, 리눅스에서는 KVM, XEN이 주요 가상화 솔루션이다.

  • Type 1의 경우 OS 레벨 아래에 Virtual Machine Monitor(Hypervisor)가 HW Layer 사이에 낀 Layer로 하드웨어를 가상화한다. KVM이 Type 1이며, Windows Hyper-V도 Type 1이다.

  • Type 2의 경우 Host OS와 Guest OS 사이에 Hypervisor가 위치한다. VirtualBox, VMWare 등이 Type 2이다. Mac의 경우 Parallels가 Type 2이다.

  • Type 2의 경우 상대적으로 높은 성능을 제공한다고 알려져 있다.

  • 다만 Type 2 방식은 기존 OS에 수정을 해서 Guest OS를 만들어야 한다는 단점이 있다.

  • 리눅스는 Type 2 방식의 Guest OS를 잘 지원한다.

  • Docker의 경우 컨테이너 기술이 커널 위에서 지원되므로 Hypervisor가 필요 없으나, Windows 및 Mac에서는 Linux Kernel이 필요하므로 리눅스 OS를 가상화로 띄워야 하므로 Hypervisor가 필요하다.

리눅스에서의 가상화 솔루션의 종류와 특성 (1)

https://jsqna.com/linux-virtualization-1/

Author

Seongbin Kim

Posted on

21-07-04

Updated on

21-07-03

Licensed under

댓글