가상화란 무엇인가? - 개념과 종류

Argonaut·2024년 12월 17일
post-thumbnail

0. 가상화(Virtualization)이란?

Virtualization(가상화)은 하나의 물리적 하드웨어 리소스를 가상의 여러 독립적 환경으로 나누어 사용하는 기술


1) 가상화의 개념

가상화는 하이퍼바이저(Hypervisor)라는 소프트웨어를 통해 이루어지는데, 물리적인 H/W 위에 여러 개의 가상 머신(VM)을 실행함으로써 각 VM이 독립적인 OS와 애플리케이션 실행이 가능해집니다.

  • 호스트(Host) : 가상 머신을 제공하는 실제 물리적 시스템
  • 게스트(Guest) : 가상화 환경에서 실행되는 개별 가상 시스템

가상화는 CPU, 메모리, 저장 장치, 네트워크 리소스를 가상 머신 간에 효율적으로 나누어 사용하게 됩니다


2) 가상화의 종류

서버 가상화(Server Virtualization)

  • 물리적 서버의 리소스를 가상화하여 여러 개의 가상 서버를 생성
  • 각 가상 서버는 독립적인 OS와 애플리케이션을 실행 가능
  • 장점
    1. 서버 리소스 활용 극대화
    2. 비용 절감
    3. 관리 용이
    4. 격리성
  • 종류 : VMware vSphere, Microsoft Hyper-V, KVM, Citrix XenServer
  • 기존 서버 구조와 서버 가상화(Hypervisor type 1)
    Server Virtualization

    서버 가상화는 하나의 물리적 서버에서 하이퍼바이저를 통해 여러 가상 서버(VM)를 생성하고 각각 독립된 서버 OS를 실행하여 서버 자원을 효율적으로 활용하는 기술

자세한 내용은 하단 링크를 타고 확인해보자
가상화란 무엇인가? - Server Virtualization

데스크톱 가상화 (Desktop Virtualization)

  • 중앙 서버에서 데스크톱 환경을 가상 머신으로 제공하는 방식
  • 사용자는 원격으로 가상 데스크톱에 접속
  • 유형
    1. VDI (Virtual Desktop Infrastructure)
      • 목적: 개별 사용자에게 독립된 데스크톱 환경 제공 ex)집에서 사내 업무망에 접속
      • 데이터를 중앙 서버에 저장하기 때문에, 사용자가 보유한 디바이스를 통해 데이터 이용가능
    2. RDS (Remote Desktop Services)
      • 여러 사용자가 동일한 OS 환경을 공유
  • 종류 :VMware Horizon, Citrix Virtual Apps and Desk ops
  • Desktop Virtualization 구조
    Desktop Virtualization 구조

    데스크톱 가상화는 하나의 물리적 서버에서 하이퍼바이저를 통해 여러 가상 데스크톱(VM)을 생성하고 각각 데스크톱 OS를 실행하여 사용자가 원격으로 개인화된 데스크톱 환경을 사용할 수 있게 하는 기술

네트워크 가상화 (Network Virtualization)

  • 네트워크 리소스를 가상화하여 여러 개의 독립적인 가상 네트워크로 분리
  • 각 가상 네트워크는 실제 물리 네트워크와 동일하게 동작
  • 유형
    1. SDN (Software-Defined Networking)
      • 소프트웨어를 통해 네트워크 장치의 제어부분과 전송부분을 분리하여 유연한 네트워크 관리하는 기술
      • 제어 계층 (Control Plane)
        • 네트워크 장비(스위치, 라우터 등)의 제어 기능을 분리해 중앙 집중화된 SDN 컨트롤러가 제어를 수행
        • SDN 컨트롤러는 소프트웨어 기반으로 동작하며, 네트워크 트래픽 흐름과 라우팅 경로 등을 결정
      • 데이터 계층 (Data Plane)
        • 실제 트래픽을 전송하는 물리적 네트워크 장비(스위치, 라우터)가 해당 경로를 따라 패킷을 전달
        • SDN 컨트롤러로부터 받은 명령을 기반으로 트래픽을 처리
    2. NFV (Network Functions Virtualization)
      • 방화벽, 라우터 등의 네트워크 기능을 가상화하는 기술
  • 종류 : VMware NSX, Cisco ACI
  • Network Virtaulization 구조

