가상화

menu icon

가상화

가상화란 물리적 컴퓨터 하드웨어를 보다 효율적으로 활용할 수 있도록 해주는 프로세스이며, 이는 클라우드 컴퓨팅의 기반을 제공합니다.

가상화란?

가상화는 소프트웨어를 사용하여 프로세서, 메모리, 스토리지 등과 같은 단일 컴퓨터의 하드웨어 요소를 일반적으로 가상 머신(VM)이라고 하는 다수의 가상 컴퓨터로 분할할 수 있도록 해주는 컴퓨터 하드웨어 상의 추상화 계층을 구축합니다. 실제 기반 컴퓨터 하드웨어의 단지 일부에서만 실행됨에도 불구하고, 각각의 VM은 자체 운영체제(OS)를 실행하며 마치 독립적인 컴퓨터인 것처럼 작동합니다.

결국 가상화는 물리적 컴퓨터 하드웨어의 보다 효율적인 활용을 가능하게 해주며, 이를 통해 기업은 하드웨어 ROI(투자 수익률)를 증대시킬 수 있습니다.

오늘날, 가상화는 엔터프라이즈 IT 아키텍처의 표준 관행입니다. 또한 클라우드 컴퓨팅 경제를 주도하는 기술이기도 합니다. 가상화를 사용하여 클라우드 제공자는 기존의 물리적 컴퓨터 하드웨어를 사용하여 사용자에게 서비스를 제공할 수 있습니다. 또한 이를 사용하여 클라우드 사용자는 필요 시에 필요한 컴퓨팅 리소스만 구매할 수 있으며, 워크로드의 증가에 따라 해당 리소스를 비용 효율적으로 확장할 수 있습니다.

가상화의 작동 방식에 대한 자세한 개요는 당사의 "가상화 설명"(5:20) 동영상을 참조하세요.

가상화의 장점

가상화는 데이터 센터 운영자와 서비스 제공자에게 몇 가지 이점을 제공합니다.

  • 리소스 효율성: 가상화 이전에 각각의 애플리케이션 서버에서는 자체 전용의 물리적 CPU가 필요했으며, IT 직원은 실행하고자 하는 애플리케이션마다 별도의 서버를 구매하여 구성해야 했습니다. (IT 직원은 신뢰성 문제 때문에 컴퓨터마다 1개의 애플리케이션과 1개의 운영체제(OS)를 두고자 했습니다.) 따라서 언제나 각각의 물리적 서버는 충분히 활용될 수 없었습니다. 이에 반해, 서버 가상화를 사용하면 신뢰성은 그대로 유지하면서도 단일한 물리적 컴퓨터(일반적으로 x86 서버) 상에서 자체 OS가 있는 자체 VM에서 각각 다수의 애플리케이션을 실행할 수 있습니다. 따라서 물리적 하드웨어의 컴퓨팅 용량을 최대한 활용할 수 있습니다.
  • 관리 편의성: 물리적 컴퓨터를 소프트웨어 정의형 VM으로 대체하면, 소프트웨어로 기술된 정책들을 보다 손쉽게 사용 및 관리할 수 있습니다. 이를 통해 자동화된 IT 서비스 관리 워크플로우를 구축할 수 있습니다. 예를 들어, 관리자는 자동화된 배치 및 구성 툴을 사용함으로써 소프트웨어 템플릿에서 가상 머신과 애플리케이션의 콜렉션을 서비스로 정의할 수 있습니다. 이는 관리자가 번거롭고 시간이 많이 소요되며 오류를 유발하기 쉬운 수동 설정 없이도 반복적이며 지속적으로 해당 서비스를 설치할 수 있음을 의미합니다. 관리자는 가상화 보안 정책을 사용하여 가상 머신의 역할을 기반으로 특정 보안 구성을 지정할 수 있습니다. 정책은 미사용 가상 머신을 폐기하여 공간과 컴퓨팅 파워를 절감함으로써 리소스 효율성을 더욱 높일 수도 있습니다.
  • 가동 중단 시간 최소화: OS 및 애플리케이션 충돌로 인해 가동 중단시간이 발생하고 사용자 생산성에 지장을 초래할 수 있습니다. 관리자는 다수의 중복되는 가상 머신을 서로 간에 함께 실행하고, 문제점 발생 시에 이들 간의 장애 복구를 수행할 수 있습니다. 다수의 중복되는 물리적 서버를 실행하려면 추가적인 비용이 소요됩니다.
  • 프로비저닝 고속화: 각 애플리케이션의 하드웨어를 구매, 설치 및 구성하려면 많은 시간이 필요합니다. 하드웨어가 이미 배치되어 있다면, 모든 애플리케이션을 실행하기 위한 가상 머신의 프로비저닝이 훨씬 빨라집니다. 관리 소프트웨어를 사용하여 이를 자동화하고, 기존 워크플로우에 이를 빌드할 수도 있습니다.

