가상화(virtualization)

JiwonChoi·2022년 9월 19일

클라우드

목록 보기
2/6
post-thumbnail

이번 차트의 핵심
가상화를 왜 하는가??? → 하드웨어 자원을 나눠쓰기 위해서 한다.
그러면 자원을 나눠쓸 때 중요한 포인트는 무엇인가?? → 서로 독립적 (간섭, 충돌, 영향 X)
VM → 하드웨어를 독립적으로 만들어준다.
Container → 서로 독립적으로 보이게 만들어준다. → os를 가상화 한다.


가상화 (virtualization)

컴퓨터에서 물리적인 자원을 추상화하는 기술
-> 물리적인 자원인 하드웨어를 추상화를 통해 여러 개의 하드웨어로 보이게 해준다.


Hypervisor : 가상화를 하기 위해 필요한 소프트웨어

호스트 컴퓨터에서 다수의 OS를 동시에 실행하기 위해 자원을 가상화 해준다.
이 과정이 수행이 되어야 여러 OS를 동시에 운영할 수 있다.

해당 그림을 보면 Hypervisor가 자원들을 분배시켜 virtual H/W를 생성함을 알 수 있다.


Hypervisor의 분류

Hypervisor는 2가지의 분류가 있다.

  • 설치방식에 따른 분류

type1) Native or Bare metal

호스트의 하드웨어 위에서 바로 동작한다.

-> cpu가 가상화를 지원해줘야 된다.

XenServer, Vmware ESX 등이 있다.

KVM(linux에 같이 포함)

type2) Hosted

호스트의 하드웨어의 위가 아닌 OS상에서 Hypervisor가 동작한다.
-> Hypervisor는 OS를 통해서 H/W를 호출하게 된다.

Virtual Box, VMware Desktop

QEMU


KVM (Kernel based Virtual Machine)

type 1의 Hypervisor 이다.

Linux Hardware의 전가상화(full virtualization)을 지원한다.


QEMU(Quick Emulator)

type 2의 Hypervisor 이다.

Linux위에서 별도로 동작한다.

작업이 느리다는 단점이 있다.

cpu가 아닌 다른 H/W의 가상화를 지원한다. → cpu의 명령처리보다 덜 급한 작업들

느리다는 단점을 보완하기 위해 cpu 작업은 KVM, 나머지 작업은 QEMU를 사용하여 느린 점을 보완하는 방법이 있다.


전가상화, 반가상화

  • Full Virtualization (전가상화)

하드웨어 전체를 완전히 가상화한다. → Guest OS를 원 OS의 변경없이 사용이 가능하다.

  • Para Virtualization (반가상화)

하드웨어를 완전히 가상화 하지 않는다.

→ Guest OS에서 직접 하드웨어 제어가 안된다. 따라서 Hypervisor를 통해 제어를 해야된다.

Guest OS는 원래 OS로부터 일부 수정된 것들이 사용된다.


KVM 과 QEMU를 같이 사용하는 법

cpu의 명령은 KVM을 사용하고, 나머지 하드웨어의 명령은 QEMU를 사용하는 방식으로 사용이 된다.


Libvirt

가상화를 관리해주는 라이브러리

Hypervisor에는 여러 종류가 있는데 이러한 환경을 통합적으로 관리하기 위해 만들어진 오픈소스 라이브러리이다.


Container

OS를 가상화 하기 위해 사용되는 방법


VM 과 Container의 차이

VM

Host OS 위에서 Hypervisor를 통해 자원을 가상화 하여 VM 동작

Host OS 위에 Guest OS가 동작하는 구조이다.

Container

OS를 가상화한다.

Host OS에서 프로세스를 위한 공간을 별도 분리

기본적인 Binary, Library 만을 guest OS 대신 사용한다.

profile
안녕하세요~

0개의 댓글