[Infra] 가상화 뜻과 필요성, 하이퍼바이저와 컨테이너

박해인·2025년 5월 4일
0

Infra

목록 보기
1/1
post-thumbnail

가상화 가상화 가상화 그놈에 가상화가 무엇인지 그리고 왜 하는지 알아보자

가상화란 (Vitualization) ?

자원 (서버/메모리) 등을 논리적으로 통합/분할 하여 하나의 큰 자원 또는 여러 개의 자원으로 취급하는 기술이다. 반대로 여러 개를 하나처럼 사용하는 경우도 있다.

가상화의 장점

가상화 기술은 자원 활용도 향상, 비용 절감, 관리 효율화, 확장성, 유연성 제공 등의 여러 이점을 제공한다.

1. 자원 활용도 향상

  • 하나의 물리 서버에서 여러 가상 환경(VM/컨테이너) 운영 가능
  • CPU, 메모리, 디스크 등 자원을 빈틈없이 활용

2. 비용 절감

  • 물리 서버 수를 줄일 수 있어 하드웨어 구매 비용 절감
  • 전력, 냉각, 유지보수 비용 절감

3. 격리성

  • 하나의 가상 환경에서 문제가 발생해도 다른 시스템에 영향 없음
  • 보안성 향상 및 장애 범위 최소화

4. 확장성

  • 물리적 장비 교체보다 빠르고 유연한 확장 가능
  • 유지보수 및 확장 시 다운타임 최소화

5. 테스트 및 개발 환경의 유연성

  • 다양한 운영체제/소프트웨어 환경을 하나의 물리 장비에서 실험 가능
  • 문제가 생겨도 전체 시스템에 영향 없음 → 빠른 복구 가능
  • 버전별 테스트, 샌드박스 환경 구성에 유리

💡 자원을 효율적으로 이용한다..?

가상화를 쓰지 않는다면...

모든 어플리케이션이 같은 커널 공간(OS)에서 실행되므로 하나의 앱이 다른 앱에 영향을 줄 수 있다. 또한 OS마다 기본설정에서는 자원 제한이 없어 하나의 어플리케이션이 cpu/메모리를 독점할 수 있다.

운영체제의 역할 중 하나가 하드웨어 자원을 할당하는 것 이다. FIFO, RR 등의 스케줄링 기법을 통해 cpu 자원을 분배하고 메모리는 페이징, 가상메모리 등의 방법으로 I/O는 디바이스 큐, DMA를 통해 그러하다.

그런데 프로세스가 많아지면 ...

1. 스케줄링 부담 증가
운영체제의 스케줄러도 오버헤드가 커진다.
컨텍스트 스위칭 비용증가,

2. 자원 경합/교착상태
여러 프로세스가 동시에 CPU, 메모리, I/O를 요구하면서 충돌이 발생하면 교착상태가 일어난다.

3. 보안/격리 문제
하나의 OS 위에서 돌아가면 프로세스 간 접근 통제가 힘들 수 있다. 하나가 다운되면 전체 시스템에 영향을 끼칠 수 있다.

이처럼 하나의 OS에 올라오는 애플리케이션이 많아지면 OS 수준의 자원 스케줄링이 복잡해지고 충돌/교착 상태가 커지므로 이를 VM 또는 컨테이너 기반 가상화를 통해 애플리케이션 단위로 자원을 논리적으로 분리하고, 각 환경에 필요한 자원만 할당함으로써 자원 경합, 스케줄링 부담, 보안 문제 등을 구조적으로 완화할 수 있다.

문제전통 방식 (하나의 OS)가상화 방식 (VM/컨테이너)
스케줄링 오버헤드모든 프로세스를 OS가 직접 스케줄각 VM/컨테이너 단위로 리소스를 분산해서 스케줄링 분산
자원 충돌모두 같은 자원 영역 공유각 VM/컨테이너에 자원 제한 (cgroup, vCPU, memory limit)
교착상태락/세마포어 충돌 가능성 높음각 컨테이너는 OS 수준에서 격리되어 교착 상태 위험 낮춤
보안 문제프로세스 간 메모리 접근 가능성 존재컨테이너/VM 간 커널/파일 시스템 분리 → 보안 강화

💡 우리는 가상화의 필요성에 대해서 이해했다. 가상화의 종류에는 무엇이 있을까?

가상화의 종류

크게는 하이퍼바이저 가상화컨테이너 가상화 로 나눌 수 있을 것 같다.
먼저 하이퍼바이저 가상화컨테이너 가상화의 차이점에 대해서 살펴보고 둘에 대해서 각각 따로 자세히 포스팅을 하겠다.

1. 하이퍼바이저 가상화

하이퍼바이저 가상화는 물리적인 서버 1대를 여러 개의 가상 머신으로 분할하는 방식이다. 각 가상 머신은 독립적인 운영체제를 갖는다.

2. 컨테이너 가상화

컨테이너 가상화는 애플리케이션과 그 실행 환경을 하나의 패키지로 묶어 OS의 커널 위에서 실행되도록 하는 방식이다. 컨테이너는 OS레벨에서 격리된 환경을 제공하며 당연하게도 운영체제를 포함한 가상머신(VM)보다 더 가볍고 빠르다.

3. 차이점

특성하이퍼바이저 가상화컨테이너 가상화
가상화 수준하드웨어 수준 (가상 머신)OS 수준 (컨테이너)
격리 수준운영 체제와 하드웨어 수준에서 격리운영 체제 수준에서 격리
성능상대적으로 성능 손실이 있음빠르고 효율적, 성능 손실이 적음
자원 사용각 VM이 운영 체제를 포함하므로 자원 소모가 큼운영 체제를 공유하여 자원 소모가 적음
속도시작 시간이 느림 (운영 체제 부팅 필요)빠른 시작 시간 (운영 체제 부팅 불필요)
유연성다양한 운영 체제에서 독립적으로 실행 가능동일한 커널을 공유하므로 제한적

이 차이점을 잘 인식하여 사용환경과 목적에 따라 선택하여 이용할 수 있다.


참고
https://phum.co.kr/tech-36/
https://blog.omoknooni.me/81
https://worlf.tistory.com/141

profile
갓생살고싶어라

0개의 댓글