잠재적인 이점을 자세히 알아보려면 "가상화의 5가지 장점"을 참조하세요.

솔루션

여러 업체에서 특정 데이터 센터 태스크 또는 일반 사용자 기반의 데스크탑 가상화 시나리오를 처리하는 가상화 솔루션을 제공하고 있습니다. 보다 잘 알려진 예로는 서버, 데스크탑, 네트워크 및 스토리지 가상화에 특화된 VMware, 애플리케이션 가상화에 틈새가 있지만 서버 가상화와 가상 데스크탑 솔루션도 함께 제공하는 Citrix, 그리고 해당 Hyper-V 가상화 솔루션을 Windows에서 제공하며 서버 및 데스크탑 컴퓨터의 가상 버전에 집중하는 Microsoft 등을 들 수 있습니다.

가상 머신(VM)

가상 머신(VM)은 소프트웨어 형식으로 물리적 컴퓨팅을 시뮬레이션하는 가상 환경입니다. 이들은 일반적으로 VM의 구성, 가상 하드 드라이브의 스토리지, 그리고 특정 시점에 해당 상태를 유지하는 VM의 일부 스냅샷을 포함한 다수의 파일들로 구성되어 있습니다.

VM의 전체적인 개요를 보려면 가상 머신의 정의를 참조하세요."

하이퍼바이저

하이퍼바이저는 VM을 코디네이션하는 소프트웨어 계층입니다. 이는 VM 및 기반 물리적 하드웨어 간의 인터페이스의 역할을 수행하며, 각각 실행에 필요한 물리적 리소스에 액세스할 수 있도록 보장합니다. 이는 또한 서로 간의 메모리 공간이나 컴퓨팅 사이클에서 영향을 줌으로써 VM이 서로 간에 간섭하지 않도록 보장합니다.

두 가지 유형의 하이퍼바이저가 존재합니다.

  • 유형 1 또는 “베어메탈" 하이퍼바이저는 기반 물리적 리소스와 상호작용함으로써 기존의 운영체제를 모두 대체합니다. 이는 가상 서버 시나리오에서 가장 흔하게 나타납니다.
  • 유형 2 하이퍼바이저는 기존 OS에서 애플리케이션으로 실행됩니다. 이는 가장 흔하게는 대체 운영체제의 실행을 위해 엔드포인트 디바이스에서 사용되며, 호스트 OS를 사용하여 기반 하드웨어 리소스에 액세스하고 이를 코디네이션해야 하므로 성능 상의 오버헤드를 유발합니다.

"하이퍼바이저: 완벽 안내서"에서는 하이퍼바이저 관련 모든 사항들의 포괄적인 개요를 제공합니다.

가상화의 유형

지금까지는 서버 가상화에 대해 설명했지만, 다른 많은 IT 인프라 요소들을 가상화함으로써 (특히) IT 관리자와 기업 전체에 상당한 장점을 제공할 수 있습니다. 이 섹션에서는 다음 유형의 가상화를 살펴보고자 합니다.

  • 데스크탑 가상화
  • 네트워크 가상화
  • 스토리지 가상화
  • 데이터 가상화
  • 애플리케이션 가상화
  • 데이터 센터 가상화
  • CPU 가상화
  • GPU 가상화
  • Linux 가상화
  • 클라우드 가상화

데스크탑 가상화

데스크탑 가상화를 사용하면 동일 컴퓨터의 자체 VM에서 각각 다수의 데스크탑 운영체제를 실행할 수 있습니다.

