검수요청.png검수요청.png

가상화

위키원
nineto12 (토론 | 기여)님의 2020년 8월 12일 (수) 11:13 판
이동: 둘러보기, 검색

가상화(virtualization)는 컴퓨터에서 컴퓨터 리소스의 추상화를 일컫는 광범위한 용어이다. "물리적인 컴퓨터 리소스의 특징을 다른 시스템, 응용 프로그램, 최종 사용자들이 리소스와 상호 작용하는 방식으로부터 감추는 기술"로 정의할 수 있다.

개요

컴퓨터 운영체제(OS)를 시스템 구조나 하드웨어에 영향받지 않고 설치, 사용할 수 있도록 하는 기술이다. 일반적으로 운용체재는 특정 시스템 구조나 하드웨어에 특화되어 있어 운용체재의 교체가 쉽지 않으며, 하나의 시스템에서 여러 운용체재를 동시에 운영하는 것도 거의 불가능 하다. 그러나 다양한 업무 수행을 위해서는 하나의 시스템에 여러 운용체계를 얹거나 운영체제를 교체하여 낡은 컴퓨터를 재활용 하는 기술이 필요하며, 특히 최근에는 서버나 PC 수준에서도 이러한 기능이 절대적으로 요구되고 있다. 현재 IBM 등의 메인프레임이나 유닉스 서버에서 브이엠웨어(Vmware)나 MS의 가상 서버를 설치하면 가상화 기능을 이용할 수 있으며 인텔, AMD 등은 가상화 기술을 지원하는 칩의 개발도 서두르고 있다. 컴퓨터에서 가상화 기술을 사용하는 방법은 가상 머신 이외에도 운영체제 위에 가상 머신 지원 프로그램을 사용하는 방법과 가상 머신위에 운영체제를 올리는 방법 등이 있다.[1]

다중 논리 리소스로서의 기능을 하는 것처럼 보이는 서버, 운영 체제, 응용 프로그램, 또는 저장 장치와 같은 하나의 단일 물리 리소스를 만들어 낸다. 아니면 단일 논리 리소스처럼 보이는 저장 장치나 서버와 같은 여러 개의 물리적 리소스를 만들어 낼 수 있다.

기업은 서버 가상화를 통해 하나의 컴퓨터에서 동시에 1개 이상의 운영제체를 가동시킬 수 있다. 대부분의 서버는 단지 용량의 10~15%만 사용하는데, 가상화는 이런 서버의 효용률(utilization rate)을 70% 그 이상으로 올릴 수 있다. 높은 수준의 효용률은 같은 분량의 업무처리에서 요구하는 컴퓨터 수를 줄여준다. 이 용어는 오래되었다. 1960년대 이후로 널리 쓰였으며, 전체 컴퓨터 시스템에서 개별 기능/구성요소에까지 컴퓨터의 다른 많은 면과 영역에 적용되어 왔다. 모든 가상화 기술의 공통 주제는 주변에 막을 씌워 "기술적으로 자세한 부분을 숨기는 것"이다. 가상화는 다른 물리적 위치에서 리소스를 한데로 합치거나 제어 시스템을 단순하게 하여 다중 송수신 접근과 같은 것을 통해 기반이 되는 기능 추가를 보이지 않게 하는 외부 인터페이스를 만들어 낸다. 새로운 가상 플랫폼과 기술의 최근 발전은 이렇게 성숙한 개념에 다시 한 번 집중하게 만들었다.

추상화와 객체 지향 용어들과 같이, 가상화는 다른 많은 환경에서 쓰인다. 이 글은 다음과 같이 두 가지 부분으로 나눠서 용어의 일반적인 용도를 나타내었다.첫 번째로 플랫폼 가상화는 모든 컴퓨터를 시뮬레이트한다. 두 번째로 리소스 가상화는 결합된 리소스, 단편화된 리소스, 아니면 단순화된 리소스를 시뮬레이트한다. 물론, 가상화는 또한 컴퓨터가 쓰이지 않는 환경에서도 중요한 개념이다. 많은 제어 시스템들은 어떠한 복잡한 장치에 가상화된 인터페이스를 추가한다. 자동차의 가속 페달은 엔진으로 향하는 연료의 흐름을 높이는 것 이상의 일을 한다. 전자 장치로 조종하는 플라이 바이 와이어 시스템은 단순화된 물리적 기능 추가와 관계가 거의 없는 "가상 비행기"를 표현해 낸다. 그리고 가상화와 반대되는 다른 개념으로는 투명성이 있다. 가상 가공품은 눈에 보이고 느낄 수 있지만 실질적으로 존재하지 않는다. 투명한 것은 실질적으로 존재하지만, 사용할 때 보이지 않는점을 말한다.[2]

