가상화의 개념과 종류(호스트 OS, 하이퍼바이저)

728x90
반응형

1. 가상화

1) Container & 가상화

가상화란?

서버, 스토리지, 네트워크 및 물리적 시스템에 대한 가상 표현을 생성하는 기술이다. 가상 소프트웨어는 물리적 하드웨어 기능을 모방하여 하나의 물리적인 컴퓨터에서 여러 가상 시스템을 동시에 실행할 수 있다. 이를 통해 하드웨어 리소스를 효율적으로 사용할 수 있고, 클라우드 컴퓨팅 서비스를 지원하여 조직의 인프라를 더 효율적으로 관리할 수 있다.

가상화 이점

  • 효율적인 리소스 사용
  • 자동화된 IT 자원 관리
  • 신속한 재해 복구: 가상화가 아니더라도 최근에는 운영체제나 소프트웨어가 이 기능을 지원

가상화 서비스

  • 서버 가상화
  • 스토리지 가상화
    • 하나의 스토리지 나누어 쓰기
    • 여러 개의 스토리지를 하나처럼 가상화

🔥여러 개의 디스크를 따로 사용할 수는 없다.리눅스는 하드웨어도 파일로 관리한다. → 파일은 디렉터리로 묶을 수 O

  • → 확장이 쉬운 것이 특징이다.
    Windows는 디스크 하나를 파티션으로 나눠 사용할 수는 있지만, 여러 디스크를 하나로 가상화하거나 스토리지를 유연하게 관리하는 데에는 한계가 있다.
  • 리눅스는 이 두가지가 모두 가능하다.

 

  • 네트워크 가상화
    • 물리적 환경의 데이터 라우팅에서 라우팅 관리를 인수해서 트래픽 라우팅을 제어(SDN - Software Defined Networking)
    • 애플리케이션 트래픽보다 영상 통화 트래픽우선적으로 처리하도록 시스템을 프로그래밍해서 사용하는 것이 가능
      • 같은 회선을 사용하더라도 트래픽에 가중치를 둘 수 있음.
  • 데이터 가상화
  • 애플리케이션 가상화
  • 데스크탑 가상화(DaaS, DVI): 사용자의 업무 수행을 위한 애플리케이션, 데이터, 문서 등은 서버에 저장되고, 서버에서 실행된 애플리케이션 실행 결과가 데스크톱 환경에 이미지 형태로 전송되어 사용자의 데스크톱은 입출력을 위한 장치로만 사용된다.

2) 가상화 방식

호스트 운영체제 가상화

게스트 OS

가상화 소프트웨어

호스트 운영체제

하드웨어

  • 물리적 하드웨어 위에 설치된 HOST OS 위에 가상화 소프트웨어와 가상머신에 설치된 OS를 움직이는 방식
  • 장점) 가상의 하드웨어를 Emulating 하기 때문에 호스트 운영체제에 크게 제약 사항이 없음
  • 단점) OS 위에 OS가 얹히는 방식이기 때문에 오버헤드가 클 수 있음
  • 대표적인 가상화 소프트웨어
    • VMWare Workstation
    • Virtual Box
    • Virtual PC
    • UTM

호스트 OS 가상화

하이퍼바이저 가상화

호스트 운영체제 없이 하드웨어에 하이퍼바이저를 설치해서 사용하는 가상화 방식이다.

하나의 컴퓨터에서 여러 가상 머신을 관리하는 소프트웨어 구성 요소로, 각 가상 머신이 할당된 리소스를 얻고 다른 가상 머신의 작동을 방해하지 않도록 한다.

  • 장점: 호스트 OS와 별도로 개별 시스템처럼 동작하기 때문에 오버헤드 존재X
  • 단점: 호스트 OS가 없기 때문에 관리를 위한 컴퓨터나 콘솔이 필요
  • 적용 예시: 서버 가상화의 대부분이 이 방식으로 구현된다. 하드웨어와 운영체제 사이에서 물리적 시스템의 하드웨어에 직접 설치되는 경우를 '베어메탈 하이퍼바이저'라고 부른다.

구현 방식

  • 전가상화: 하드웨어 전체를 완전히 가상화하는 방식
    • VMWare의 ESX Server, MS의 Hyper V가 대표적인 전가상화 소프트웨어
  • 반가상화: 하드웨어 제어를 위한 컨트롤러 대신에 운영체제와 직접 대화를 할 수 있는 인터페이스를 제공하는 방식
    • 전가상화보다 성능이 우수
    • Xen, KVM이 대효적인 반가상화 소프트웨어

Container 가상화

  • 호스트 운영체제 위에 Container 관리 소프트웨어를 설치하고 논리적으로 Container를 나누어 사용
  • 애플리케이션 동작을 위한 라이브러리와 애플리케이션으로 구성된 컨테이너를 이용하는데, 각각 별개의 서버처럼 사용이 가능
  • 장점: 오버헤드가 적고 가볍고 빠르다는 장점이 있음.
  • 단점: 다양한 OS를 사용할 수 없고(리눅스만 가능) 보안적으로 완전히 격리되지는 않음.
  • 컨테이너 가상화 소프트웨어
    • OpenVZ
    • LXC
    • Linux VServer
    • Docker
    • Oracle Solaris Zones
  • 계층
    • 미들웨어
    • 컨테이너 관리 소프트웨어(가상화 소프트웨어→OS에 비해 단순)
    • OS
    • 하드웨어

3) 애플리케이션 배포 방식의 변화

운영체제 위에 애플리케이션 → 하이퍼바이저 이용 → 컨테이너 방식

 

전통적인 애플리케이션 배포는 운영체제 위에 애플리케이션을 바로 설치하는 방식이었으나,

하이퍼바이저를 이용하는 방식으로 바뀌었다가 최근에는 컨테이너 방식으로 많이 전환되고 있다.


4) Container

  • 각 애플리케이션에 운영체제가 아닌 의존성 요소만 포함시킨 것
  • 애플리케이션 인터페이스는 호스트 운영체제와 직접 연결되며 게스트 운영체제같은 추가 레이어가 없기 때문에 다음과 같은 장점을 가짐
    • 성능 향상
    • 리소스 낭비 X
    • 이미지 파일 크기 작음
  • 컨테이너는 호스트 운영체제의 프로세스 수준에서 격리되며, 컨테이너 간에는 기본적으로 의존성 요소를 공유하지 않는다.

컨테이너 방식은 Linux 네임스페이스와 컨트롤 그룹을 생성해서 모든 처리를 수행하는데,

이 때문에 컨테이너의 보안이 Linux 커널 프로세스 격리를 기반으로 하게 된다.

이는 충분히 검증되었지만 가상머신이 제공하는 전체 OS 기반 격리보다는 덜 안전하다고 알려져 있다.

728x90
반응형