가상화

가상화란 무엇일까요?

가상화는 전통적으로 하드웨어에 종속된 리소스를 사용해 유용한 IT 서비스를 만들 수 있는 기술입니다. 가상화를 사용하면 물리적 머신의 기능을 여러 사용자 또는 환경에 배포해 물리적 머신을 최대한 활용할 수 있습니다.

구체적인 예를 들자면, 각각 고유한 역할을 가진 3개의 물리 서버가 있다고 가정해 보십시오. 하나는 메일 서버이고, 다른 하나는 웹 서버이고, 또 하나는 내부 레거시 애플리케이션을 실행하는 서버입니다. 각 서버는 잠재적인 실행 용량의 일부에 불과한 30% 용량만 사용되고 있습니다. 그러나 내부 운영을 위해서는 레거시 애플리케이션이 계속 필요하므로 레거시 애플리케이션과 이를 호스팅하는 세 번째 서버를 유지해야 합니다.

Server usage

전통적으로는 위의 이론을 따릅니다. 1개의 서버와 1개의 운영 체제, 1개의 태스크와 같이 개별 서버에서 개별 태스크를 실행하는 것이 더 쉽고 안정적인 경우가 많았지만, 1개의 서버로 여러 개의 태스크를 처리하기란 쉽지 않았습니다. 그러나, 가상화를 사용하면 메일 서버를 2개의 고유한 서버로 분할해 독립적인 태스크를 처리하고 레거시 애플리케이션을 마이그레이션할 수 있습니다. 마찬가지로, 하드웨어도 더 효율적으로 사용할 수 있습니다.

Server usage: virtualization

보안을 고려하여 첫 번째 서버를 다시 분할해 다른 태스크를 처리하면 사용률을 30%에서 60% 또는 90%까지도 높일 수 있습니다. 이렇게 하고 나면 이제 빈 서버를 재사용해 다른 태스크를 처리하거나 모든 서버를 사용 중지해 냉각 및 유지관리 비용을 줄일 수 있습니다.


간단하게 알아보는 가상화의 역사

가상화 기술은 1960년대부터 시작되었으나 널리 도입된 것은 2000년대 초입니다. 하이퍼바이저와 같은 가상화 지원 기술이 수십 년 전에 개발되어 일괄 처리를 수행하는 컴퓨터에 여러 명의 사용자가 동시에 액세스할 수 있게 되었습니다. 일괄 처리는 급여와 같은 루틴 태스크를 매우 빠르게 수천 번 실행하는 사업 부문에서 널리 사용되는 컴퓨팅 방식이었습니다

그러나 이후 몇십 년간 단일 머신에서 여러 사용자가 작업할 수 있게 하는 솔루션은 점차 인기를 얻은 데 비해, 가상화는 빛을 보지 못했습니다. 즉, 시간 공유 솔루션으로 인해 운영 체제 내에서 격리된 사용자들은 UNIX 등의 운영 체제로 옮겨가게 되었고 결국 Linux®가 주류로 떠올랐습니다. 그러는 동안 가상화는 대중적인 인기를 얻지 못하는 틈새 기술로 남아 있었습니다.

이제 시간을 뛰어넘어 1990년대로 가 보겠습니다. 대부분의 기업이 물리 서버와 단일 벤더 IT 스택을 사용하고 있었기 때문에 다른 벤더의 하드웨어에서 레거시 애플리케이션을 실행할 수 없었습니다. 다양한 벤더가 제공하는 저렴한 상용 서버, 운영 체제, 애플리케이션으로 IT 환경을 업데이트하면서 기업은 사용률이 낮은 물리 하드웨어에 종속되었으며 각 서버에서 벤더별 태스크를 1개만 실행할 수 있었습니다.

가상화는 이러한 문제를 해결할 수 있었습니다. 이 2가지 문제에 대해 적절한 해결책을 제시하는 가상화를 통해 기업은 서버를 파티셔닝하고 여러 유형 및 버전의 운영 체제에서 레거시 애플리케이션을 실행할 수 있게 되었습니다. 서버를 더 효율적으로 사용하거나 아예 사용하지 않아도 되었으므로 구매, 셋업, 냉각, 유지관리와 관련된 비용이 줄어들었습니다.

