가상머신(VM)과 컨테이너(Container) 비교

1. 가상머신(VM)과 컨테이너(Container) 개념 비교

비교 항목가상머신(Virtual Machine)컨테이너(Container)
개념도
개념하이퍼바이저를 통해 물리적인 자원을 재구성하여 논리적인 자원으로 제공하는 가상 컴퓨팅 환경컨테이너 엔진을 통해 물리적인 자원을 격리하여 논리적인 자원으로 제공하는 가상 컴퓨팅 환경
  • 가상머신은 Guest OS로 완전격리되어 Host OS에 종속성이 낮지만 오버헤드가 발생하고, 컨테이너는 APP 단위 격리로 성능저하 방지 가능하나 Host OS에 종속성 존재

 

2. 가상머신과 컨테이너 상세 비교

비교 항목가상머신(Virtual Machine)컨테이너(Container)
구성도
구성요소하이퍼바이저, Host OS, Guest OSLXC, Namespace, Cgroups, Libvirt
가상화 방식전가상화, 반가상화LXC 기반 컨테이너 기술
OS 지원 환경다양한 OS 지원단일 OS 지원 (Host OS)
실행 환경Guest OS 기반Container 기반
APP 종속성완전 격리로 종속성 낮음Host OS에 종속
오버헤드Guest OS (오버헤드)오버헤드 낮음
성능오버헤드로 성능저하성능 저하 낮음
H/W 관리Type-1(Bare Metal): 베어메탈 서버에 하이퍼바이저 기동
Type-2(Hosted): Host OS에서 하이퍼바이저 기동
Namespace: 운영 환경을 고립시켜, 독립적인 공간을 제공하는 기능
Cgroups: 프로세스 그룹에 대한 자원 제한, 격리, 모니터링 수행
주요 제품VMWare, Hyper-V, KVM, XenLXC, Docker, Kubernetes
  • Linux Container 기반 기술은 개발 용이, 성능 장점, Hypervisor 기반 기술은 독립성이 높아 개별 서버 운영에 적합

 

3. 시스템 유형 별 가상화 기술 선택 기준

선택 기준세부 내용가상화 기술
서버 별 역할에 차이– WAS서버와 DB서버
– 서로 다른 APP 서버
Hypervisor
서버 역할 동일– 개발서버와 운용서버
– 동일 APP 서버
Linux Container
  • 동일 Driver 필요 시 Linux Container 방식 권장, 다른 Driver 필요 시 Hypervisor 방식 권장

 

[참고]

  • 소프트웨어정책연구소(SPRi), 클라우드 가상화 기술의 변화

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^