keumcloud 2023. 3. 19. 02:14

가상화(Virutalization)

  • 하나의 물리적 자원을 여러 개의 가상적인 자원으로 나누어 사용하는 기술
  • 여러 개의 물리적 자원을 하나의 가상 자원으로 통합하여 사용하는 기술
  • 서버 가상화, 스토리지 가상화, 네트워크 가상화, 데스크톱 가상화 등의 기술이 있음

 

서버 가상화 

  • 하나의 물리적 서버에서 여러 개의 가상 서버를 구축
  • 각각의 가상 서버는 독립적으로 작동하며 OS 혹은 애플리케이션 실행 가능
  • 호스트 가상화, 하이퍼바이저 가상화, 컨테이너 가상화 등이 있음

 

1. 호스트 가상화

*Host OS 위에 가상머신을 설치하고 그 위에 *Guest OS를 설치 및 실행시키는 기술

호스트 가상화는 다음 같은 구조로 작동

하드웨어 - 호스트 OS - 가상화 레이어 - 가상머신 - Guest OS

가상화 레이어는 호스트 OS 위에서 설치되며 하드웨어와 호스트 OS 사이에 위치하여 발생하는 작업을 처리함

예) VMware, VM Workstation, Virtual Box, VMServer 등

 

장점

Host OS와 Guest OS에 제약이 없음

가상 머신은 Host OS와 별도로 작동하기 때문에 Host OS가 어떤 종류이든 상관 없음

이는 즉 가상 머신 위에서 작동하는 Guest OS도 어떤 종류이든 상관 없음을 뜻함

 

단점

Host OS 위에 또다른 OS를 설치 및 실행 하는 것이기 때문에 *오버헤드가 큼

오버헤드 종류에는 CPU 오버헤드, 메모리 오버헤드, 디스크 오버헤드 등이 있음

 

*오버헤드 : 어떠한 작업을 수행할 때, 필요 이상으로 드는 추가적인 작업이나 자원 사용

*Host OS : 하드웨어에 직접 설치된 운영체제

*Guest OS : Host OS 또는 하이퍼바이저 위에 설치된 운영체제

 

 

호스트 가상화

 

 

2. 하이퍼바이저 가상화

하이퍼바이저를 사용하여 가상화된 환경을 만들고 각각의 가상 머신을 독립적으로 실행시켜 Guest OS를 설치 및 실행시키는 기술

Type-1(Native, Bare metal), Type-2(Hosted) 두 종류 있음

 

하이퍼바이저 가상화 종류

 

2.1 Type-1(Native, Bare metal)

하드웨어 위에 Host OS를 설치하지 않고 하이퍼바이저를 설치한뒤 그 위에 Guest OS를 설치 하는 방식

Type-1 하이퍼바이저는 다음 같은 구조로 작동

하드웨어 - 하이퍼바이저 레이어 - 가상머신 - guest OS

예) KVM, Xen, VMware ESXi, Microsoft Hyper-V, Citrix Hypervisor 등

 

장점

Host OS가 없기 때문에 오버헤드가 적다

단점

자체적으로 머신에 대한 관리 기능이 없기 때문에 관리를 위한 콘솔이 필요

 

 

Type-1 (Native, Bare metal)

 

 

2.2 Type-2(Hosted)

호스트 가상화와 마찬가지로 Host OS 위에서 실행 그 외는 Type-1과 동일

Type-2 하이퍼바이저는 다음 같은 구조로 작동

하드웨어 - 호스트 운영체제 - 하이퍼바이저 레이어 - 가상머신 - guest OS

예) KVM, Xen, VMware Workstation, Oracle VirtualBox 등

 

장점

호스트 OS 위에 설치되기 때문에 일반적인 애플리케이션처럼 설치 및 구성이 간단함

호스트 OS와 하이퍼바이저 간에 높은 호환성을 제공, 즉 Guest OS로 다양한 OS 지원

 

단점

Host OS 위에 또다른 OS를 설치 및 실행 하는 것이기 때문에 *오버헤드가 큼

 

 

Type-2 (Hosted)

 

 

호스트 가상화 VS 하이퍼바이저 Type-2(Hosted)

공통점

호스트 os 위에서 작동

하드웨어 가상화를 사용하며 여러 개의 가상머신을 실행 할 수 있음

 

차이점

호스트 가상화는 주로 서버 환경에서 사용되며 하이퍼바이저 Type-2(Hosted)는 개인용 컴퓨터와 같은 작은 환경에서 주로 사용됨

 

3. 컨테이너 가상화

Host OS 위에 컨테이너 관리 소프트웨어를 설치하여 각각의 컨테이너 별로 애플리케이션을 사용하는 방식

컨테이너 가상화는 다음 같은 구조로 작동

하드웨어 - 호스트 OS - 컨테이너 관리 소프트웨어 - 컨테이너 - 애플리케이션

예) Docker

 

장점

오버헤드가 적고 가벼우며 빠르게 실행 가능

 

단점

컨테이너는 애플리케이션에 대한 독립적인 환경을 제공하지만, 호스트 OS의 라이브러리나 의존성에 의존하기 떄문에 호스트 OS의 변화에 예민하다.

Docker의 경우 호스트 OS는 리눅스 기반 OS여야 함

 

 

컨테이너 가상화