2020.09.29

가상 머신, 거의 모든 IT 혁신의 출발점

Keith Shaw | Network World
클라우드 컴퓨팅, 엣지 컴퓨팅, 마이크로서비스와 같은 신기술은 물리적 컴퓨터에서 운영체제와 소프트웨어 인스턴스를 분리하는 가상 머신(Virtual Machine, VM) 개념에서 시작됐다.
 
© Getty Images Bank
 

가상 머신이란?

가장 단순하게 설명하면, 가상 머신은 물리적 머신에 연결되지 않고 프로그램이나 애플리케이션을 실행하는 소프트웨어다. VM 인스턴스에서 하나 이상의 게스트 머신을 물리적 호스트 컴퓨터에서 실행할 수 있다.

각 VM은 동일한 물리적 호스트에 있더라도 자체 운영 체제가 있으며 다른 VM과 별도로 작동한다. VM은 일반적으로 컴퓨터 서버에서 실행되지만, 데스크톱 시스템이나 임베디드 플랫폼에서도 가능하다. 여러 VM이 CPU 성능, 네트워크 대역폭, 메모리를 포함해 물리적 호스트의 리소스를 공유할 수 있다.

VM의 시작은 1960년대 컴퓨팅 초기까지 거슬러 올라간다. 메인프레임 시스템에서 물리적 호스트 시스템 사용 시간을 소프트웨어로 분리하는 방법이었다. 이후 1970년대 초에 이르러 ‘실제 컴퓨터 머신의 효율적이고 분리된 복제’로 재정의됐다.

오늘날 우리가 아는 VM은 기업이 물리적 서버의 컴퓨팅 성능을 더 효율적으로 활용해, 물리적 서버의 필요성을 줄이고 데이터센터의 공간을 절약하는 수단, 이른바 서버 가상화의 확산과 함께 지난 15년 동안 성장해왔다. 여러 OS용 앱을 단일 물리적 호스트에서 실행할 수 있으므로, 각 호스트에 대해 별도의 서버 하드웨어가 필요하지 않았다.

일반적으로 VM에는 두 가지 유형이 있다. 물리적 컴퓨터에서 단일 프로세스를 분리하는 '프로세스 VM(Process VM)', 그리고 운영 체제와 애플리케이션을 완전히 분리하는 '시스템 VM(System VM)'이다. 프로세스 VM은 JVM(Java Virtual Machine), 닷넷 프레임워크(.NET framework), 패럿(Parrot) 등이 대표적이다.

시스템 VM은 하드웨어 리소스에 대한 소프트웨어 액세스를 제공하는 중개자, 즉 하이퍼바이저(Hypervisor)가 필요하다. 하이퍼바이저를 개발한 대표적인 기업 혹은 기관은 VM웨어(ESX/ESXi), 인텔/리눅스 재단(젠, Xen), 오라클(스팍(SPARC)용 MV 서버와 x86용 VM 서버), 마이크로소프트(하이퍼-V) 등이 있다. 이제는 데스크톱 컴퓨터 시스템도 가상 머신을 사용한다. 예를 들면 많은 맥 사용자가 물리적 맥 하드웨어에서 가상 윈도우 10 인스턴스를 사용하다.
 

가상 머신의 장점

가상 머신은 다양한 장점이 있다. 소프트웨어가 물리적 호스트 컴퓨터와 분리돼 있어 사용자는 단일 하드웨어에서 여러 OS 인스턴스를 실행할 수 있고, 기업은 시간, 관리 비용, 물리적 공간을 절약할 수 있다. 또한 레거시 앱을 지원하는 특정 VM을 활용한 방식으로, 이전 앱을 업데이트된 또는 다른 운영 체제로 마이그레이션할 필요와 비용을 줄이거나 없앨 수 있다.

개발자는 VM을 이용해 안전한 샌드박스 환경에서 앱을 테스트할 수 있다. 특정 VM 인스턴스를 감염시킬 수 있는 악성코드 격리에도 도움이 될 수 있다. VM 내부의 소프트웨어는 호스트 컴퓨터를 조작할 수 없으므로, 악성 소프트웨어가 기업 인프라 전체로 확산할 수 없다.
 

가상 머신의 단점

반면 단점도 있다. 하나의 물리적 호스트에서 여러 VM을 실행하면 성능이 불안정해질 수 있다. 특히 특정 애플리케이션에 필요한 사양 조건이 충족되지 않으면 더 그렇다. 결국 물리적 컴퓨터와 비교할 때 효율성이 떨어지는 경우가 많다. 이 때문에 대부분의 IT 운영에서는 물리적 시스템과 가상 시스템 간의 적절한 균형점을 찾는다.
 

