[CS] 가상화 (Virtualization)

2025. 1. 7. 12:34
반응형

 

Virtualization(가상화) 

 

  • 단일 물리적 시스템에서 여러 운영 체제를 실행하고 기본 하드웨어 리소스를 공유할 수 있는 기능
  • 가상화는 컴퓨터의 자원을 여러 실행 환경으로 나누는 프레임워크 또는 방법론
  • 하드웨어와 OS를 분리하여 리소스 Utilization(활용도)와 Flexibility(유연성)을 높이는 Abstract layer(추상화 계층)임

 

 

가상화를 지원하는 솔루션은 VMM(Virtual Machine Monitor) 또는 하이퍼바이저

  • 가상 머신(Virtual Machine)
    • 격리된 런타임 환경(Guest OS 및 Application)을 의미함
    • Single Physical System에서 여러개의 VM을 실행할 수 있음
  • 하이퍼바이저(Hypervisor)
    • 가상 머신 관리자(VMM), 여러 운영 체제가 단일 하드웨어 호스트를 공유할 수 있도록 한다.
    • 호스트 프로세서와 리소스를 제어하여, 각각의 VM OS에 할당하여, 서로 방해되지 않도록 격리시킨다.

 

 

가상화의 장점과 단점

 

장점(Pros)

  • Cost(비용) : 물리적 서버, 서버 공간, 에너지 비용, 유지 비용 감소
  • Efficient Administration(효율적 관리) : 단일 머신으로 관리
  • Growth and Scalability(확장성)
  • Security(보안) : 단일 서버 보안 유지

 단점(Cons)

  • Slow Performance(느린 성능) : 하나의 머신에 대한 높은 부하
  • SPoF(Single point of failure) : 하나의 호스트 시스템에 여러개의 서버가 있음 → 백업 서버 설정필요
  • Learning curve(학습 곡선) : 각기 다른 유형의 소프트웨어와 아키텍쳐

가상화의 사용

  • 데이터 센터. 클라우드 컴퓨팅, 데스크탑 컴퓨팅

 

 

 

Virtualization의 유형

 

 

 

Fully Emulated : 완전 가상화 (Type1 , 1세대)

  • 하드웨어 자원을 완전히 에뮬레이션. 모든 시스템 요소가 에뮬레이터 안에서 작동한다.
    • 에뮬레이션 : 소프트웨어적으로 하드웨어 전체 모방(CPU, 메모리 등의 동작을 SW로 재현) -> 무겁고 느리다.
  • Hypervisor가 실제 Kernel 역할을 대체.
  • 가상 머신 : 직접 에뮬레이션 된 하드웨어 위에서 동작 (Host OS 없이)
  • Virtual Kernel mode : 수정되지 않은 OS가 User mode에서 실행되고 있지만(실제로는 OS가 하이퍼바이저에 의해 제어) → 마치 Kernel mode에서 실행되는 것처럼 느끼도록 설계된 방식.

Paravirtualization : 반가상화 (Type2, 2세대)

  • Host OS에서 실행되는 소프트웨어가 Hypervisor 역할을 하여 가상 머신을 관리한다.
  • 가상 머신 : 호스트 OS 위에서 실행됨.
  • Guest OS는 하이퍼바이저와 통신한다. 하드웨어를 완전히 모방한 1세대 가상화와 달리 Hyper-Call을 통해 하드웨어와 통신.

 

OS를 커널을 수정할 수 있는 민감한 명령들을 Hyper call로 대체함

  • OS는 System Call을 수행하는 User Program처럼 동작 → Hypervisor을 통해 간접적으로 하드웨어와 통신
  • Hypervisor은 Hypercall에 의해 호출된 권한 있는 작업을 실행함

 


Hardware Virtual Machine (HVM) (Type3, 3세대 )

  • 하드웨어가 가상화 기술을 제공하여 직접 가상화를 지원, 빠른 성능.
    • 1세대 : 에뮬레이션된 SW에 의해서 하드웨어 엑세스 -> 오버헤드가 매우 심하다.
    • 2세대 : Hyper Call에 의해 하드웨어 엑세스 -> 1세대보다는 좋은 성능, 직접 하드웨어 엑세스하는 3세대보다는 좋지 않은 성능
    • 초기에는 CPU와 같은 하드웨어가 가상화 기술을 지원하지 않아, 에뮬레이션이나 반가상화 같은 기술을 사용해 하드웨어 접근을 우회 처리해야 했음.
    • 하드웨어 가상화 기술의 등장으로 인해 Guest OS가 하이퍼바이저 도움 없이도 특권 명령을 실행할 수 있도록 지원하는 명령어 세트 지원.
    • 기존 하이퍼바이저의 하드웨어와의 엑세스 역할이 축소되고, VM 관리 및 격리 등에 초점을 맞추게 됨.
  • Host OS와 완전히 분리된 Guest OS 실행 가능
  • Guest OS가 하이퍼바이저의 개입 없이 직접 하드웨어와 통신하므로 빠른 속도

 

컨테이너

  • Type 3로 분류되는 기술이지만 가상 머신보다 더 경령화된 실행 환경을 제공한다. 
  • 컨테이너와 가상 머신과의 차이점
    • 각각 독립된 Guest OS를 실행하는 가상 머신에 비해 컨테이너는 같은 Host OS를 공유
    • 기존 가상화 기술처럼 완전한 Guest OS를 생성하지 않으므로 가벼운 실행 환경 제공.
    • 하이퍼바이저 필요 없이 호스트 OS의 커널을 공유
    • 컨테이너는 애플리케이션의 프로세스를 격리할 뿐, OS 레벨에서의 전체 가상화는 하지 않는다

 

  •  

 


Content / Image Reference 

 

Tannenbaum and Van Steen :: Distributed Systems: Principles and Paradigms (PDF)

반응형

BELATED ARTICLES

more