두 가지 유형의 데스크탑 가상화가 존재합니다.

  • 가상 데스크탑 인프라(VDI)는 중앙 서버의 VM에서 다수의 데스크탑을 실행하며, 씬 클라이언트 디바이스에서 로그인한 사용자에게 이를 스트리밍합니다. 이러한 방식으로, VDI는 기업이 디바이스에 OS를 설치하지 않고도 디바이스에서 다양한 OS에 액세스할 수 있는 권한을 자체 사용자에게 제공할 수 있도록 합니다. 보다 자세한 설명은 "가상 데스크탑 인프라(VDI)의 정의"를 참조하세요.
  • 로컬 데스크탑 가상화는 로컬 컴퓨터에서 하이퍼바이저를 실행함으로써, 사용자가 해당 컴퓨터에서 하나 이상의 추가적인 OS를 실행함은 물론 기본 OS에 대한 변경 없이도 필요 시에 한 OS에서 다른 OS로 전환할 수 있도록 허용합니다.

가상 데스크탑에 대한 자세한 정보는 "DaaS(Desktop-as-a-Service)를 참조하세요.

네트워크 가상화

네트워크 가상화는 소프트웨어를 사용하여 관리자가 단일 콘솔에서 네트워크를 관리하기 위해 사용할 수 있는 네트워크에 대한 "뷰"를 구축합니다. 이는 하드웨어 요소와 기능들(예: 연결, 스위치, 라우터 등)을 추상화하며, 이를 하이퍼바이저에서 실행 중인 소프트웨어로 추상화합니다. 네트워크 관리자는 기반 물리적 컴포넌트를 전혀 건드리지 않고도 이러한 요소들을 수정 및 제어할 수 있으며, 이를 통해 네트워크 관리가 엄청나게 간소화됩니다.

네트워크 가상화의 유형에는 네트워크 트래픽 라우팅("제어 플레인" 이라고 함)을 제어하는 하드웨어를 가상화하는 소프트웨어 정의형 네트워킹(SDN)이 포함되어 있습니다. 또한 네트워크 기능 가상화(NFV)도 함께 포함되어 있으며, 이는 특정 네트워크 기능(예: 방화벽, 로드 밸런서 또는 트래픽 분석기)을 제공하는 하나 이상의 하드웨어 어플라이언스를 가상화함으로써 해당 어플라이언스의 구성, 프로비저닝 및 관리가 보다 간편해집니다.

스토리지 가상화

스토리지 가상화를 사용하면, 개별 서버에 혹은 독립형 스토리지 유닛에 설치되었는지 여부와 무관하게 네트워크의 모든 스토리지 디바이스를 단일 스토리지 디바이스로서 액세스 및 관리할 수 있습니다. 특히, 스토리지 가상화는 모든 스토리지 블록을 단일한 공유 풀로 통합하며, 이로부터 해당 스토리지는 필요 시에 네트워크의 임의의 VM에 지정될 수 있습니다. 스토리지 가상화를 이용하면 VM의 스토리지를 보다 손쉽게 프로비저닝할 수 있으며, 네트워크의 모든 가용 스토리지를 최대한으로 이용할 수 있습니다.

스토리지 가상화에 대해 보다 자세히 알아보려면 "클라우드 스토리지의 정의"를 참조하세요.

데이터 가상화

오늘날의 기업들은 클라우드에서부터 온프레미스 하드웨어와 소프트웨어 시스템에 이르기까지, 다수의 위치에서 다수의 파일 형식을 사용하여 다수의 애플리케이션의 데이터를 저장합니다. 데이터 가상화를 사용하면 애플리케이션이 소스, 형식 또는 위치에 상관없이 해당 데이터 모두에 액세스할 수 있습니다.

데이터 가상화 툴은 데이터에 액세스하는 애플리케이션과 이를 저장하는 시스템 간의 소프트웨어 계층을 구축합니다. 계층은 필요 시에 애플리케이션의 데이터 요청이나 쿼리를 변환하며, 여러 시스템에 관여될 수 있는 결과를 리턴합니다. 데이터 가상화는 기타 통합 유형이 실현 가능하지 않거나, 바람직하지 않거나 혹은 허용되지 않을 경우 데이터 사일로를 중단하는 데 도움이 될 수 있습니다.

애플리케이션 가상화

