운영체제 수업을 수강하며 정리한 내용을 작성하려고 합니다.
3/21 가상화 장점
-
용어
- Host: 실제 물리 컴퓨터(하드웨어), 다수의 가상화된 컴퓨터를 실행하는 underlying machine을 의미
- Guest: Host 위 생성되는 다수의 가상 인스턴스를 의미
-
장점
Hypervisor
게스트 OS와 하드웨어 사이에서 가상화된 컴퓨터 H/W 자원을 제공하기 위한 관리 계층
- 게스트 OS : hypervisor가 제공하는 가상화된 H/W 자원을
이용하는 운영체제, Hypervisor의 HW 에뮬레이션을 통해 실제 하드웨어가 제공되는 것처럼 인식함
- 각 게스트 OS는 가상 머신으로 정의되고, 서로의 존재를 알지 못함
- H/W에 대한 접근은 hypervisor 에게 할당 받은 자원(영역)에 대해서만 수행
- Hypervisor는 각 게스트 OS간 CPU, 메모리 등 시스템 자원을 분배/제한하는 등의 역할을 수행(고립을 지원)
장점
- 하나의 물리 컴퓨터에서 여러 종류의 게스트 OS 운용이 가능
- 실제의 컴퓨터가 제공하는 것과 다른 형태의 명령어 집합 구조(Instruction Set Architecture)를 제공
- 다른 H/W환경으로 컴파일 된 게스트 OS 및 응용 프로그램도 실행 가능
단점
- H/W를 직접적으로 사용하는 다른 운영체제에 비해 성능이 떨어짐(오버헤드, 하드웨어 사용을 위해 한 단계(하이퍼바이저)를 더 거쳐야 함)
- 기존에 하드웨어에서 직접 처리되던 것들을 Hypervisor가 대신 처리하기 때문
성능 개선 시도
Container
- Light-weight virtualization
- 기존 가상머신에서 OS가 빠진 개념, Host OS가 공유됨, 하이퍼바이저 없이 호스트 운영 체제와 커널을 공유
- Guest OS가 커널까지 포함하여 isolation을 유지할 필요가 없는 경우(운영체제까지 가상화하지 않아도 될 때)
- OS는 게스트에 포함되지 않음
- 이 때, 각 게스트를 “컨테이너”라고 부르고 컨테이너를 생성하는 SW를 container runtime이라고 함
- 대표적인 Container runtime: Docker

- 장점
- Image화가 용이함
- 컨테이너가 실행될 때 필요한 실행 환경, 프로그램 등을 묶어둔 것
- 컨테이너 이미지를 기반으로 새로운 컨테이너 생성이 가능
- 배포의 용이성(이식성)
- 단점
- 호스트 OS에 종속적
- 보안성
- 컨테이너 내부에서 악성코드가 실행되면 호스트 시스템 및 다른 컨테이너에 영향(고립이 부족)