역사

가상화의 영어 낱말 virtualization이라는 용어의 원래 어원은 1960년대로 거슬러 올라가며, 하드웨어와 소프트웨어를 결합하는 가상 머신이 만들어진 때이다. 우리는 편하게 이것을 플랫폼 가상화라고 부른다. 가상 머신은 IBM M44/44X 시스템에서 처음 등장했다. 가상 머신이 만들어지고 관리되는데 C-40 시절과 최근 "서버 가상화"라는 용어가 쓰이기 시작할 즈음 이를 "가짜 컴퓨터"(pseudo machine)를 만든다고 일컬었다. "가상화"와 "가상 컴퓨터"라는 용어들은 또한 둘 다 여러 해를 거치면서 추가적인 뜻을 얻게 되었다.

가상화 기술은 1960년대부터 시작되었으나 널리 도입된 것은 2000년대다. 하이퍼바이저와 같은 가상화 지원 기술이 수십 년 전에 개발되어 일괄 처리를 수행하는 컴퓨터에 여러 명의 사용자가 동시에 액세스할 수 있게 되었다. 일괄 처리는 급여 처리와 같은 일상적인 태스크를 빠르게 수천 번 반복해야 하는 사업 부문에서 널리 사용되는 컴퓨팅 방식이었다. 그러나 이후 몇십 년간 단일 머신에서 여러 사용자가 작업할 수 있게 하는 솔루션은 점차 인기를 얻은 데 비해, 가상화는 빛을 보지 못했다. 즉, 시간 공유 솔루션으로 인해 운영 체제 내에서 격리된 사용자들은 유닉스(UNIX)와 같은 운영 체제로 옮겨가게 되었고 결국 리눅스(Linux)가 주류로 떠올랐습니다. 그러는 동안 가상화는 대중적인 인기를 얻지 못하는 틈새 기술로 남게 되었다.

1990년대는 대부분의 기업이 물리 서버와 단일 벤더 IT 스택을 사용하고 있었기 때문에 다른 벤더의 하드웨어에서 레거시 애플리케이션을 실행할 수 없었다. 다양한 벤더가 제공하는 저렴한 상용 서버, 운영 체제, 애플리케이션으로 IT 환경을 업데이트하면서 기업은 사용률이 낮은 물리 하드웨어에 종속되었으며 각 서버에서 벤더별 태스크를 1개만 실행할 수 있었다. 가상화는 이러한 문제를 해결할 수 있었다. 이 2가지 문제에 대해 적절한 해결책을 제시하는 가상화를 통해 기업은 서버를 파티셔닝하고 여러 유형 및 버전의 운영 체제에서 레거시 애플리케이션을 실행할 수 있게 되었다. 서버를 더 효율적으로 사용하거나 아예 사용하지 않아도 되었으므로 구매, 셋업, 냉각, 유지관리와 관련 된 비용이 줄어들었다. 또한 가상화는 광범위하게 적용할 수 있어 벤더 종속을 줄이고 클라우드 컴퓨팅의 기반을 다지는 데 도움이 되었다. 오늘날에는 모든 사항을 기록하는 데 전문적인 가상화 관리 소프트웨어를 필요로 하는 여러 기업에서 일반적으로 가상화를 활용하고 있다.[3]

특징

장단점

