네트워크

가상화 관련 용어정리(+가상화,하이퍼바이저,VM,VDI 등)

삼록이 2025. 8. 18. 23:03

가상화란(Virtualization)란?

 

하드웨어 자원을 소프트웨어적으로 나눠서, 여러 개의 운영체제(OS)나 시스템이 동시에 실행되게 하는 기술

쉽게 말하자면, 한 대의 컴퓨터(서버)를 여러 대처럼 나눠서 사용하는 것.

 

대표적인 예가,

  • VMware
  • Docker
  • AWS EC2

Windows환경에서 VMware를 실행시켜 리눅스나 다른 OS를 실행시키는 것도 가상화.

Docker도 전체 운영체제를 가상화하지 않고, 애플리케이션 실행환경(컨테이너)만 가상화.

AWS EC2도 AWS 데이터센터에 있는 한 서버 컴퓨터를 가지고 가상화 기술로 수십개의 작은 가상서버(EC2)로 나누면 

그것을 우리가 빌려 쓰는 것이다.

 

이런 가상화의 장점은 
AWS가 한 대의 서버를 여러 대처럼 운용하여 각기 우리에게 빌려 돈을 버는 것처럼 한 대의 서버를 여러 대처럼 운용하여 서버의 자원을 절약할 수 있다는 것.

 

또, 가상자원이기 때문에 자원을 필요할 때 늘리고 줄이기 쉽다는 장점을 가진다.  


1.CPU의 가상화 기술

 

이런 가상화 기술을 사용하기 위해서는, 먼저 하드웨어 자원인 CPU가  가상화에 대한 기능을 지원해야한다.

대표적인 것이  Intel의 VT-x,VT-d  / AMD의 AMD-V,AMD-Vi 다.

 

VT-x와 AMD-V 가 서로 비슷한 기술인데,

하나의 컴퓨터에서 여러 개의 운영체제를 동시에 격리된 공간에서 실행할 수 있게 해주는 기술이다.

이게 없다면 VMware나 WSL2 에서 작동시키는 GuestOS가 매우 느리거나 아예 실행되지 않는다.

쉽게 말해 CPU가 VM을 실행할 수 있도록 기본 기능을 제공해주는 기술이다.

 

VT-d와 AMD-Vi가 또 서로 비슷한 기술이다.

그래픽카드(GPU), 네트워크 카드 같은 장치를 가상 머신(VM)이 직접 사용할 수 있도록 해주는 기술이다.

 

*VM(Virtual Machine)이란?

물리적인 컴퓨터 안에서 소프트웨어적으로 만들어진 가상의 컴퓨터

Host OS : 실제 내 컴퓨터에 깔려 있는 운영체제(ex.Windows 11)

Hypervisor : 가상 머신을 만들고 관리하는 소프트웨어(ex.VM ware, Hyper-V). 쉽게 말해 VM을 만드는 소프트웨어

Guest OS : 가상 머신 안에 설치된 운영체제(ex.Linux Ubuntu)

 

2.가상화 방식(VM과 Container)

가상화는 크게 2가지 방식으로 나눠진다.

VM기반 가상화 그리고 컨테이너 기반 가상화.

 

2-1.VM 기반 가상화

하이퍼바이저 위에 각각 운영체제를 포함한 완전한 가상 컴퓨터(VM)을 띄움

 

VM 방식에서 핵심은 하이퍼바이저다.

하이퍼바이저가 VM을 생성하고 관리하니 말이다.

가상머신 생성 - 실제 컴퓨터 안에 가짜 컴퓨터(VM)을 여러 개 만들거나,

자원할당 - CPU,메모리,디스크를 각각의 VM들에게 나누어 할당하거나,

격리 보장 - 각각의 VM이 서로 영향을 주지 않도록 격리시킨다거나,

OS 독립 운영 - 각각의 VM이 자기만의 운영체제를 설치해 사용할 수 있도록 하는 것

이 하이퍼바이저의 역할이다.

 

이 하이퍼바이저는 또 두 가지 종류로 구분된다.

Type1(Native / Bare-mental) :  일반적인 운영체제 위에 구축되지 않고 하드웨어 바로 위에서 실행되는 방식 ex.KVM, Hyper-V, VMware ESXI

Type2(Hosted) : 기존 OS 위에서 실행되는 방식 ex.VMware Workstation

 

Type1은 실제 서버 전원을 켜면 하이퍼바이저가 제일 먼저 실행되고, 이 하이퍼바이저가 CPU,메모리,디스크와 직접 통신하면서 VM을 구동시킨다. 주로 서버용 가상화 기술에 사용된다.

Type2는 일반적인 PC에 (Windows, Mac)이 먼저 깔려 있고 운영체제가 가장 먼저 실행되고 그 위에 VMware Workstation같은 하이퍼바이저 소프트웨어를 설치해서 사용한다.