또한 가상화는 광범위하게 적용할 수 있어 벤더 종속을 줄이고 클라우드 컴퓨팅의 기반을 다지는 데 도움이 되었습니다. 오늘날 가상화는 전체 추적을 위해 전문적인  가상화 관리 소프트웨어가 필요한 기업들에 의해 사용되고 있습니다.


가상화는 어떻게 작동되나요?

하이퍼바이저라는 소프트웨어가 물리 리소스를 필요로 하는 가상 환경으로부터 물리 리소스를 분리합니다. 하이퍼바이저는 노트북 등의 운영 체제에 배포하거나 서버 등의 하드웨어에 직접 설치할 수 있으며 대부분의 기업들은 이러한 방식으로 가상화합니다. 하이퍼바이저가 물리 리소스를 가져와서 분배하면 가상 환경에서 그러한 리소스를 사용합니다.

How virtualization works

리소스는 필요에 따라 물리 환경에서 여러 가상 환경으로 파티셔닝됩니다. 사용자가 가상 환경(일반적으로 게스트 머신 또는 가상 머신이라고 함)과 상호작용하고 가상 환경 내에서 계산을 실행합니다. 가상 머신은 단일 데이터 파일과 같이 기능합니다. 디지털 파일과 같이 한 컴퓨터에서 다른 컴퓨터로 이동할 수 있고 어느 쪽 컴퓨터에서든 열어 동일하게 작동할 수 있습니다.

가상 환경이 실행 중이고 사용자 또는 프로그램이 물리 환경에서 추가 리소스를 요구하는 명령을 내리면 하이퍼바이저가 그 요청을 물리 시스템에 전달하고 변경사항을 캐시합니다. 이 모든 작업은 네이티브 속도에 가깝게 이루어집니다(특히 요청이 커널 기반 가상 머신상에서 오픈소스 하이버파이저를 통해 전송되는 경우).


가상화 유형

가장 일반적인 가상화 리소스는 서버, 운영 체제, 네트워크입니다.

서버 가상화

Server virtualization

서버는 대량의 특정 태스크를 매우 효과적으로 처리해 노트북 및 데스크탑 등의 다른 컴퓨터가 다양한 태스크를 처리할 수 있도록 하는 컴퓨터입니다. 서버를 가상화하면 서버가 이러한 특정 기능을 더 많이 수행할 수 있으며 서버 파티셔닝을 통해 구성 요소로 여러 기능을 지원할 수 있습니다.

운영 체제 가상화

Operating system virtualization

운영 체제 가상화는 운영 체제의 중앙 태스크 관리자인 커널에서 이루어집니다. 이렇게 하면 Linux 환경과 Windows 환경을 함께 실행할 수 있습니다. 또한 기업은 가상 운영 체제를 컴퓨터에 푸시해 다음과 같은 이점을 얻을 수 있습니다.

  • 컴퓨터에 고도의 OOTB(Out Of The Box) 기능이 필요하지 않으므로 하드웨어에 많은 비용이 소모되지 않습니다.
  • 모든 가상 인스턴스를 모니터링하고 격리할 수 있으므로 보안이 강화됩니다.
  • 소프트웨어 업데이트와 같은 IT 서비스에 소요되는 시간이 절약됩니다.

네트워크 기능 가상화

Network function virtualization

네트워크 기능 가상화는 디렉터리 서비스, 파일 공유, IP 설정과 같은 네트워크의 주요 기능을 분리하여 이러한 기능을 환경에 배포합니다. 소프트웨어 기능이 속해 있는 물리 머신으로부터 기능을 분리하면 특정 기능을 새 네트워크에 함께 패키징하고 이를 환경에 할당할 수 있습니다. 네트워크를 가상화하면 스위치, 라우터, 서버, 케이블, 허브 등 여러 개의 독립적인 네트워크를 생성하는 데 필요하며 특히 통신 산업에서 일반적으로 사용되는 물리 구성 요소의 수가 감소합니다.

가상화를 다양하게 활용해 보십시오