네트워크 가상화(Network Virtualization)는 물리적 네트워크를 가상화하여 네트워크 자원을 논리적으로 분리 또는 통합하여 유연성과 효율성을 높이는 기술

컨테이너 가상화 (Container Virtualization)

  • 가상 머신보다 더 가볍고 빠른 가상화 방식
  • 컨테이너라는 독립적 실행 환경에서 애플리케이션을 실행
  • 종류: Docker, Kubernetes

애플리케이션 가상화 (Application Virtualization)

  • 애플리케이션을 독립적인 가상 환경에서 실행하게 하여 OS에 설치할 필요 없이 사용 가능
  • 장점
    1. 애플리케이션 호환성 문제 해결
    2. 관리 용이성
  • 종류: Microsoft App-V, Citrix Virtual Apps

스토리지 가상화 (Storage Virtualization)

  • 물리적 저장 장치를 논리적으로 통합해 하나의 저장 장치처럼 관리
  • 장점
    1. 효율적인 데이터 관리
    2. 가용성 및 확장성 향상
  • 종류: NetApp ONTAP, VMware vSAN

종류가 많고 헷갈릴 수 있지만 간단하게 생각하면 어떤 목적으로 무엇을 가상화하였냐에 따라 명칭이 다르다고 생각하면 편하다!!
+ 추가로 각 가상화별로 작성하지 않은 내용들이 많아 추후 새로 글을 작성해보도록 하겠습니다.


3) 하이퍼바이저 (Hypervisor)

가상화를 가능하게 하는 핵심 소프트웨어로, 하이퍼바이저는 물리적 하드웨어 위에서 가상 머신을 생성하고 리소스를 분배하는 역할을 수행합니다.

  • 종류
  1. Type 1 (Native/Bare Metal Hypervisor)

    • 운영체제 없이 하드웨어 위에서 바로 실행되는 하이퍼바이저
    • 성능이 뛰어나고 보안성 높음
    • 주로 서버 가상화에서 많이 사용
  2. Type 2 (Hosted Hypervisor)

    • 기존의 운영체제(호스트 OS) 위에서 실행되는 하이퍼바이저
    • 설치와 사용이 간단하지만, 성능이 상대적으로 낮음
    • 데스크톱 가상화나 개발 환경에서 많이 사용

하이퍼바이저 또한 정보가 많아 추후 정리를 해서 올려보도록 하겠습니다. ㅎ


4) 가상화의 장점

그럼 가상화가 가지는 장점들이 뭐가 있는지 정리해보자

  1. 리소스 효율성: 하드웨어 리소스를 최대한 활용

  2. 비용 절감: 물리적 서버 수를 줄여 하드웨어 및 운영 비용을 절감

  3. 유연성 및 확장성: 필요에 따라 가상 시스템을 생성 및 확장 가능

  4. 격리성: 각 가상 머신이 독립적으로 동작해 다른 VM에 영향이 없음

  5. 고가용성: 장애 발생 시 다른 호스트로 자동으로 전환되는 기능 제공


5) 가상화 활용

  1. 클라우드 컴퓨팅
    • Amazon AWS, Microsoft Azure, Google Cloud는 모두 가상화를 기반으로 서비스 제공
  2. 개발 및 테스트 환경
    • 개발자는 가상 환경을 만들어 여러 OS에서 애플리케이션을 테스트 가능
  3. 서버 통합 및 비용 절감
    • 기존 여러 서버를 가상화하여 리소스를 효율적으로 통합
  4. 재해 복구 및 백업
    • 가상 시스템을 백업 및 복원하여 빠른 복구가 가능
  5. 보안 격리
    • 각 VM이나 컨테이너를 격리해 보안 위험을 줄임

마무리

가상화는 IT 인프라의 리소스를 효율적으로 관리하고 비용을 절감하는 핵심 기술
주요 키워드 : 하이퍼바이저, 리소스 분리 및 효율화, 가상 머신


@참고문서
가상화란?
하이퍼바이저란 무엇인가?
서버 가상화 & 데스크톱 가상화
SDN이란?

profile
성장하는 개발자가 되기 위한 기록 일지

0개의 댓글