다른 형태의 가상화

서버 가상화에서 VM이 대성공을 거두자, 이내 스토리지, 네트워킹, 데스크톱 등 다른 영역에 가상화가 확산하기 시작했다. 실제로 데이터센터에서 사용 중인 하드웨어 대부분에 이제 가상화 개념이 적용되기 시작했다.

예를 들어 네트워크 가상화가 있다. 크게 3가지가 있는데, 네트워크 가상화에서 기업은 더 유연하고 확장 가능한 서비스를 위해 상용 서버를 사용해 특수 네트워크 어플라이언스를 대체하는 서비스로서의 네트워크(Network as a Service, NaaS)와 네트워크 기능 가상화(Network Functions Virtualization, NFV)를 추진해 왔다. 이는 네트워크 제어 영역(Control Plane)과 전달 영역(Forwarding Plane)을 분리해 네트워크 리소스의 자동화된 프로비저닝과 정책 기반 관리를 가능하게 하는 소프트웨어 정의 네트워킹(Software Defined Networking, SDN)과 약간 다르다.

마지막 세 번째 기술인 가상 네트워크 기술(Virtual Network Function, VNF)은 라우팅, 방화벽, 로드 밸런싱, WAN 가속화, 암호화 등의 프로세스를 포함해 NFV 환경에서 실행할 수 있는 소프트웨어 기반 서비스다.
 

VM과 컨테이너

VM의 성장으로 컨테이너와 같은 기술이 더 발전하고 기존 개념이 한 단계 진화하면서 웹 애플리케이션 개발자도 VM에 주목하고 있다. 컨테이너를 이용하면 종속성과 함께 단일 애플리케이션을 가상화할 수 있다. 컨테이너는 VM보다 오버헤드가 훨씬 적고, 바이너리, 라이브러리, 애플리케이션만 포함한다는 점에서 간소하다.

일부에서는 컨테이너의 등장으로 가상 머신이 사양길로 접어들 수 있다고 전망한다. 그러나 VM의 기능과 이점은 여전히 의미가 있다. 예를 들어 VM은 여러 애플리케이션을 함께 실행하거나 구형 운영 체제에서 레거시 애플리케이션을 실행할 때 유용하다.

또한 VM은 애플리케이션과 OS를 분리할 수 있지만, 컨테이너는 애플리케이션이 공유하는 OS가 하나뿐이어서 컨테이너가 VM 하이퍼바이저보다 덜 안정적이라고 믿는 이들도 있다.

그러나 IDC의 소프트웨어 정의 컴퓨터 담당 리서치 매니저인 개리 첸은 기업이 클라우드 아키텍처와 컨테이너를 모색하는 동안에도 VM 소프트웨어 시장은 여전히 기본 기술로 여전히 인정받을 것으로 전망했다. 그는 IDC의 2019~2022년 전 세계 가상 머신 소프트웨어 전망 보고서를 통해 “가상 머신 소프트웨어 시장은 매우 급성장했고, 고도로 성숙하고 포화 상태에 가까워졌지만, 그런데도 향후 5년 동안은 긍정적인 성장을 지속할 것이다”라고 내다봤다.
 

VMS, 5G, 에지 컴퓨팅

VM은 5G와 에지 컴퓨팅 등 신기술의 일부이기도 하다. 예를 들어, 마이크로소프트, VM웨어, 시트릭스(Citrix) 등이 활용하는 VDI(Virtual Desktop Infrastructure) 기술이 있다. 최근 코로나19 팬데믹으로 재택근무 직원에게 VDI 시스템을 확대 공급하는 것이 고민이 된 바로 그 기술이다.

카네기 멜런 대학의 컴퓨터 과학부 교수 마하데브 사티아나라야난은 지난 2009년 연구 결과를 발표했다. VDI를 사용하면 키 입력과 마우스 움직임을 기본적으로 원격 데스크톱으로 보내기 때문에 지연 시간이 매우 짧아야 하는데, 가상 머신 기반 클라우드렛(Cloudlet)을 사용해 인터넷 에지의 모바일 장치에 더 나은 처리 기능을 제공하는 방법을 제안한 것이다. 이는 훗날 에지 컴퓨팅의 개발로 이어졌다.

결국 오늘날 사용되는 다른 많은 기술처럼, 수십 년 전에 도입된 오리지널 가상 머신 개념이 없었다면 VMS, 5G, 에지 컴퓨팅, VDI 등의 신기술은 등장하지 않았을 수도 있다. editor@itworld.co.kr


