가상 머신 (Virtual Machine)
:하나의 하드웨어 (CPU, Memory 등)에 다수의 운영 체제를 설치하여 개별 컴퓨터 처럼 작동하도록 하는 것
가상 머신 구현 방식에 따라
type1 / type2 생성
<type1>
가상 머신을 구동시키는 하이퍼 바이저나 가상 머신 모니터(VMM)라는 소프트웨어를 하드웨어 위에서 구동시키는 것
<type2>
하드 웨어 위에 이미 운영 체제가 설치되어 있고, 그 위에 가상 머신을 구동시키는 것
성능 빠를 가능성이 높다(구성에 따라 다르긴 해서)
type1 > type2
<Full Virtualization 전가상화>
각각의 가상 머신이 VMM을 거쳐서 하드웨어와 통신하는 경우
하이퍼 바이저가 마치 하드 웨어인 것처럼 동작하여, 가상 머신의 OS는 자신이 가상 머신인 것을 모른다.
<Half Virtualization 반가상화>
VMM은 리소스 관리만 해주며, 각각의 가상 머신의 OS는 이를 인지하고 각 명령에 하이퍼 바이저 명령을 추가하여 하드웨어와 통신하는 것
OS가 이를 인지하기 위해 OS 수정이 필요하다.
VMWare (type2)
KVM (type1) - AWS에서 사용
CPU에서 지원이 되어야 하고, KVM이라는 소프트웨어도 리눅스 커널이다.
protection-ring도 가상 머신에서도 사용하는 것
Docker
: 운영체제 레벨에서 별로도 분리된 실행환경을 조성
가상 머신 : 하드웨어 추상화
도커 : 커널 추상화
Bare-metal 방식이 하드 웨어에서 직접 접근하기에, 성능이 가장 좋다. (AWS에서 사용하는 KVM)
Docker는 경량 이미지로 실행환경을 통째로 백업, 실행이 가능하다.
JVM (Java Virtual Machine)은 응용 프로그램 가상화 >> 어느 운영 체제에서나 실행 가능한 이유
댓글