Search
Duplicate
👥

웅성웅성.. 뭔 가상화 종류가 이렇게 많아…. 웅성웅성…

간단소개
하이퍼바이저 작동 방식 겉핥기
팔만코딩경 컨트리뷰터 (Library DB (속성)에 관계됨)에 관계됨
ContributorNotionAccount
주제 / 분류
운영체제
가상머신
42cursus
태그
born2beroot
virtualization
linux
Scrap
8 more properties
born2beroot 평가를 가보면 맨날 듣는 말이 있죠.
: 가상화는 type1, type2 두가지로 나뉘고 type1은 bare-metal 위에서, type2는 다른 운영체제 위에서 돌아가게 됩니다~
물론 맞는 말이지만, 어딘가 찜찜하진 않으셨나요?
그래서 제가 한 번 과몰입 해보았습니다.

1. 가상화란?

가상화를 관리하는 소프트웨어(하이퍼바이저)를 사용해, 하나의 물리적 머신에서 가상 머신(VM)을 만드는 프로세스
VM이란?
가상머신(virtual machine, VM)은 물리적 하드웨어 시스템에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상환경

2. 가상화 분류

가상화에는 사실 데이터 가상화, 데스트탑 가상화, 서버 가상화, 운영체제 가상화, 네트워크 기능 가상화 등등 많은 종류가 있습니다. 사실 이런 분류는 잘 쓰이지 않고 가상화라하면 주로 서버 가상화를 이르는 용어입니다.
그러니 우린 서버 가상화에 대해 자세히 알아봅시다!
💡 서버 가상화란? 소프트웨어 애플리케이션을 통해 물리적 서버를 여러 개로 분리된 고유한 가상 서버로 나누는 과정, 각 가상 서버는 자체 운영체제를 독립적으로 실행할 수 있음!
HTML
  서버 가상화의 분류
하이퍼바이저의 위치와 역할에 따른 분류
1) Type1
2) Type2
하이퍼바이저의 가상화 방식에 따른 분류
1) 전가상화 (full virtualization)
2) 반가상화 (para-virtualization)
(+ os-level virtualization)
그러니 사실은 type1과 type2로 분류한 것이 가상화의 일종이 아닌 하이퍼바이저의 분류였던 것입니다.
type1과 type2에 대한 설명은 다들 많이 들어보셨을테니 이미지 한 장으로 대체하겠습니다.
출처 - wikipedia

3. 전가상화와 반가상화

Type1 하이퍼바이저는 다시 전가상화와 반가상화로 분류할 수 있습니다. (Type2 하이퍼바이저는 호스트 OS형 가상화에 해당)
설명 전 용어 정리 1. sensitive instruction system call을 포함한 명령어들, 이러한 명령어들은 user mode에서 호출할 수 없어 일시적으로 kernel mode로 전환 2. trapping sensitive instruction이 호출되어 user mode에서 kernel mode로 전환됨을 의미
HTML
이것은 하이퍼바이저의 작동 방식에 따른 분류입니다. 하이퍼바이저는 기본적으로 실제 하드웨어와 가상 리소스 사이의 요청들을 번역(translating)을 통해 가상화를 가능하게 합니다.
전가상화
전가상화는 런타임에서 sensitive instruction을 같은 기능을 하는 일반 명령어로 대치하는 binary translator를 포함합니다. 이는 JVM의 실시간 인터프리터와 비슷한 오버헤드를 가집니다.
반가상화
반가상화는 게스트 OS의 sensitive instruction을 수행하는 대신 동등한 기능을 하는 hypervisor의 API를 호출합니다. 이를 위해 게스트의 sensitive instruction 부분을 수정하게 됩니다(re-write). 반가상화는 I/O 가상화에 관련된 오버헤드를 줄이기 위해 사용되며 하이퍼바이저에 독립적이지 않다는 단점이 있습니다.
호스트 OS형 가상화(Type 2) 간단한 설명
호스트 OS형 가상화는 게스트 OS자체를 binary translation을 통해 basic block으로 만들고 이를 순차적으로 읽으며 실행시킵니다. 이때 basic blocke에 있는 모든 sensitive translation을 hyper call로 교체하여 가상화를 수행합니다.
알아둘 것은 이러한 전가상화와 반가상화의 경계가 이미 모호해졌고 성능도 평준화되어 가고 있다는 점입니다. 전가상화 하이퍼바이저가 반가상화도 지원하고 또 그 반대가 성립하기도 합니다. 가상화의 종류에 집착하는 것보다는 컨테이너 방식을 사용할지, 또는 서버 가상화나 베어메탈 환경을 사용할지 등 자신의 서비스에 적합한 방식에 대해 고민해 보는 것이 중요해 보입니다.
이 글의 출처는 거의 vmware와 redhat입니다.
저도 아주 깊게 공부한 것이 아니라 혹시 잘못된 정보가 있다면 지적해주시길 바랍니다! - jiwahn