가상화 소프트웨어는 하드웨어 기능을 소프트웨어로 모사해 하나의 물리 컴퓨터에서 여러 가상 시스템과 운영 체제를 실행하게 하는 기술이다. 각 가상 시스템에는 네트워크 카드나 디스크처럼 분리된 가상 하드웨어를 할당할 수 있다.[2][4]

1. 개요

가상화의 중개자인 하이퍼바이저는 실제 하드웨어와 가상 시스템 사이에서 하드웨어 자원을 제공한다. 하이퍼바이저는 호스트 운영 체제가 필요한 Type 2 방식과 하드웨어에 직접 놓이는 Type 1 방식으로 구분된다. 가상화 소프트웨어는 생성 방식과 대상 자원에 따라 여러 유형으로 나뉜다.[1][4]

가상화는 값비싼 처리 자원을 아끼기 위해 수십 년 전 메인프레임에서 시작됐다. 오늘날에는 한 서버에서 여러 운영 체제와 애플리케이션을 실행하는 데 쓰인다.[4]

2. 가상 머신과 하이퍼바이저

가상 머신은 물리 컴퓨터 안에서 독립된 시스템처럼 실행되는 가상 환경이다. 하이퍼바이저 또는 가상 머신 모니터는 호스트 하드웨어를 가상 시스템에 제공하며, 가상 머신마다 네트워크 카드, 디스크, 그래픽 어댑터 등의 가상 하드웨어를 둘 수 있다.[1][2]

하이퍼바이저의 한 방식은 호스트 운영 체제가 필요하고, 다른 방식은 하드웨어에 직접 놓인다. KVM은 Linux 커널 기반의 가상화 솔루션으로, 수정하지 않은 Linux 또는 Windows 이미지를 가상 머신에서 실행할 수 있다.[2][4]

3. 가상화 방식별 사례

TTA 정보통신용어사전은 가상화 소프트웨어의 유형으로 전가상화, 반가상화, 운영 체제 기반 가상화를 든다. 사전의 사례에는 전가상화의 VMware, 반가상화의 Xen, 운영 체제 기반 가상화의 Linux-VServer가 포함된다.[1]

이 구분은 가상 시스템을 구성하는 방식에 따른 유형을 보여준다. 한편 하이퍼바이저는 호스트 운영 체제가 필요한 Type 2 방식과 하드웨어에 직접 놓이는 Type 1 방식으로 구분된다.[1][4]

4. KVM의 구성과 실행 조건

KVM은 가상화 확장 기능(Intel VT 또는 AMD-V)이 있는 x86 하드웨어에서 Linux용 전가상화를 제공한다. 여러 가상 머신에서 수정하지 않은 Linux나 Windows 이미지를 실행할 수 있다.[2]

커널 구성 요소는 핵심 가상화 기능을 제공하는 kvm.ko 모듈과 프로세서별 모듈인 kvm-intel.ko 또는 kvm-amd.ko로 이뤄진다. KVM의 커널 구성 요소는 Linux 2.6.20부터 메인라인에, 사용자 공간 구성 요소는 QEMU 1.3부터 메인라인에 포함됐다.[2]

5. 네트워크 기능의 소프트웨어 구현

네트워크 장비 가상화는 방화벽, 트래픽 부하 제어, 라우터 같은 장비의 기능과 처리를 서버에서 소프트웨어로 구현하는 방식이다. 기존 장비를 각각 설치하고 운용할 때 생기는 관리상의 어려움과 설치·운용 비용 문제를 줄이는 데 활용될 수 있다.[3]

이는 물리 네트워크를 논리적으로 나누는 네트워크 가상화와 구별된다. 전자는 네트워크 장비의 기능을 소프트웨어로 구현하고, 후자는 물리 네트워크를 논리적으로 분할한다.[3]

6. 가상화와 컨테이너화의 차이

가상화는 하이퍼바이저가 물리 하드웨어와 가상 시스템 사이에서 중개하는 방식이다. 서로 다른 운영 체제 요구 사항을 가진 애플리케이션을 같은 하드웨어에서 실행해야 할 때 활용될 수 있다.[4]

컨테이너화는 하이퍼바이저 대신 하나의 호스트 커널을 중개자로 사용하며, 컨테이너들이 같은 운영 체제를 공유한다. 컨테이너는 모듈형 애플리케이션을 구성할 때 각 구성 요소를 따로 개발하고 나중에 결합하는 데 적합하다.[4]

7. 관련 문서

8. 인용 및 각주

[1] Tterms.tta.or.kr(새 탭에서 열림)

[2] Llinux-kvm.org(새 탭에서 열림)

[3] Tterms.tta.or.kr(새 탭에서 열림)

[4] Wwww.techtarget.com(새 탭에서 열림)