본문 바로가기

용어 정리

[용어 정리] 가상화

가상화

가상화란 물리적인 하드웨어 장치를 논리적인 객체로 추상화하는 것을 의미합니다.

이는 하이퍼바이저라는 소프트웨어를 통해 하나의 물리적인 머신 위에 다수의 가상 머신을 만듭니다.

여기서 하이퍼바이저란 시스템 위에 또 다른 시스템을 설치하고 운영할 수 있도록 가상 시스템 환경을 만들어주는 기술입니다.

가상 머신은 하나의 머신의 컴퓨팅 리소스에 의존하여 물리적 머신과 동일하게 작동을 합니다.

 

이러한 기술을 통하여 하나의 OS 위에 여러 개의 OS를 실행할 수 있고,

하이퍼바이저는 컴퓨팅 리소스를 각 가상 머신에 할당을 해줍니다.

여기서 컴퓨팅 리소스란 프로세서(CPU), 메모리(Memory), 스토리지(Storage), 네트워크(Network) 등을 포함합니다.

 

가상화의 종류

가상화의 종류는 호스트 가상화, 하이퍼바이저 가상화, 컨테이너 가상화로 총 3가지가 있습니다.

 

호스트 가상화

https://blog.lgcns.com/860

호스트 가상화는 Host OS 위에 하이퍼바이저가 설치되고, 이를 통해서 다양한 Guest OS가 구동됩니다.

이는 가상의 하드웨어를 에뮬레이팅하기 때문에 Host OS에 대한 제약이 없어서, 대부분의 OS를 구동시킬 수 있습니다.

하지만 구동시키려면 OS를 올려야 하기 때문에 오버헤드가 크다는 단점이 있습니다.

예시로는 Virtual Box, VMware 등이 있습니다.

 

하이퍼바이저 가상화

하이퍼바이저 가상화는 Host OS가 없이 하드웨어 자체에 하이퍼바이저를 설치하여 사용합니다.

이는 Host OS에 할당하기 위한 리소스가 없기 때문에 호스트 가상화에 비해서 오버헤드가 적고 리소스 관리가 유연합니다.

하지만 자체적으로 관리기능을 갖고 있지 않기 때문에 별도의 관리 콘솔이 필요합니다.

 

하이퍼바이저 가상화의 경우에는 전가상화와 반가상화로 나뉩니다.

 

 

전가상화 (Full-Virtualization)

전가상화는 host OS와 guest OS를 완전히 분리하여 실행합니다,

Guest OS와 네이티브 하드웨어 사이를 중재하는 하이퍼바이저가 필요하고,

guest OS가 하드웨어 자원을 요청하기 위해서는 반드시 하이퍼바이저가 중재를 해주어야 합니다.

이는 하드웨어를 완전히 가상화하는 방식으로 guest OS에 대한 수정이 필요 없고 다양한 OS를 이용할 수 있다는 장점이 있습니다.

하지만 OS level의 명령어를 사용할 때는 상당한 오버헤드가 발생할 수 있습니다.

 

반가상화 (Para-Virtualization)

이는 guest OS를 일부 수정하여서 필요한 자원을 직접 요구할 수 있습니다.

이는 하드웨어를 완전히 가상화하지 않고, geust OS의 커널 하이퍼바이저에 맞게 일부 수정합니다.

장점은 가상화되지 않은 시스템과 동일한 성능을 내지만 OS를 일부 수정해야 하기 때문에 소스가 공개되지 않은

OS는 사용이 불가능하다는 단점이 있습니다.

 

컨테이너 가상화

 

https://blog.lgcns.com/860

 

컨테이너 가상화는 앞의 호스트 가상화나 하이퍼바이저 가상화랑은 약간 느낌이 다른 가상화 방식이라고 볼 수 있습니다.

앞선 가상화가 OS 자체에 대한 가상화라고 한다면, 컨테이너는 어플리케이션을 가상화한다고 생각하면 될 것 같습니다.

컨테이너는 어플리케이션 자체를 실행할 수 있는 알맞는 독립적인 환경을 제공해주기 때문입니다.

컨테이너 가상화가 점점 더 많이 쓰이는 이유는 별도의 OS 가상화 없이 어플이케이션을 실행할 자원만

따로 독립적으로 할당해주기 때문에 자원을 효율적으로 관리할 수 있기 때문입니다.

'용어 정리' 카테고리의 다른 글

[용어 정리] Public IP, Private IP  (0) 2020.07.19
[용어 정리] 인플레이스 배포, 블루/그린 배포  (0) 2020.07.10
[용어 정리] VPC  (0) 2020.07.09
[용어 정리] 도메인, DNS  (0) 2020.07.07
[용어 정리] WEB, WAS  (0) 2020.06.30