2020.09.29

가상 머신, 거의 모든 IT 혁신의 출발점

Keith Shaw | Network World
클라우드 컴퓨팅, 엣지 컴퓨팅, 마이크로서비스와 같은 신기술은 물리적 컴퓨터에서 운영체제와 소프트웨어 인스턴스를 분리하는 가상 머신(Virtual Machine, VM) 개념에서 시작됐다.
 
© Getty Images Bank
 

가상 머신이란?

가장 단순하게 설명하면, 가상 머신은 물리적 머신에 연결되지 않고 프로그램이나 애플리케이션을 실행하는 소프트웨어다. VM 인스턴스에서 하나 이상의 게스트 머신을 물리적 호스트 컴퓨터에서 실행할 수 있다.

각 VM은 동일한 물리적 호스트에 있더라도 자체 운영 체제가 있으며 다른 VM과 별도로 작동한다. VM은 일반적으로 컴퓨터 서버에서 실행되지만, 데스크톱 시스템이나 임베디드 플랫폼에서도 가능하다. 여러 VM이 CPU 성능, 네트워크 대역폭, 메모리를 포함해 물리적 호스트의 리소스를 공유할 수 있다.

VM의 시작은 1960년대 컴퓨팅 초기까지 거슬러 올라간다. 메인프레임 시스템에서 물리적 호스트 시스템 사용 시간을 소프트웨어로 분리하는 방법이었다. 이후 1970년대 초에 이르러 ‘실제 컴퓨터 머신의 효율적이고 분리된 복제’로 재정의됐다.

오늘날 우리가 아는 VM은 기업이 물리적 서버의 컴퓨팅 성능을 더 효율적으로 활용해, 물리적 서버의 필요성을 줄이고 데이터센터의 공간을 절약하는 수단, 이른바 서버 가상화의 확산과 함께 지난 15년 동안 성장해왔다. 여러 OS용 앱을 단일 물리적 호스트에서 실행할 수 있으므로, 각 호스트에 대해 별도의 서버 하드웨어가 필요하지 않았다.

일반적으로 VM에는 두 가지 유형이 있다. 물리적 컴퓨터에서 단일 프로세스를 분리하는 '프로세스 VM(Process VM)', 그리고 운영 체제와 애플리케이션을 완전히 분리하는 '시스템 VM(System VM)'이다. 프로세스 VM은 JVM(Java Virtual Machine), 닷넷 프레임워크(.NET framework), 패럿(Parrot) 등이 대표적이다.

시스템 VM은 하드웨어 리소스에 대한 소프트웨어 액세스를 제공하는 중개자, 즉 하이퍼바이저(Hypervisor)가 필요하다. 하이퍼바이저를 개발한 대표적인 기업 혹은 기관은 VM웨어(ESX/ESXi), 인텔/리눅스 재단(젠, Xen), 오라클(스팍(SPARC)용 MV 서버와 x86용 VM 서버), 마이크로소프트(하이퍼-V) 등이 있다. 이제는 데스크톱 컴퓨터 시스템도 가상 머신을 사용한다. 예를 들면 많은 맥 사용자가 물리적 맥 하드웨어에서 가상 윈도우 10 인스턴스를 사용하다.
 

가상 머신의 장점

가상 머신은 다양한 장점이 있다. 소프트웨어가 물리적 호스트 컴퓨터와 분리돼 있어 사용자는 단일 하드웨어에서 여러 OS 인스턴스를 실행할 수 있고, 기업은 시간, 관리 비용, 물리적 공간을 절약할 수 있다. 또한 레거시 앱을 지원하는 특정 VM을 활용한 방식으로, 이전 앱을 업데이트된 또는 다른 운영 체제로 마이그레이션할 필요와 비용을 줄이거나 없앨 수 있다.

개발자는 VM을 이용해 안전한 샌드박스 환경에서 앱을 테스트할 수 있다. 특정 VM 인스턴스를 감염시킬 수 있는 악성코드 격리에도 도움이 될 수 있다. VM 내부의 소프트웨어는 호스트 컴퓨터를 조작할 수 없으므로, 악성 소프트웨어가 기업 인프라 전체로 확산할 수 없다.
 

가상 머신의 단점

반면 단점도 있다. 하나의 물리적 호스트에서 여러 VM을 실행하면 성능이 불안정해질 수 있다. 특히 특정 애플리케이션에 필요한 사양 조건이 충족되지 않으면 더 그렇다. 결국 물리적 컴퓨터와 비교할 때 효율성이 떨어지는 경우가 많다. 이 때문에 대부분의 IT 운영에서는 물리적 시스템과 가상 시스템 간의 적절한 균형점을 찾는다.
 

