Skip to Content
Suffering builds character
아카이브25.devopsDocker개요2.가상화 기반 서버 구현 방식

2.가상화 기반 서버 구현 방식

물리 서버를 직접 구매하여 필요한 운영체제를 별도로 설치하고 애플리케이션을 실행하기 위한 환경을 구성하며 지속적으로 관리해주는 방식은 시간과 비용, 물리적인 설치 공간이 필요하다는 한계가 존재하였음

이후 가상화(Virtualization)라는 기술을 통해 물리 서버를 직접 구매하지 않고도 현재 사용 중인 PC의 하드웨어 자원을 활용하여 다른 운영 체제 기반(Guest OS)의 별개의 서버를 구성할 수 있게 됨

1-1. Host OS vs Guest OS

일반적으로 하나의 PC에는 하나의 OS를 사용하는데,
하나의 PC에 두 개 이상의 운영체제가 필요한 경우가 있을 수 있음

그 예로 기존에 사용 중인 운영체제가 아닌 다른 운영체제를 기반으로 동작하는 애플리케이션을 실행시키고자 할 경우, 다른 운영체제가 필요하게 됨

이때 서브로 설치한 운영체제를 Guest OS라고 함

Host OSGuest OS
기존의 PC에 설치되어 있던 Main 운영체제가상화 개념을 활용하여 별도로 설치한 운영체제,
기존의 PC에 있던 Main OS가 아닌 운영체제

정리하면, 가상화(Virtualization)란 CPU, 메모리 등의 하드웨어 자원을 Hypervisor라는 소프트웨어를 통해 추상화한 것을 의미

이 가상화를 통해 만들어진 별개의 컴퓨터(서버)를 가상 머신(Virtual Machine)이라고 함 (ex. VirtualBox, VMware 등)

1-2. Hypervisor

CPU, Memory와 같은 하드웨어 자원을 추상화해주는 소프트웨어

Image ref. 

💡
Tip

하나의 컴퓨터에서 서로 다른 OS를 사용할 수 있는 이유?

가상화 이후에는 어떤 서비스를 운영하기 위한 애플리케이션들이 Host OS 위에 올라가는 것이 아닌 가상 머신(Guest OS) 위에 올라가게 됨

그럼 어떻게 하나의 컴퓨터에서 서로 다른 OS들을 사용할 수 있을까?

각 운영체제(OS)마다 커널(Kernel)이 존재하는데, 커널은 기본적으로 리소스를 관리, 명령어를 해석하는 역할을 수행하며, 각 OS마다 명령어를 해석하는 규칙이 다름

하드웨어는 덧셈 연산을 수행해야 하는데, Windows, Mac, Linux OS 등이 서로 다른 명령어로 전달하기 때문에 처리할 명령을 이해할 수 없음

따라서 이런 각각의 명령어들을 하이퍼바이저(Hypervisor)를 통해 전달하게 되고,
하이퍼바이저는 하드웨어가 각 운영체제 별로 명령어를 이해할 수 있도록 번역하여 하드웨어에게 전달해주게 됨

Last updated on