서버 가상화(feat. 컨테이너)

호제로·2022년 9월 25일
1

Virtualization

목록 보기
1/1

Virutal Machine vs Container 차이

  1. Virtual Machine
    • 호스트 운영체제에서 구동되며 그 바탕이 되는 하드웨어에 가상으로 액세스하는 Linux, Windows 등의 게스트 운영체제
    • 하드웨어 스택을 가상화
  1. Container
    • 애플리케이션을 관련 라이브러리 및 종속 항목과 함께 패키지로 묶어 소프트웨어 서비스 구동을 위한 격리 환경 마련
    • 운영체제 수준에서 가상화, 각 애플리케이션 마다 OS 커널 공유
    • 장점
      - 일관성 있는 런타임 환경 제공
      - 애플리케이션 샌드박스화
      - 드스크 용량 절감
      - 낮은 오버헤드

서버 가상화 종류

1. 호스트 OS 가상화(Type 2)

  • 물리적인 하드웨어에 OS를 설치하고 그 위에 가상의 에뮬레이팅 소프트웨어를 설치하여 동작하는 방식

  • 호스트 OS의 제약 사항이 없어 노트북이나 윈도우 환경위에서도 설치 가능

  • 최소 2개의 OS가 설치되기 때문에 오버헤드가 큼

    사용 솔루션

    • VmWare WorkerStation
    • Virtual Box

2. 하이퍼바이저 가상화(Type 1)

  • 호스트 OS없이 하이퍼바이저라는 소프트웨어를 물리 장비 위에 바로 설치하고 그 위에 VM들이 설치되는 형태

  • 전가상화, 반가상화 방식으로 구분

    2-1. 전가상화(Full-Virtualization)

    • 하드웨어 자원를 완전히 가상화 하는 방식
    • 게스트 OS가 각각의 언어로 요청하는 언어를 하이퍼바이저가 번역하여 하드웨어에 전달하는데, 하이퍼바이저는 이 과정에서 모든 명령어를 번역 및 중재하기 때문에 오버헤드가 상당함

    사용 솔루션

    • VM Ware사의 ESxi
    • MicroSoft사의 Hyper-V

    2-2. 반가상화(Para-Virtualization)

    • 하드웨어를 완전히 가상화하지 않고 전가상화 단점인 성능 저하를 해결하기 위해 하이퍼콜이라는 인터페이스를 통해 하이퍼바이저에게 직접 요청가능
    • 하이퍼바이저는 게스트 OS의 명령들을 직접 일일히 번역하지 않고 하드웨어로 명령어를 전달하는 역할만 수행

    사용 솔루션

    • Citrix사의 XenServer
    • RedHat사의 KVM

3. 컨테이너 가상화

  • 컨테이너 가상화는 별도의 하이퍼바이저 설치 없이 호스트 OS위에 컨테이너 엔진을 설치하여 가상화 수행
  • 컨테이너는 호스트 OS의 커널을 공유하지만, 컨테이너 엔진을 통해 각각의 컨테이너마다 독립된 자원(CPU, Memory, Network, I/O)를 할당 받아 사용
  • 게스트 OS(VM) 없이 동작되기 때문에 어플리케이션 배포가 빠르고, 이식성이 높으며, 오버헤드가 적어 빠른 장점이 있음
profile
Cloud Infra Structure & Developer

0개의 댓글