다른 형태의 가상화

서버 가상화에서 VM이 대성공을 거두자, 이내 스토리지, 네트워킹, 데스크톱 등 다른 영역에 가상화가 확산하기 시작했다. 실제로 데이터센터에서 사용 중인 하드웨어 대부분에 이제 가상화 개념이 적용되기 시작했다.

예를 들어 네트워크 가상화가 있다. 크게 3가지가 있는데, 네트워크 가상화에서 기업은 더 유연하고 확장 가능한 서비스를 위해 상용 서버를 사용해 특수 네트워크 어플라이언스를 대체하는 서비스로서의 네트워크(Network as a Service, NaaS)와 네트워크 기능 가상화(Network Functions Virtualization, NFV)를 추진해 왔다. 이는 네트워크 제어 영역(Control Plane)과 전달 영역(Forwarding Plane)을 분리해 네트워크 리소스의 자동화된 프로비저닝과 정책 기반 관리를 가능하게 하는 소프트웨어 정의 네트워킹(Software Defined Networking, SDN)과 약간 다르다.

마지막 세 번째 기술인 가상 네트워크 기술(Virtual Network Function, VNF)은 라우팅, 방화벽, 로드 밸런싱, WAN 가속화, 암호화 등의 프로세스를 포함해 NFV 환경에서 실행할 수 있는 소프트웨어 기반 서비스다.
 

VM과 컨테이너

VM의 성장으로 컨테이너와 같은 기술이 더 발전하고 기존 개념이 한 단계 진화하면서 웹 애플리케이션 개발자도 VM에 주목하고 있다. 컨테이너를 이용하면 종속성과 함께 단일 애플리케이션을 가상화할 수 있다. 컨테이너는 VM보다 오버헤드가 훨씬 적고, 바이너리, 라이브러리, 애플리케이션만 포함한다는 점에서 간소하다.

일부에서는 컨테이너의 등장으로 가상 머신이 사양길로 접어들 수 있다고 전망한다. 그러나 VM의 기능과 이점은 여전히 의미가 있다. 예를 들어 VM은 여러 애플리케이션을 함께 실행하거나 구형 운영 체제에서 레거시 애플리케이션을 실행할 때 유용하다.

또한 VM은 애플리케이션과 OS를 분리할 수 있지만, 컨테이너는 애플리케이션이 공유하는 OS가 하나뿐이어서 컨테이너가 VM 하이퍼바이저보다 덜 안정적이라고 믿는 이들도 있다.

그러나 IDC의 소프트웨어 정의 컴퓨터 담당 리서치 매니저인 개리 첸은 기업이 클라우드 아키텍처와 컨테이너를 모색하는 동안에도 VM 소프트웨어 시장은 여전히 기본 기술로 여전히 인정받을 것으로 전망했다. 그는 IDC의 2019~2022년 전 세계 가상 머신 소프트웨어 전망 보고서를 통해 “가상 머신 소프트웨어 시장은 매우 급성장했고, 고도로 성숙하고 포화 상태에 가까워졌지만, 그런데도 향후 5년 동안은 긍정적인 성장을 지속할 것이다”라고 내다봤다.
 

VMS, 5G, 에지 컴퓨팅

VM은 5G와 에지 컴퓨팅 등 신기술의 일부이기도 하다. 예를 들어, 마이크로소프트, VM웨어, 시트릭스(Citrix) 등이 활용하는 VDI(Virtual Desktop Infrastructure) 기술이 있다. 최근 코로나19 팬데믹으로 재택근무 직원에게 VDI 시스템을 확대 공급하는 것이 고민이 된 바로 그 기술이다.

카네기 멜런 대학의 컴퓨터 과학부 교수 마하데브 사티아나라야난은 지난 2009년 연구 결과를 발표했다. VDI를 사용하면 키 입력과 마우스 움직임을 기본적으로 원격 데스크톱으로 보내기 때문에 지연 시간이 매우 짧아야 하는데, 가상 머신 기반 클라우드렛(Cloudlet)을 사용해 인터넷 에지의 모바일 장치에 더 나은 처리 기능을 제공하는 방법을 제안한 것이다. 이는 훗날 에지 컴퓨팅의 개발로 이어졌다.

결국 오늘날 사용되는 다른 많은 기술처럼, 수십 년 전에 도입된 오리지널 가상 머신 개념이 없었다면 VMS, 5G, 에지 컴퓨팅, VDI 등의 신기술은 등장하지 않았을 수도 있다. editor@itworld.co.kr


X