유연성: 동일한 하드웨어에서 여러 운영 체제를 동시에 실행할 수 있습니다. 민첩성: 한 물리적 서버에서 다른 물리적 서버로 파일이나 사진을 이동하는 것처럼 운영 체제 이동이 가능합니다. 내결함성: 물리적 서버에 장애가 발생하면 관리 소프트웨어는 이용 가능한 다른 서버로 신속하게 인스턴스를 마이그레이션하여 물리적 하드웨어에 장애가 발생했다는 것조차 알 수 없도록 조치합니다. 비용 효율성: 필요한 물리적 서버 수를 줄일 수 있고 전기 요금과 운영 및 유지보수 비용도 절감할 수 있습니다.[4] 단점 첫 번째 가상화로 구축하여 사용하려면 1대 혹은 2대의 서버는 5대의 서버 성능을 필요로 하기 때문에, 고사양의 서버로 구성될 수 밖에 없습니다. 5대의 서버를 동시에 구축하여 서버 교체 시기가 도래하였다면 다행이지만 보통 필요 시 증설하는 경우가 대부분입니다. 따라서 초기비용이 발생하게 됩니다. 두 번째로는 관리해야 하는 라이선스가 증가할 수 있습니다. 보통 기존의 온프레미스 환경에서 가상화 환경으로 이전할 때에는 노후화 된 하드웨어를 개비하기 위함도 있지만 EOS된 OS를 업그레이드 하기 위함도 있습니다. 새로운 OS라이선스가 들어가기 때문에 관리해야 하는 라이선스가 늘어날 수 밖에 없겠지 장점 첫째, 하드웨어 비용과 공간이 절감됩니다. 기존 환경에서는 하드웨어 비용+OS 및 백신, 어플리케이션 비용이 들었다면, 가상화 환경에서는 하드웨어 비용을 제외한 나머지 비용 즉, OS 및 백신, 어플리케이션 비용만 들게 됩니다. 둘째, 가동시간 및 가용성 향상을 들 수 있습니다. 가상화 환경에서는 모든 가상 서버(VM)에 대해 이중화가 가능하지만 기존 환경에서는 이중화 시 별도 장비가 추가 구성되어야 합니다. 셋째, 서버 및 응용 프로그램 관리 간소화를 들 수 있습니다. 관리자는 가상화 서버의 리소스를 대시보드를 통해 손쉽게 확인할 수 있습니다. CPU, Memory, 저장소 사용 가능 용량, VM등을 한 눈에 쉽게 파악할 수 있어 기존의 사용 서버들을 일일이 확인하는 것보다 쉽게 관리할 수 있게 되었습니다. 네 번째로는, 재해 복구 및 비즈니스 연속성 구현입니다. 만약 서버를 운영하다 심각한 장애가 발생하면 백업 파일이 있는 경우에는 신규 장비에 백업 파일로 복원을 하면 되긴 하지만, 신규 장비가 들어오는 시간, OS 설치 시간 등이 소요됩니다. 가상화 환경에서는 가상 서버(VM) 이미지 백업이 되고 있는 상황이라면, 클릭 몇 번으로 백업이 된 시점으로 복원이 가능합니다. 또한 가상화 서버가 장애인 상황이면 가동되고 있는 나머지 서버에서 서비스를 하고 장애 서버 조치를 한 뒤 정상화 시키면 서비스 중단 없이 장애조치가 가능합니다. [5]

가상화 사용시 혜택

1) 높아진 자원의 활용률 : 가상화는 물리적 자원들과 자원 풀에 대한 동적인 공유를 가능하게 해주며, 이를 통해 더 높은 자원의 활용률을 얻을 수 있다. 특히 평균 워크로드가 전체 자원의 워크로드 보다 훨씬 적은 가변적인 워크로드 상황에서는 더 높은 효과를 얻을 수 있다. 2) 낮아진 관리 비용 : 가상화는 관리해야 하는 물리적 자원들의 대수를 줄여줌으로써 관리 인력의 생산성을 향상시킬 수 있다. 또한 물리적 자원들의 복잡성을 숨겨주고, 자동화, 정보화 및 중앙화를 통해 공통된 관리 작업을 단순화시키고, 워크로드 관리의 자동화를 가능하게 해준다. 가상화는 이기종 플랫폼 환경에서도 관리 도구를 공통으로 사용할 수 있게 해준다 3) 사용의 유연성: 가상화는 빠르게 변화하는 비즈니스니스를 만족시키기 위하여 자원들이 동적으로 재구성되고 활용 될 수 있도록 해준다 4) 향상된 보안 가상화는 단순한 공유 메커니즘에서는 불가능한 분리와 격리를 가능하게 해서 데이터와 서비스에 대하여 통제되고 안전한 액세스를 제공한다. 5) 높아진 가용성 가상화는 사용자레벨에 아무런 영향을 주지 않고도 물리적자원이 제거되거나 업그레이드 또는 변경 될 수 있도록 지원해 준다 6) 증가된 확장성 자원 분할 및 단일화(Aggregation)는 가상화된 자원이 개별 물리적 자원보다 더 작아지거나 혹은 더 커질 수 있게 해준다. 이를 통해 물리적 자원의 구성 변경이 없어도 필요한 만큼의 적정한 확장성을 얻을 수 있다. 7)상호 운영성 및 투자의보호 가상화 자원들은 기존 물리적 자원들간에서는 불가능한 인터페이스와 프로토콜 레벨에서의 호환성을 제공해 준다. 8) 향상된 프로비져닝 (Provisioning) 가상화는 자원의 할당을 개별 물리적 단위보다도 더 세밀한 조각 단위에서 가능하게 해준다 [6]