출처 : https://kkamji.net/posts/type1-type2-virtualization/

 

2-2.컨테이너 기반 가상화

Host OS위에 커널을 공유하면서  앱만 격리해서 실행시키는 방식

 

커널이란, 운영체제의 핵심 부분으로 CPU,메모리,디스크 등 하드웨어와 직접 소통하며 응용 프로그램이 하드웨어를 사용할 수 있게하는 역할을 한다.

VM기반 가상화에서는 각각의 VM이 각각의 운영 체제를 가지면서 함께 각각의 커널도 가지게 되는 것이다.

그러나 컨테이너 기반 가상화는 OS전체를 따로 설치하지 않아, Host OS의 커널을 함께 사용하는 형태다.

대표적인 것이 Docker다.

 

 

3.가상화 엔진

가상화 엔진은 하이퍼바이저를 포함한 가상화 구성 요소 전반을 포괄하는 용어다.

(사실상, 하이퍼바이저를 넓게 지칭할 때 쓰는 말인 것 같다)

기업에서는 하이퍼바이저+VM 관리 시스템 + 이미지/스토리지 관리까지 포함해서 부르기도 한다.

 

대표적인 가상화 엔진으로는,

  • KVM
  • Xen
  • VMware

등등이 있다.

 

KVM

Type 1 하이퍼바이저로 KVM은 리눅스 커널에 내장되어, 리눅스를 하이퍼바이저로 동작하게 하는 가상화 엔진이다.

그러면 의문이 생길것이다 위에서 Type 1은 운영체제 위에 구축되지 않는다고 했는데 웬 리눅스?

KVM은 리눅스 운영체제 위에서 작동되는 것이 아니라 이  KVM을 이용하면 리눅스 커널 자체가 하이퍼바이저가 되어버린다.

즉 KVM을 사용하면 리눅스가 Type 1 하이퍼바이저가 된다.

현재 AWS EC2 의 대부분의 인스턴스는 내부적으로 이 KVM을 사용한다고 알려져있다.

 

Xen

Xen 역시 Type1 하이퍼바이저로 AWS초기에는 Xen기반으로 운영되었다고 한다.

 

VMware ESXi

VMware의 Type1 하이퍼바이

 

4.하이퍼바이저 컨트롤러

도커와 쿠버네티스에 대해 들어보았을 것이다.

하나의 서버에서 컨테이너를 실행시키는 것이 도커고,

여러 대의 서버에 있는 도커 컨테이너들을 통합적으로 관리하는 오케스트레이션 도구가 쿠버네티스다.

 

마찬가지로 하나의 서버에서 하나의 VM을 실행시키는 기술이 하이퍼바이저고,

여러 대의 서버에 있는 하이퍼바이저와 VM들을 통합적으로 관리하는 오케스트레이션 도구가 하이퍼바이저 컨트롤러다.

 

다시 말하자면, 도커가 컨테이너를 실행하고 쿠버네티스가 그걸 관리하듯이,

하이퍼바이저가 VM을 실행하고, 하이퍼바이저 컨트롤러가 그걸 관리한다.

VMware ESXI 하이퍼바이저를 사용한다면 컨트롤러로러는 vCenter,

Xen 하이퍼바이저를 사용한다면, 컨트롤러로는 XenCenter 이런식으로 맞춤 컨트롤러가 존재한다.


+ VDI(Virtual Desktop Infrastructure 가상데스크톱 인프라)

VDI란 말 그대로 데스크톱 환경(윈도우,리눅스 등)을 가상화해서 서버에 올려놓고, 사용자들이 네트워크를 통해 접속해서 사용하는 기술이다. 즉, PC 환경을 내 컴퓨터에 직접 설치하지 않고, 중앙서버(회사서버나 데이터센터,클라우드 등)에 두고 원격으로 접속하는 구조다.

 

사용자는 기업의 중앙 서버에 있는 본인의 VM에  원격 접속툴을 실행하여 접속한다.

이 VM에서 자신의 업무 혹은 개발 등의 작업을 진행하면 당연히 작업내용과 파일은 사용자 PC에 저장되는 것이 아니다.

그 중앙서버에 저장될 것이다. 그러므로 보안성에 특화된 서비스다.

 

 

VM이 가상머신 하나라면 VDI는 다수의 사용자가 중앙 서버에 있는 본인 전용 데스크톱 처럼 접속할 수 있게 VM 여러 개를 사용자 단위로 제공하는 것이다.

이러한 VDI는 중앙서버에서 실행되는 화면(VM화면)을 클라이언트에게 실시한으로 전송해주는 프로토콜이 필요하다.

대표적인 프로토콜이 아래와 같다.