애플리케이션 가상화는 사용자의 OS에 직접 설치하지 않고도 애플리케이션 소프트웨어를 실행합니다. 애플리케이션만 가상 환경에서 실행되고 일반 사용자 디바이스의 OS는 평상시처럼 실행되므로, 이는 (위에서 언급한) 완벽한 데스크탑 가상화와는 차이가 있습니다. 세 가지 유형의 애플리케이션 가상화가 존재합니다.

  • 로컬 애플리케이션 가상화: 전체 애플리케이션이 엔드포인트 디바이스에서 실행되지만, 원시 하드웨어가 아닌 런타임 환경에서 실행됩니다.
  • 애플리케이션 스트리밍: 필요 시에 일반 사용자의 디바이스에서 실행될 수 있도록, 애플리케이션이 소프트웨어의 소형 컴포넌트를 전송하는 서버에 상주합니다.
  • 서버 기반 애플리케이션 가상화: 사용자 인터페이스만 클라이언트 디바이스에 전송하는 서버에서 애플리케이션이 전적으로 실행됩니다.

데이터 센터 가상화

데이터 센터 가상화는 대부분의 데이터 센터의 하드웨어를 소프트웨어로 추상화함으로써, 효율적으로 관리자가 단일한 물리적 데이터 센터를 서로 다른 클라이언트의 다수의 가상 데이터 센터로 분할할 수 있도록 허용합니다.

각각의 클라이언트는 동일한 기반 물리적 하드웨어에서 실행되는 자체 IaaS(Infrastructure as a Service)에 액세스할 수 있습니다. 가상 데이터 센터는 클라우드 기반 컴퓨팅에 대한 간편한 진입로(on-ramp)를 제공함으로써, 기업이 인프라 하드웨어를 구매하지 않고도 완벽한 데이터 센터 환경을 빠르게 셋업할 수 있도록 지원합니다.

CPU 가상화

CPU(Central Processing Unit) 가상화는 하이퍼바이저, 가상 머신 및 운영 체제를 가능하게 해주는 기반 기술입니다. 이를 이용하면 다수의 VM에서 사용할 수 있도록 하나의 CPU를 다수의 가상 CPU로 분할할 수 있습니다.

최초의 CPU 가상화는 전적으로 소프트웨어 정의형 가상화였지만, 오늘날의 많은 프로세서에는 VM 성능을 개선하는 CPU 가상화를 지원하는 확장형 명령 세트가 포함되어 있습니다.

GPU 가상화

GPU(Graphical Processing Unit)는 매우 중요한 그래픽 또는 수학적 처리를 대신 처리함으로써 전체 컴퓨팅 성능을 향상시키는 특수 멀티 코어 프로세서입니다. GPU 가상화를 사용함으로써, 다수의 VM은 보다 빠른 동영상, 인공지능(AI) 및 기타 그래픽 또는 수학 중심의 애플리케이션을 위해 단일 GPU의 프로세싱 파워 중 전부 또는 일부를 사용할 수 있습니다.

  • 패스쓰루 GPU는 단일 게스트 OS에서 전체 GPU를 사용할 수 있도록 합니다.
  • 공유 vGPU는 서버 기반 VM에서 사용할 수 있도록 다수의 가상 GPU(vGPU) 간에 물리적 GPU 코어를 분할합니다.

Linux 가상화

Linux에는 Linux 호스트 OS 내에서 x86 기반 VM을 구축할 수 있도록 Intel 및 AMD의 가상화 프로세서 확장 기능을 지원하는 커널 기반 가상 머신(KVM)이라고 하는 자체 하이퍼바이저가 포함되어 있습니다.

오픈 소스 OS인 Linux는 고급 맞춤형 기능을 보유하고 있습니다. 보다 민감한 애플리케이션의 경우, 특정 워크로드나 보안 강화형 버전에 맞게 조정된 Linux의 버전을 실행하는 VM을 구축할 수 있습니다.

클라우드 가상화

위에서 언급한 대로, 클라우드 컴퓨팅 모델은 가상화를 기반으로 합니다. 서버, 스토리지 및 기타 물리적 데이터 센터 리소스를 가상화함으로써, 클라우드 컴퓨팅 제공자는 고객들에게 다음을 포함한 다양한 서비스를 제공할 수 있습니다.

  • IaaS(Infrastructure as a Service): 해당 요구사항에 맞게 구성이 가능한 가상화된 서버, 스토리지 및 네트워크 리소스입니다.
  • PaaS(Platform as a Service): 클라우드 기반 애플리케이션과 솔루션의 구축에 사용할 수 있는 가상화된 개발 툴, 데이터베이스 및 기타 클라우드 기반 서비스입니다.
  • SaaS(Software as a service): 클라우드에서 사용되는 소프트웨어 애플리케이션입니다. SaaS는 하드웨어에서 대부분 추상화된 클라우드 기반 서비스입니다.

