서버 가상화

From CS Wiki
Revision as of 08:29, 1 May 2020 by 김창수 (talk | contribs)
Server Virtualization

분류

  • 가상머신 방식(하이퍼바이저 이용)
    • 호스트 가상화
    • 베어메탈 가상화(aka. 네이티브 가상화)
      • 전가상화
      • 반가상화
  • 컨테이너 방식

가상머신 방식

하이퍼바이저를 이용한다. 하이퍼바이저 가상화라고도 한다.

호스트 가상화

호스트 OS 위에서 게스트 OS를 구동시키는 방식

가상환경 가상환경
애플리케이션 애플리케이션
미들웨어 미들웨어
게스트OS 게스트OS
하이퍼바이저
호스트 OS
하드웨어
  • 장점 : 가상의 하드웨어를 에뮬레이팅하기 때문에 호스트 운영체제에 크게 제약사항이 없음
  • 단점 : OS위에 OS가 얹히는 방식이기 때문에 오버헤드가 클 수 있음
  • 예시) VM Workstation, VMware Server, VMware Player, MS Virtual Sever, Virtual PC, Virtual Box, Paralles Workstation 등

베어메탈 가상화

호스트 OS 없이 하드웨어에 하이퍼바이저를 설치하는 방식

가상환경 가상환경
애플리케이션 애플리케이션
미들웨어 미들웨어
OS OS
하이퍼바이저
하드웨어
  • 장점 : 별도의 Host OS가 없기 때문에 오버헤드가 적고, 하드웨어를 직접 제어하기 때문에 효율적으로 리소스를 사용할 수 있음
  • 단점 : 자체적으로 머신에 대한 관리 기능이 없기 때문에 관리를 위한 컴퓨터나 콘솔 필요
  • 예시) Xen, MS hyper-V, citrix, KVM 등

컨테이너 가상화

호스트 OS위에 컨테이너관리 소프트웨어를 설치하여, 논리적으로 컨테이너를 나누어 사용하는 방식

가상환경 가상환경
애플리케이션 애플리케이션
미들웨어 미들웨어
컨테이너 관리 소프트웨어
OS
하드웨어
  • 장점: 컨테이너 가상화는 오버헤드가 적어 가볍고 빠름
  • 단점: 보안적으로 완전 격리가 되지 않아 오류 전파 및 침해 가능성
  • 예시) 도커, 쿠버네티스

전가상화와 반가상화

전가상화

Full-Virtualization
  • 하드웨어를 완전히 가상화 하는 방식으로 Hardware Virtual Machine 이라고도 불림
  • 하이퍼바이저를 구동하면 DOM0라고 하는 관리용 가상 머신이 실행되며, 모든 가상머신들의 하드웨어 접근이 DOM0을 통해서 이루어짐
    • 즉, 모든 명령에 대해서 DOM0가 개입을 하게되는 형태입니다.
  • 하이퍼바이저는 가상화된 OS에 무관하게 각 OS들이 내리는 명령어 인식 가능
    • ex) 윈도우 에서 Add, 리눅스 에서 ADD, 맥에서 add 라는 명령어를 내렸을때 하이퍼바이저가 “더해라”라고 번역 하여 명령어로 번역하여 실행
  • 하이퍼바이저는 이러한 번역 역할 뿐만 아니라 가상화된 OS들에게 자원을 할당해주는 역할도 담당
  • 장점 : 하드웨어를 완전히 가상화하기 때문에 Guest OS 운영체제의 별다른 수정이 필요 없음
  • 단점 : 하이퍼바이저가 모든 명령을 중재하기 때문에 성능이 비교적 느림

반가상화

Para-Virtualization
  • 반가상화는 전가상화와 달리 하드웨어를 완전히 가상화 하지 않음
  • 전가상화의 가장큰 단점인 성능저하의 문제를 해결하기 위해 하이퍼콜(Hyper Call)이라는 인터페이스를 통해 하이퍼바이저에게 직접 요청
  • 가상화된 각 OS들이 각각 다른 번역기를 가진 형태로, 그 번역기는 각각 다른 OS에서 내리는 각각 다른 명령어를 "더해라"라고 번역
  • 장점 : 모든 명령을 DOM0를 통해 하이퍼바이저에게 요청하는 전가상화에비해 성능이 빠름
  • 단점 : 하이퍼바이저에게 Hyper Call 요청을 할 수 있도록 각 OS의 커널을 수정해야하며 오픈소스 OS가 아니면 반가상화를 이용하기가 쉽지 않음

참고 문헌