가상화(Virtualization)

컴퓨터 리소스를 논리적으로 분할하는 기술

Posted by jay on August 22, 2021

1. 소개

가상화란 컴퓨터 리소스를 논리적으로 분할하는 기술이다. 이것은 자원 분리의 근본적인 복잡성을 추상화하며 이뤄진다. 오래된 기술이지만, 가상화는 여전히 인기있고, 클라우드 시대에 깊이 관련된 기술이다. 이 글에서는, 가상화의 컨셉, 유형, 작동 등의 다양한 측면을 다룰 것이다.

2. 가상화란 무엇인가?

가상화는 컴퓨터 자원의 소프트웨어 기반 가상 버전을 만드는 것이다. 여기서 말하는 컴퓨터 자원은 컴퓨터 기기, 저장공간, 네트워크, 서버 또는 애플리케이션을 포함하여 말한다.

가상화는 단일 물리적 컴퓨터 또는 서버를 여러 가상머신(VM)으로 분할할 수 있게 한다. 각각의 VM은 하나의 컴퓨터에서 자원을 공유함과 동시에, 독립적으로 상호작용하고, 서로 다른 OS나 애플리케이션을 실행할 수 있다.

3. 가상화는 어떻게 작동하는가?

하이퍼바이저 소프트웨어는 가상화를 용이하게 한다. 하이퍼바이저는 운영 체제 위에 있지만 하드웨어에 직접 설치할 수도 있다. 하이퍼바이저는 물리적 리소스를 가져와 가상 환경이 사용할 수 있도록 분할한다 .

사용자 또는 프로그램이 물리적 환경에서 추가 리소스가 필요한 명령을 VM에 전달하면, 하이퍼바이저는 요청을 물리적 시스템에 전달하고 변경 사항을 캐싱한다.

img

하이퍼바이저에 의해 생성된 가상 머신은 단일 데이터 파일로 작동하며 한 컴퓨터에서 다른 컴퓨터로 이동하여 열 수 있다. 그 데이터 파일은 다른 컴퓨터에서도 동일하게 작동한다. 따라서 이것은 많은 유연성과 이동성을 제공한다.

4. 하이퍼바이저의 종류

하이퍼바이저는 유형 1과 유형 2의 두 가지 범주에서 사용할 수 있다.

4.1 Type 1 Hypervisors (Bare Metal)

유형 1 하이퍼바이저는 물리적 시스템 위에 직접 설치된다. 유형 1 하이퍼바이저는 설치 유형의 특성 때문에 베어 메탈 하이퍼바이저라고도 한다.

이러한 하이퍼바이저 유형1은 유형 2 하이퍼바이저보다 더 대중적이고 안전하다.

유형 1 하이퍼바이저는 latency가 더 짧고 시장에서 가장 많이 사용됩니다. 이 유형의 예로 VMware ESXi, Microsoft Hyper-V 또는 오픈 소스 KVM(커널 기반 VM) 등이 있다.

4.2. Type 2 Hypervisors (Hosted)

반면 유형 2 하이퍼바이저의 경우 물리적 서버와 하이퍼바이저 사이에 호스트 OS 계층이 있다. 때문에 우리는 이러한 하이퍼바이저를 “hosted hypervisors”라고 부른다.

덜 일반적이며 end-user 가상화에 주로 사용된다.

호스팅 특성으로 인해 유형 1에 비해 latency가 더 긴 것으로 알려져 있다. 유형 2 하이퍼바이저는 Oracle VirtualBox 또는 VMware Workstation 등이 있다.

5. 가상화 유형

가상화는 우리가 가상화하는 리소스를 기반으로 여러 범주로 분류된다.

5.1. 데이터 가상화

데이터 가상화를 사용하면 가상화 소프트웨어가 여러 데이터 소스 앞에 놓이게 되고, 이 데이터 소스들이 단일 데이터로 취급될 수 있게 한다. 이를 통해 필요한 데이터를 특정 형식으로 쉽게 전달할 수 있다.

5.2. 데스크탑 가상화

데스크탑 가상화를 사용하면 시뮬레이션된 데스크탑 환경을 한 번에 여러 물리적 시스템에 배포 할 수 있다 . 물리적으로 환경이 구성(설치, 업데이트 등) 되는 기존 데스크톱 환경과 달리, 데스크톱 가상화를 사용하면 관리자가 모든 가상 데스크톱에 대량 구성, 업데이트 및 보안 검사를 수행할 수 있다.

5.3. 서버 가상화

서버는 대량의 특정 작업을 처리하도록 설계된 컴퓨터이다. 덕분에 labtop 및 데스크톱과 같은 다른 컴퓨터는 다른 다양한 작업을 수행할 수 있다. 서버를 가상화하면, 파티셔닝을 포함한 특정 기능을 더 많이 수행할 수 있으며, 덕분에 여러 기능을 수행할 수 있다.

5.4. OS 가상화

운영 체제 가상화는 OS 커널에서 발생하며 여러 운영 체제를 동시에 실행하는 데 유용한 방법이다. 하드웨어 비용은 줄이고 보안을 강화하며 소프트웨어 유지 관리(업데이트/패칭) 비용을 제한한다.

5.5. 네트워크 기능 가상화

네트워크 기능 가상화는 IP 구성, 파일 공유 및 디렉토리 서비스와 같은 네트워크 기능을 분리한다. 네트워크를 가상화하면 스위치, 라우터, 서버, 케이블 및 허브와 같은 물리적 구성 요소의 수를 줄이는 데 도움이 된다.(물리적 네트워크 장비의 미들웨어화)

6. 가상화의 이점

6.1. 비용 절감

물리적 인프라의 한 부분에서 여러 가상 머신을 실행할 수 있으므로 설치 공간과 관련 비용이 크게 줄어든다. 또한 이러한 통합이 core에서 수행되므로, 우리는 많은 서버를 유지 관리할 필요가 없어진다. 전력 소비량과 전반적인 유지 관리 비용이 절감됩니다.

6.2. Agility and Speed

가상 머신을 스핀업하는 것은 간단하고 빠른 접근 방식이다. 완전히 새로운 인프라를 프로비저닝하는 것보다 훨씬 간단하다.

예를 들어, 팀을 위한 개발/테스트 지역이 필요한 경우 시스템 관리자를 위해 새 VM을 프로비전하는 것이 훨씬 빠르다. 게다가 자동화된 프로세스를 통한다면, 더 빠르고 쉽다.


정리

하이퍼바이저(Hypervisor): 하이퍼바이저란 가상머신(VM)을 생성하고 구동하는 소프트웨어를 말하며, 가상화를 수행하는 주체 소프트웨어라고 볼 수 있다.

가상화를 통해 네트워크 기능을 추상화 시킬 수 있다. 서버 가상화를 통해 스위치, 라우터 등의 물리적인 네트워크 기기를 소프트웨어 수준으로 추상화(미들웨어화)하여 단일 서버 또는 서버들만으로 네트워크 환경을 구성할 수 있다.

Baeldung의 동의하에 글을 번역하고 정리하였습니다.

참고 글: https://www.baeldung.com/cs/virtualization-intro