안녕하세요. 이번 포스팅에서는 하이퍼바이저가 무엇이고 그 종류는 어떻게 되는지에 대해서 포스팅해보겠습니다.
0. 가상화 / 하이퍼바이저
IT 기술에서 이제 '가상화(Virtualization)'은 어디에나 들어갈 수 있는 단어가 되었습니다. CPU 가상화, 스토리지 가상화 등 기존 레거시 환경의 H/W들을 모두 가상의 자원들로 사용할 수 있고 이를 구현할 때 컨테이너, 클라우드 기술이 사용됩니다.
하이퍼바이저는 이 가상화 환경을 제공하는 기술입니다.
쉽게 예를 들면 우리가 리눅스 환경이 필요할 때, 사용하고 있는 Window PC 위에
VirtualBox 또는 Vmware 라는 이름의 하이퍼바이저를 사용해서 그 위에서 리눅스를 사용합니다.
IT 환경에서 하이퍼바이저 말고도 컨테이너를 사용하는 것도 가상화의 일종이지만 두 개의 장단점이 다르기 떄문에 환경에 맞게 혼용하고 있습니다.
1. 하이퍼바이저 분류
하이퍼바이저를 간단하게 분류한다면
1). 하이퍼바이저의 가상화 방식에 따른 분류: 전가상화, 반가상화
2). 하이퍼바이저의 역할과 존재하게 되는 위치에 따른 분류: Type1, Type2
로 볼 수 있습니다.
그렇다면 먼저 하이퍼바이저의 역할과 존재하게 되는 위치에 따른 분류를 알아보겠습니다.
하이퍼바이저의 역할 / 존재하는 위치에 따른 분류
위의 그림은 Hypervisor를 간단하게 분류한 이미지입니다.
1). Type 1 (Native / Bare metal)
그림에서 왼쪽의 Type 1(Native / Bare metal)의 하이퍼바이저는 호스트의 하드웨어에 직접 설치해서 구동이 됩니다. 베어메탈이라는 명칭이 붙은 것도 그 하드웨어 자체를 이용한다는 뜻이겠죠.
이 하드웨어에 직접 설치되어 사용되는 하이퍼바이저는 Type 2에 비해 상대적으로 설정과 설치가 까다롭습니다. 여러 하드웨어들을 제어하는 드라이버들과 각종 설정들을 모두 설정해야하기 때문입니다. 또한 그 서버 또는 H/W에 아무 것도 설치되어 있지않는(말 그대로 Bare metal) 상태에서 하이퍼바이저를 설치해야합니다.
Type 1 방식의 하이퍼바이저는
Xen(젠), KVM(Kernel-based Virtual Machine), mircosoft의 Hyper-v 등이 있습니다.
2). Type 2 (Hosted)
Type 2(Hosted) 방식의 하이퍼바이저는 우리가 사용하는 여러 어플리케이션과 비슷하게 호스트 OS위에 설치하는 하이퍼바이저입니다.
위에서 예시로 언급한 VMware, VirtualBox의 경우입니다.
하이퍼바이저를 설치하고 가상머신(VM)의 이미지를 만들어서 띄우는 형식입니다.
Type 2에서는 하이퍼바이저가 H/W의 바로 위의 Level에 있는 것이 아니라 Host OS의 위에 위치하기 때문에 한단계의 더 독립된 Layer 위에서 실행되어집니다.
성능의 관점에서는 당연히 H/W 바로 위에서 실행되는 Type 1이 더 유리할 수 있지만 가용성면에서는 Type 2가 좀더 좋을 수 있겠습니다.
Type 2 하이퍼바이저는 VMware, VirtualBox, QEMU 등이 있습니다.
하이퍼바이저의 가상화 방식에 따른 분류
위의 하이퍼바이저 역할과 위치에 따른 분류안에서의 Type 1 하이퍼바이저는 다시 한번 하이퍼바이저의 가상화 방식으로 분류할 수 있습니다.
그렇지만 최근의 동향은 이 하이퍼바이저들이 가상화 방식에서의 분류들은 경계가 모호해 졌기 때문에 참고용으로만 보시면 될 것 같습니다.
사실 이 부분에 나오는 전가상화와 반가상화는 더 자세히 알려면 커널영역에서의 처리과정까지 언급해야 하므로 정말로 간단하게 요약해보도록 하겠습니다.
1). 전가상화(Full Virtualization)
간단하게 전체(Full) 하드웨어들을 가상화 합니다. 하이퍼바이저 위의 Guest OS와 하이퍼바이저 아래의 하드웨어 사이의 오가는 모든 명령들을 하이퍼바이저가 중재합니다.
하이퍼바이저가 모든 시스템콜, 트랩 등을 핸들링하기 때문에 하이퍼바이저의 부담이 커지고 이는 성능 하락으로 이어질 수 있습니다.
2). 반가상화(Para-Virtualization)
전가상화가 모든 H/W들을 가상화할 때 나오는 문제점들을 보완하기 위해 등장했습니다. 전가상화와 다르게 하이퍼바이저가 모든 시스템콜, 트랩 등을 가상화하지 않습니다. 부분적인 하드웨어들을 가상화 한다고 생각하겠습니다.
하이퍼바이저는 가상화가 필요한 부분들만 '하이퍼콜' 이라는 명칭과 함께 처리합니다.
본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.
인용 시 출처와 같이 공개해주세요!
도움이 되셨다면 댓글 또는 공감 부탁드립니다!
'IT > Server_서버' 카테고리의 다른 글
[서버 / 메모리] DDR 메모리와 DIMM은 무엇인가?? DDR과 DIMM의 차이 (0) | 2023.05.15 |
---|---|
[서버] 캐시 버퍼의 write through 방식과 wirte back 방식의 차이 (0) | 2023.05.11 |
[Server] Hangup이란? / 대처법 (0) | 2021.03.09 |
[Server] In-place deploy / 현재위치 배포 방식 (0) | 2021.01.03 |
[Server]Blue-Green Deploy (블루-그린 배포) 방식 / 서버배포 (0) | 2020.12.30 |
댓글