이러한 클라우드 서비스 모델에 대해 보다 자세히 알아보려면 당사의 “IaaS 대 PaaS 대 SaaS” 안내서를 참조하세요.

가상화 vs. 컨테이너화

서버 가상화는 하드웨어에서 전체 컴퓨터를 재생성하며, 이는 다시 전체 OS를 실행합니다. OS는 하나의 애플리케이션을 실행합니다. 이는 전혀 가상화가 없는 것보다는 효율적이지만, 실행하고자 하는 애플리케이션마다 불필요한 코드와 서비스를 여전히 복제합니다.

컨테이너는 대안적인 접근 방법을 사용합니다. 이는 애플리케이션 및 해당 에플리케이션이 의존하는 소프트웨어 라이브러리 및 환경 변수 등만을 실행하면서 기반 OS 커널을 공유합니다. 따라서 컨테이너는 보다 작아지며 배치 속도가 빨라집니다.

컨테이너 및 컨테이너화에 대한 자세한 설명은 "컨테이너: 완벽 안내서 및 "컨테이너화: 완벽 안내서"를 참조하세요.

보다 자세한 비교 결과를 원하면 블로그 게시물 "컨테이너 대 VM: 차이점"을 참조하세요.

다음 동영상에서 Sai Vennam은 컨테이너의 기초 및 VM을 통한 가상화와의 차이점(8:09)에 대해 자세히 설명합니다.

VMware

VMware는 가상화 소프트웨어를 구축합니다. VMware는 서버 가상화만을 제공하여 시작했으며, 이의 ESX(현재는 ESXi) 하이퍼바이저는 가장 최초로 상용화에 성공한 가상화 제품 중 하나였습니다. 오늘날 VMware에서는 네트워크, 스토리지 및 데스크탑 가상화를 위한 솔루션도 제공합니다.

VMware 관련 사항을 모두 자세히 살펴보려면 "VMware: 완벽 안내서"를 참조하세요.

보안

가상화는 몇몇 보안 상의 장점을 제공합니다. 예를 들어, 멀웨어에 감염된 VM은 해당 VM이 미감염 상태로 안정적이었던 특정 시점(스냅샷이라고 함)으로 롤백될 수 있습니다. 또한 보다 손쉽게 이를 삭제하고 재구축할 수도 있습니다. 멀웨어가 종종 OS의 코어 컴포넌트에 깊게 통합되어 시스템 롤백 이후에도 지속될 수 있으므로, 가상화되지 않은 OS의 바이러스 제거가 늘 가능하지는 않습니다.

가상화는 또한 일부 보안 상의 문제를 유발합니다. 공격자가 하이퍼바이저를 감염시키는 경우, 이는 잠재적으로 모든 VM 및 게스트 운영 체제를 소유합니다. 하이퍼바이저를 통해 VM이 물리적 네트워크에 접속하지 않고도 서로 간에 통신할 수도 있으므로, 해당 트래픽의 확인이 쉽지 않아서 의심스러운 활동의 감지가 어려울 수 있습니다.

호스트 OS의 유형 2 하이퍼바이저 역시 호스트 OS 감염에 취약합니다.

시장에서는 VM의 멀웨어를 스캔 및 패치하고 전체 VM 가상 디스크를 암호화하며 VM 액세스를 제어 및 감사할 수 있는 다양한 가상화 보안 제품들을 제공합니다.

가상화 및 IBM

IBM Cloud에서는 퍼블릭 클라우드 서비스에서부터 프라이빗 및 하이브리드 클라우드 오퍼링까지를 아우르는 클라우드 기반 가상화 솔루션의 완벽한 보완 기능을 제공합니다. 이를 사용하여 가상 인프라를 구축 및 실행할 수 있으며, 클라우드 기반 AI에서부터 IBM Cloud for VMware Solutions를 사용한 VMware 워크로드 마이그레이션까지의 범위를 포괄하는 서비스를 활용할 수도 있습니다.

지금 바로 IBM 클라우드 계정에 등록하세요.