가상화의 원리

하이퍼바이저라는 소프트웨어가 물리 리소스를 필요로 하는 가상 환경으로부터 물리 리소스를 분리합니다. 하이퍼바이저는 노트북 등의 운영 체제에 배포하거나 서버 등의 하드웨어에 직접 설치할 수 있으며 대부분의 기업들은 이러한 방식으로 가상화합니다. 하이퍼바이저가 물리 리소스를 분할하여 가상 환경에서 사용할 수 있도록 합니다. 리소스는 필요에 따라 물리 환경에서 여러 가상 환경으로 파티셔닝됩니다. 사용자가 가상 환경(일반적으로 게스트 머신 또는 가상 머신이라고 함)과 상호 작용하고 가상 환경 내에서 계산을 실행합니다. 가상 머신은 단일 데이터 파일과 같이 기능합니다. 디지털 파일과 같이 한 컴퓨터에서 다른 컴퓨터로 이동할 수 있고 어느 쪽 컴퓨터에서든 열어 동일하게 작동할 수 있습니다. 가상 환경이 실행 중이고 사용자 또는 프로그램이 물리 환경에서 추가 리소스를 요구하는 명령을 내리면 하이퍼바이저가 그 요청을 물리 시스템에 전달하고 변경사항을 캐시합니다. 이 모든 작업은 네이티브 속도에 가깝게 이루어집니다(특히 요청이 커널 기반 가상 머신(KVM)상에서 오픈소스 하이버파이저를 통해 전송되는 경우).

가상화의 유형

데이터 가상화

여러 곳에 분산되어 있는 데이터를 단일 소스로 통합할 수 있습니다. 데이터 가상화를 통해 기업은 데이터를 동적 공급 요소로 다루어 여러 소스에서 데이터를 동시에 가져오고 새로운 데이터 소스를 손쉽게 통합하며 사용자의 요구에 따라 데이터를 변환할 수 있는 처리 역량을 확보할 수 있습니다. 데이터 가상화 툴은 여러 데이터 소스를 대표하여 이와 같이 다양한 데이터 소스가 단일 소스로 처리될 수 있도록 함으로써 필요한 데이터를 필요한 형식으로 적시에 애플리케이션 또는 사용자에게 제공합니다.

데스크탑 가상화

데스크탑 가상화는 단일 머신에서 여러 운영 체제를 배포할 수 있는 운영 체제 가상화와 혼동하기 쉬우며, 시뮬레이션된 데스크탑 환경이 중앙 관리자 또는 자동화된 관리 툴을 통해 수백 개의 물리 머신에 동시 배포되도록 지원합니다. 각 머신에서 물리적으로 설치, 설정, 업데이트되는 기존의 데스크탑 환경과 달리 데스크탑 가상화는 관리자가 모든 가상 데스크탑에서 설정, 업데이트, 보안 점검을 대규모로 수행할 수 있습니다.

서버 가상화

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

운영 체제 가상화

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

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

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

