본문 바로가기

CS/OS

[Linux] 가상화

반응형

이 글은 Linux에 대한 인프런 강의 사이트 중 "리눅스 입문"에서 학습한 내용과 레퍼런스를 참고하여 작성되었습니다. 

 

대부분의 사람들은 MS의 windows나 애플의 macOS에 대해서는 잘 알고 있다고 생각합니다. 대부분의 노트북이나 데스크톱에 기본적으로 깔려있는 운영체제 이기 때문인데요. Linux도 windows, macOS와 마찬가지로 OS의 한 종류입니다. 

 

OS(Operating System)는 컴퓨터의 하드웨어와 소프트웨어 자원을 관리하는 시스템 소프트웨어를 의미합니다. 

아래의 그림의 왼쪽 그림을 보면 H/W와 Application(S/W)사이에 OS가 위치해 있고, OS는 컴퓨터의 자원(H/W)과 프로그램(S/W)을 관리하는 역할을 담당합니다. 

 

가상화를 설명하기 위해서 선행적으로 OS에 대한 설명을 간단히 했습니다. 그럼 가상화는 무엇이며 왜 사용하는 것인지 알아 보겠습니다. 

 

일반적으로 1개의 OS, 1개의 테스크를 실행하기 위해서는 물리적 서버가 1대가 필요합니다.

아래의 그림을 보면 mail, web, legacy(레거시 응용프로그램) 등, 총 3대의 서버에 맞는 OS가 필요함을 알 수 있습니다. 즉, 가상화를 사용하지 않았을 때는 각 서버와 OS는 일대일 대응 관계에 있기 때문에 서버를 효율적으로 사용하지 못함을 한눈에 알 수 있습니다. 

각 서버의 필요수 만큼 서버로 사용할 OS가 필요함.

가상화는 이러한 문제를 해결할 수 있습니다. 즉, 가상화를 이용하며 1대의 물리적 서버에 여러 개의 OS를 마이그레이션 할 수 있습니다. 아래의 그림에서 Mail과 legacy 서버를 같은 서버에서 사용하고 있음을 알 수 있고 결과적으로 자원으로 보다 효율적으로 관리하고 있습니다. 

가상화를 사용해 필요한 서버의 수를 줄였으며 자원을 효율적으로 사용함

그럼 가상화는 어떻게 한 개의 서버에서 2개 이상의 OS의 사용을 가능하게 만들까요?

(여기서 말하는 가상화는 가상화의 종류중 "운영체제 가상화"에 해당함)

 

한 개의 물리적 서버에서 여러개의 OS 사용을 가능하게 하는 역할을 Hypervisor가 담당합니다. 

 

Hypervisor란 H/W에 설치된 소프트웨어 계층으로, 물리적 머신을 다수의 가상 머신(VM)으로 분할할 수 있도록 해줍니다. 간단히 정리하자면 Hypervisor가 가상화를 담당하는 소프트웨어 계층이라고 이해하면 될 것 같습니다. 

 

아래의 그림중 오른쪽에서 H/W 위에 OS와 VM(Virtual Machine) 내의 OS 두 개가 있음을 확인할 수 있습니다. 

첫 번째 OS가 Host OS, VM내의 OS를 Guest OS라고 부릅니다.

오른쪽 그림을 간단한 예시를 통해 설명하자면, Host OS를 windows로 VM 내의 OS를 ubuntu나 cenntos 등 Linux 계열의 OS를 사용하는 경우가 있을 수 있습니다. 물론 반대의 경우도 가능합니다. 

 

그럼 가상화를 사용하는 것일까요?

 

가상화의 가장 큰 장점은 서버 가동률을 대폭 끌어올려 물리적 자원을 효율적으로 사용할 수 있다는 것입니다. 가상화는 물리적 자원들과 자원 풀에 대한 동적인 공유를 가능케 하며 이를 통해 기존 자원의 활용률을 더욱 높은 수준으로 끌어올릴 수 있습니다. 이는 적은 수의 서버만으로도 시스템을 안정적으로 운영할 수 있다는 의미며 이렇게 되면 서버 운영을 위해 관리해야 하는 물리적 자원들이 줄어 관리 인력의 생산성 향상뿐 아니라 서버 대수가 줄기 때문에 전력 사용료도 절감할 수 있게 됩니다. 

 

reference : https://born-dev.tistory.com/37 

 

반응형