가상화 이해하기.

박지성 ·2025년 4월 12일
post-thumbnail


가상화의 개념

가상화(Virtualization)란 물리적인 자원을 사용자나 운영체제가 ‘가상’으로 사용하는 기술

즉 -> 착시

진짜로 컴퓨터 자원을 직접 사용하는 것이 아님!
그렇게 보이게 만들어서 착시 효과를 주는 것!!
....!
컴퓨터계의 트루먼 쇼.

트루먼 = 프로세스, VM(OS)
가상 자원 = 트루먼이 살고 있는 인공 세계

왜? 쓰지?

만약
형, 누나, 동생이 컴퓨터를 사용하고 싶은데... 컴퓨터는 하나야...
컴퓨터를 가지고 싸우는 상황 발생.

->가상화를 통해 하나의 컴퓨터에서 모두가 따로따로 컴퓨터를 사용할 수 있음
->서로 싸우지 않고 독립적인 환경을 쓸 수 있다!

동생은 윈도우에서 게임하고, 형은 mac os에서 영상 편집하고, 누나는 리눅스에서 개발을하는 그런 것이 가능

정리하면
1. 격리성 : 따로따로 환경에서 작업 (리눅스, mac, 윈도우)
2. 효율성 : 컴퓨터는 하나인데 여러 환경을 동시에 가능!
3. 유연성 : 환경 복제, 이식, 백업등이 쉽다.
->컴퓨터가 3개면 따로따로 설치하고 삭제하고 백업해야하지만. 하나의 하드웨어에서 여러개의 환경이 돌아가기 때문에 관리가 쉽다.
4. 리소스 추상화 : 각 사용자는 "컴퓨터 전체를 가지고 있는 듯한 느낌" -> 트루먼 느낌

가상화가 가능한 대상

가상화 대상예시
CPUVirtual CPU (vCPU)
Memory가상 메모리 (Virtual Memory), Page Table
StorageVirtual Disk (VDI, VMDK 등)
OSVirtual Machine (VM)
ApplicationContainer (Docker)

CPU,메모리, 저장장치, OS, 앱등등 전부 가상화가 가능!

하이퍼바이저?

가상화의 총괄자.

하이퍼바이저는 가상머신을 관리하는 소프트웨어
하드웨어 위에서 여러 OS를 속여서 동시에 돌아가게 해주는 것!

트루먼 쇼의 크리스토프 = 하이퍼바이저
트루먼 = 가상OS (VM)

종류

Type 1 (Bare Metal) -> AWS같은 거
• 하드웨어 위에 직접 설치됨
• ex) VMware ESXi, Xen, KVM

Type 2 (Hosted) -> 평소에 우리가 많이 사용하는 거 (학교 수업 등..)
• 기존 OS 위에 설치됨
• ex) VirtualBox, VMware Workstation

Type2


게스트OS = 세입자
호스트OS = 집주인

세입자는 뭘 하든 집주인의 허락을 받아야 함.
->느리고 + 제한이 많다

똑똑.. 저기 메모리 하나만 빌려주세요... 집주인님... 굽신굽신..

즉 호스트 OS위에 하이퍼바이저를 통해 세입자. 즉 게스트 OS가 들어오는 것!

특징설명
설치 위치기존 OS 위에서 돌아감 (윈도우, 리눅스 등)
의존성호스트 OS 커널에 의존함
성능상대적으로 느림 (이중 오버헤드)
예시VirtualBox, VMware Workstation, Parallels
용도개발, 테스트, 개인용, 데스크탑 VM 실행

Type1

모두가 집주인!

type2에서는 건물 하나를 집주인 혼자 소유하고 있었다면
이거는 1층은 우분투 집주인, 2층은 윈도우 집주인 이런 느낌

그래서 모두가 하드웨어를 접근 할 수 있음
각각이 집주인이기 때문에 맘대로 할 수 있는 것

그래서 빠름. 각각이 집주인인데 허락을 받을 필요가 없어요

특징설명
설치 위치물리 하드웨어 바로 위
커널?자체 하이퍼바이저 커널 가짐
성능가장 빠름, 오버헤드 거의 없음
예시KVM, Xen, VMware ESXi, Hyper-V Core
용도서버, 데이터센터, 클라우드 인프라

근데 이거 왜 쓰지?
우리가 AWS를 EC2를 쓴다고 생각해보면

우리반 10명이 우분투 환경이 필요하다

물리 컴퓨터 10대 -> 대 폭 망
왜? 비용도 많이들고, 자리도 많이 차지하고

가상화 -> 컴퓨터는 1대인데, 하이퍼바이저가 10명이 쓸 수 있는 각자의 환경을 만들어줌!

따라서 울트리 킹 컴퓨터 하나만 있다면 10명이 나누어 쓸 수 있다.

근데 도커는 뭐지?

도커를 이해하기 위해서는 커널이라는 개념이 필요

커널은 OS의 핵심
프로그램과 하드웨어 사이에서 모든 걸 중재한다


도커는 VM처럼 OS를 설치해서 따로 커널을 가지고 있는게 아니라.
롤, 카톡같은 프로그램처럼 환경만 싹 만들어서 하드웨어랑 소통하는 커널은
호스트 OS를 빌려쓰기

잠깐 물론 아까 설명처럼 호스트 OS위에 하이퍼바이저로 올라간 OS(type2)는
커널이 하드웨어랑 직접 소통은 못하고 집주인(호스트 OS)에 허락을 받는 것

함정

근데 분명 도커는 호스트OS의 커널을 사용한다고 했는데. 집주인을 빌려 쓰는건데

여기에 아주 중요한 함정이 있다

우리가 도커에서 우분투를 돌려야겠다! 라고 해보자
우분투는 우분투의 커널이 필요하고
윈도우는 윈도우의 커널이 필요하다.

근데 우리 컴퓨터는 윈도우라서 윈도우 커널만 있음
오잉?!?!
도커는 호스트OS의 커널을 빌려써야하는데? 우분투 커널이 없네????
그래서 type2 처럼 몰래~ 사이에서 VM을 돌리고 있음..

그래서 도커를 더 좋게 사용하려면. 우분투 위에서 도커를 사용하고 도커에서 우분투를 돌린다! 그러면 VM이 없이 집주인의 커널을 사용해서 동작 가능!!!

결론

  • 가상화는 컴퓨터 세계의 착시! 마술! 트루먼쇼!
  • 하이퍼바이저는 마술사! 연출자!
  • 도커는 커널(집주인)을 공유하는 빌려쓰는 착시 기술
  • 타입1/타입2 하이퍼바이저는 집주인인가, 세입자인가 차이

한 줄 요약

트루먼 만들기 = OS
트루먼 세상 = VM


참고
자세한 내용과 용어는 책과 구글에서! 이해를 위한 일반화가 다소 들어가 있음!
이 내용을 바탕으로 자세하게 공부해야 함!

profile
개발 블로그 맞음.

4개의 댓글

comment-user-thumbnail
2025년 4월 12일

트루먼쇼로 가상화를 이해하시다니... 신박한데요?🤓

1개의 답글
comment-user-thumbnail
2025년 4월 12일

진짜 개레전드 널리널리 퍼트려주세요. 다음을 기대합니다.

1개의 답글