기능

  • 공유 기능 : 가장 대표적인 가상화의 기능으로서 다수의 많은 가상 자원들이 하나의 동일한 물리적 자원과 연결되어 있거나 가리키는 것을 말한다. 물리적 자원의 일부분을 가상화된 자원마다 할당하거나 혹은 물리적 자원에 대하여 타임 쉐어링 기법으로 공유하는 방식이 주로 사용된다. 이러한 형태의 가상화는 가상화 자원을 사용하는 여러 사용자들(애플리케이션 또는 서비스)이 물리적 자원을 공유하게 해주며, 이때 각 사용자는 마치 자기가 해당 자원을 혼자서만 사용하는 것과 같은 착각을 하게 된다. 자원의 공유를 의미한다. 물리적인 자원(CPU, 메모리 등)을 논리적으로 나누어 서비스별로 사용하는 것이다. 예를 들어, 하나의 서버에 3~4명의 사용자가 독립적인 자원을 할당 받아 사용할 수 있다는 말이다. 대표적 사례로는 서버 내의 논리적 분할, 가상머신(VM), 가상 디스크, 가상 LAN(VLANs)을 들 수 있다.
  • 단일화 기능 : 공유와 정반대 개념이다. 여러대의 물리적인 자원들 중 여유 자원을 논리적으로 하나의 자원으로 묶어 사용하는 것이다. 예를 들어 내컴퓨터의 A, B, C 물리적 하드디스크의 여유 공간 10GB, 30GB, 50GB의 공간을 하나로 묶어서 사용하게 하는 것이다.공유의 반대되는 가상화 개념으로서, 가상 자원은 여러 개의 물리적 자원들에 걸쳐서 만들어질 수 있으며, 이를 통해 외견상 전체 용량을 증가시키고 전체적인 관점에서 활용과 관리를 단순화시켜 줄 수 있다. 예를 들어, 스토리지 가상화는 여러 개의 물리적 디스크 시스템에 남아있는 각각의 유휴 디스크들을 하나의 가상화된 디스크로 만들어 주는데, 이때 가상화된 디스크는 가상 디스크를 만드는데 사용 되어진 어떤 물리적 디스크보다도 더 커질 수 있다
  • 에뮬레이션 기능 : 에뮬레이션 기능은 에뮬레이터를 말한다. 즉 내컴퓨터의 운영체제와 다른 운영체제를 구동하여 다른 운영체제에서만 동작하는 소프트웨어/애플리케이션을 동작하는 것이다. 물리적 자원 자체에는 원래부터 존재하지 않았지만 가상 자원에는 어떤 기능들이나 특성들을 마치 처음부터 존재했던 것처럼 가질 수 있다. 예를 들어 IP 네트워크 상에서 가상 SCSI 버스를 구현하는 iSCSI 또는 물리적 디스크 스토리지상에 구현된 가상 테이프 스토리지 등이 여기에 속한다. 또 다른 형태의 에뮬레이션에는 여러 개의 제각기 다른 물리적 자원들을 표준 구성요소 형태인 것처럼 가상 자원으로 표시하는 것이 있다. 여러 종류의 이더넷(Ethernet) 인터페이스를 마치 하나의 특정한 표준 이더넷 인터페이스 모델로 나타내는 것이 그 예이다.
  • 절연 기능 : 가상화된 자원들과 물리적 자원들간의 상호 맵핑은 가상화 자원들 또는 가상화 자원들을 사용하는 사용자들에게 아무런 영향을 미치지 않으면서 물리적 자원들이 교체될 수 있도록 해준다 . 이것은 투명한 변경(Transparent Change)이라고 불리우며, 투명한 변경은 가상화에 있어서 하나의 부가적인 혜택이기도 하지만, 때때로 그 자체가 하나의 기술로서 중요한 의미를 갖기도 한다. 어떤 가상 프로세서가 결함이 발생하였거나 혹은 곧 발생하려는 물리적 프로세서에서 다른 정상적인 물리적 프로세서로 자동적으로 옮겨간다거나, 디스크의 결함을 사용자들로부터 숨기기 위해 다중디스크(Redundant Disk)를 사용하는 RAID 스토리지 컨트롤러가 대표적인 사례이다. 달리 말해 장애 방지(Failure Proof)의 효과라고 볼 수 있다. 투명변경(Transparent Change)라고도 부르며 물리적 자원과 가상화 자원 간 상호 맵핑을 통해 물리적인 자원의 교체를 운영에 지장 없이 하는 것이다. 예를 들면, 다중 디스크를 사용하는 서버나 스토리지에서 사용하는 RAID 컨트롤러, 핫스왑(Hot swap) 등이 있다.[6]


각주

  1. 가상화 네이버 지식백과 - https://terms.naver.com/entry.nhn?docId=842008&cid=42346&categoryId=42346
  2. 가상화 위키백과 - https://ko.wikipedia.org/wiki/%EA%B0%80%EC%83%81%ED%99%94
  3. 3.0 3.1 가상화란 무엇일까요? 레드햇 - https://www.redhat.com/ko/topics/virtualization/what-is-virtualization
  4. 가상화란 무엇인가요? 알리바바 클라우드 - https://www.alibabacloud.com/ko/knowledge/what-is-virtualization
  5. 사용자 최종변기, 〈가상화 A to Z : 가상화에 대하여 알아봅시다!〉, 《넷게이트》, 2019-04-05
  6. 6.0 6.1 인용 오류: 잘못된 <ref> 태그; ".EC.9D.B4.EB.B2.A0"이 다른 콘텐츠로 여러 번 정의되었습니다

참고자료

같이 보기

  검수요청.png검수요청.png 이 가상화 문서는 하드웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.