VM과 도커의 차이, JVM과 가상머신 차이

prana·2023년 10월 17일
post-thumbnail

VM과 Docker의 차이 ,JVM과 가상머신(VMWare, KVM등) 차이

  • VM과 도커의 차이

가상머신(Virtual Machine)

  • 하드웨어 가상화 기술을 사용하여 Host 시스템에서 여러 개의 독립적인 가상머신을 실행

    • 그 중 하이퍼바이저 기반의 가상화가 가장 많이 이용되었다.
    • 하이퍼바이저: 논리적으로 분할된 공간에서 VM이라는 독립된 가상환경을 만들고, 호스트 시스템에서 VM에 깔린 게스트OD를 구동 및 모니터링 하는 역할
      -게스트 OS를 구동 및 모니터링
  • 각 VM은 자체 운영 체제와 커널을 갖고 있으며, 리소스를 많이 소비하게 된다.

  • VM은 가상 하드웨어에 직접 액세스, 호스트와 VM 간에 오버헤드가 크다는 의미

    • 오버헤드: 호스트와 VM간의 통신 및 리소스 공유를 위한 추가 작업을 수행하는 데 필요한 시간과 처리 능력
      -> 상대적으로 느리게 작동
      • 서로 다른 운영체제 환경에서 실행해야 한느 어플리케이션이나 서버가 있는 경우에는 VM이 적합하다.

도커(Docker)

  • 도커 컨테이너는 호스트 운영 체제의 리소스와 커널을 공유하므로 가볍고 시작/종료가 빠르다.
    • 커널은 하드웨어 자원을 관리하고, 하드웨어와 프로세스 사이의 인터페이스 역할을 수행하는 OS 핵심 구성 요소 중 하나이다.
    • 커널은 컴퓨팅 자원을 가상화하고, 이를 프로세스에 할당한다.
  • 하나의 커널을 공유하고 있으므로 호스트 시스템에서도 컨테이너 내부의 프로세스를 볼 수 있다.

    단일 운영 체제 커널에서 여러 응용 프로그램을 실행하려는 경우에 적합하다.

도커 컨테이너

  • 응용 프로그램과 그 응용프로그램이 필요로 하는 모든 종속성을 포함하는 경량 가상화 패키지
  • 실행 환경, 코드, 런타임, 시스템 도구 및 라이브러리가 포함되어 있으며, 독립적인 환경에서 응용 프로그램을 실행하는 데 사용된다.

하이퍼바이저의 역할

: 가상화 기술에서 핵심적인 역할을 하는 소프트웨어 레이어, 컴퓨터 하드웨어를 가상환경으로 분할하고 가상머신(VM)을 관리

  • 호스트 시스템에서 다수의 게스트 OS를 구동할 수 있게하는 소프트웨어
  • 하드웨어를 가상화하면서 하드웨어와 각각의 VM을 모니터링하는 중간 관리자 역할을 하는 것이 하이퍼바이저

출처

  • Type 1 : 네이티브 하이퍼바이저 / 하이퍼바이저가 하드웨어 바로 위에서 실행되는 방식
    • Xen, 마이크로 소프트 Hyper-V, KVM
    • Type 2 : 호스트형 / 일반적인 소프트웨어처럼 호스트 OS 위에서 실행
      • VMWare server, VMWare Workstation, Virtual Box
  1. 하드웨어 가상화
    : 실제 컴퓨터 하드웨어를 여러 가상 머신으로 분할, 각 VM이 독립적인 환경으로 동작하도록 한다.
  2. 가상 머신 관리
  3. 리소스 관리
  4. 가상 머신 모니터링
  5. 보안과 격리
  6. 가상머신 스냅샷 : VM의 스냅샷을 만들어서 특정 시점의 상태를 보존

Java Virtual Machine(JVM)

  • vm -> System Virtual Machine
  • JVM -> Process Virtual Machine
  • 일반 프로그램은 운영체제 위에서 프로그램이 실행된다면, 자바 프로그램은 운영체제가 JVM을 실행시키면 JVM이 프로그램(클래스 파일)을 실행시킨다.
  • 다만, 플랫폼 독립성에 따라 각 운영체제에 맞는 가상 머신을 설치해야 하므로 운영체제에 종속적이다.
    • 자바 프로그램은 일반 프로그램보다 한 단계를 더 거쳐야 하므로, 상대적으로 실행 속도가 느리다는 단점이 있다.

출처 및 참고한 내용

0개의 댓글