[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)
반응형
'CS > 운영체제 & 네트워크' 카테고리의 다른 글
[Network] TCP (2) : TCP Flow Control, Congestion Control (흐름 제어와 혼잡 제어) (3) | 2024.03.05 |
---|---|
[Network] TCP (1) : Connection과 Handshake, 그리고 TCP Error Control (0) | 2024.03.04 |
[Network] Transport Layer : UDP (0) | 2024.03.03 |
[Network] NAT : 공인 IP와 사설 IP (+ 포트 포워딩 설정) (0) | 2024.02.24 |
[Network] Network Layer : IP & DHCP & ICMP (0) | 2024.02.23 |