ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 가상화와 컨테이너화 기술의 비교
    CS/운영체제 2024. 1. 5. 12:17

     

     

    가상화는 크게 3가지로 나누어서 생각해 볼 수 있습니다.

    Virtualization으로 불리는 type1, type2와 containerization으로 나뉘는 컨테이너화 기술이 있습니다.

    3가지의 차이를 간단히 알아보겠습니다.

     

     

    https://www.researchgate.net/figure/Container-based-Virtualization-vs-Traditional-Virtualization_fig4_317297877

     

     

     

    Virtualization

    제가 가상화를 아주 간단하게 표현하면, 한 컴퓨터에서 마치 여러 대의 컴퓨터를 사용하는 것처럼 공간을 나누는 기술이라고 할 것 같습니다.

    실제 컴퓨터의 하드웨어 리소스를 여러 대의 가상 컴퓨터가 나눠쓰는 형태로 구현됩니다.

    이 때 리소스 분배를 관리하는 컴포넌트를 hypervisor라고 하고, hypervisor의 위치에 따라서 bare-metal과 hosted로 구분 짓습니다.

     

     

    1.  Bare-metal hypervisor (type1)

    'barefoot' 이란 단어는 맨발이라는 뜻입니다. bare는 벌거벗은 이라는 뜻을 가지고 있습니다.

    그래서 bare-metal은 '벌거벗은 철'이라고 직역될 것 같고 이는 포장되지 않고 있는 그대로의 철이라고 의역할 수 있겠습니다.

    또 컴퓨터의 하드웨어 리소스들은 금속 제품들이니 철로 비유할 수도 있겠습니다.

     

    기본적으로 일반 사용자가 컴퓨터를 사용할 때는 하드웨어가 OS로 감싸져있기 때문에 metal이라는 것을 느끼지 않고도 사용할 수 있습니다. 하지만 type1 hypervisor는 이 OS를 벗겨내고 그 자리에서 하드웨어 리소스를 관리하기 때문에 bare-metal이라고 하는게 아닐까 생각해봅니다.

     

     

    • 하드웨어 직접 실행: host os를 두지 않고 하드웨어 위에서 바로 실행
    • 고성능 및 효율성: 하드웨어 리소스를 직접 관리하기 때문에 효율적인 리소스 사용 가능
    • 사용 사례: 대규모 서버 환경, 데이터센터, 클라우드 인프라

     

     

    2. Hosted hyperviosr (type2)

    Hosted는 호스트가 있는 정도로 생각할 수 있겠습니다. type1과 다르게 type2 가상화는 host os가 존재하고 그 위에 hypervisor가 작동하는 방식입니다. 일반 사용자가 편하게 사용할 수 있는 것에 장점이 있는 타입입니다.

     

    • 호스트 운영체제 위 실행: 기존 운영체제가 있고 그 위에 설치 및 작동
    • 간편한 설정 및 사용: 개인 사용자나 소규모 환경에서 쉽게 설치하고 사용 가능
    • 성능 오버헤드: 호스트 OS를 거치므로 Type 1에 비해 성능 오버헤드 발생
    • 예시: VMware Workstation, Oracle VirtualBox, Parallels Desktop 등

     

     

     

    Containerization

    컨테이너화는 애플리케이션과 그 필요한 종속성만을 격리된 환경에서 실행하는 방식입니다.

    격리된 환경을 컨테이너라고 하고, 각 컨테이너들은 컨테이너 엔진 위에서 작동합니다.

    위 이미지 중 오른쪽 3번째 이미지에 해당하고, 해당 이미지에서는 컨테이너 엔진을 Docker로 표현하고 있습니다.

     

     

    3. Containerization

    가상화와 큰 차이는 '개별 격리환경에서 os를 가지고 있는가?'에 있다고 생각합니다.

    가상화에 격리 환경은 vm(virtual machine) 이고 이들은 개별 os를 가지는 반면에 도커의 컨테이너는 host os의 커널을 이용하기 때문에 개별 컨테이너에서 os를 가지지 않습니다. 이런 가벼움이 컨테이너의 큰 장점 중 하나 입니다.

     

    • 경량성: os는 host의 리소스를 공유하고 컨테이너에는 애플리케이션 실행에 필요한 것들만 포함
    • 이식성: 애플리케이션 실행에 필요한 종속성을 모두 포함하기 때문에 다양한 환경에서 동일하게 작동
    • 격리성: 각 컨테이너는 서로 독립적으로 실행되며, 자체 파일 시스템 작동

     

     

     


    [이미지 출처]
    https://www.researchgate.net/figure/Container-based-Virtualization-vs-Traditional-Virtualization_fig4_317297877

    'CS > 운영체제' 카테고리의 다른 글

    프로세스와 스레드의 실행 방식  (0) 2023.10.22
Designed by Tistory.