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

"가상화"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글 (같이 보기)
 
(사용자 3명의 중간 판 67개는 보이지 않습니다)
1번째 줄: 1번째 줄:
'''가상화'''<!--가상화-->(virtualization)<!--(virtualization, Virtualization)-->는 컴퓨터에서 컴퓨터 리소스의 추상화를 일컫는 광범위한 용어이다. "물리적인 컴퓨터 리소스의 특징을 다른 시스템, 응용 프로그램, 최종 사용자들이 리소스와 상호 작용하는 방식으로부터 감추는 기술"로 정의할 수 있다.
+
'''가상화'''<!--가상화-->(virtualization)<!--(virtualization, Virtualization)-->는 컴퓨터에서 컴퓨터 리소스의 추상화를 일컫는 광범위한 용어이다. 물리적, 논리적 자원을 추상화시켜 실제와 같은 자원으로 사용 및 관리 가능하도록 하는 기반 환경과 기술을 말한다.
  
 
==개요==
 
==개요==
다중 논리 리소스로서의 기능을 하는 것처럼 보이는 서버, 운영 체제, 응용 프로그램, 또는 저장 장치와 같은 하나의 단일 물리 리소스를 만들어 낸다. 아니면 단일 논리 리소스처럼 보이는 저장 장치나 서버와 같은 여러 개의 물리적 리소스를 만들어 낼 수 있다.
+
가상화는 컴퓨터 [[운영체제]](OS)를 시스템 구조나 하드웨어에 영향받지 않고 설치, 사용할 수 있도록 하는 기술이다. 일반적으로 운용체재는 특정 시스템 구조나 하드웨어에 특화되어 있어 운용체재의 교체가 쉽지 않으며, 하나의 시스템에서 여러 운용체재를 동시에 운영하는 것도 거의 불가능하다. 그러나 다양한 업무 수행을 위해서는 하나의 시스템에 여러 운용체계를 얹거나 운영체제를 교체하여 낡은 컴퓨터를 재활용 하는 기술이 필요하며, 특히 최근에는 서버나 PC 수준에서도 이러한 기능이 절대적으로 요구되고 있다. 현재 [[IBM]] 등의 메인프레임이나 유닉스 서버에서 브이엠웨어(VMware)나 마이크로소프트의 가상 서버를 설치하면 가상화 기능을 이용할 수 있으며 [[인텔]], [[AMD]] 등은 가상화 기술을 지원하는 칩의 개발도 서두르고 있다. 컴퓨터에서 가상화 기술을 사용하는 방법은 [[가상머신]](Virtual Machine) 이외에도 운영체제 위에 가상머신 지원 프로그램을 사용하는 방법과 가상머신위에 운영체제를 올리는 방법 등이 있다.<ref>가상화 네이버 지식백과 - https://terms.naver.com/entry.nhn?docId=842008&cid=42346&categoryId=42346</ref> 다중 논리 리소스로서의 기능을 하는 것처럼 보이는 서버, 운영 체제, 응용 프로그램, 또는 저장 장치와 같은 하나의 단일 물리 리소스를 만들어 낸다. 아니면 단일 논리 리소스처럼 보이는 저장 장치나 서버와 같은 여러 개의 물리적 리소스를 만들어 낼 수 있다.
  
기업은 서버 가상화를 통해 하나의 컴퓨터에서 동시에 1개 이상의 운영제체를 가동시킬 수 있다. 대부분의 서버는 단지 용량의 10~15%만 사용하는데, 가상화는 이런 서버의 효용률(utilization rate)을 70% 그 이상으로 올릴 수 있다. 높은 수준의 효용률은 같은 분량의 업무처리에서 요구하는 컴퓨터 수를 줄여준다. 이 용어는 오래되었다. 1960년대 이후로 널리 쓰였으며, 전체 컴퓨터 시스템에서 개별 기능/구성요소에까지 컴퓨터의 다른 많은 면과 영역에 적용되어 왔다. 모든 가상화 기술의 공통 주제는 주변에 막을 씌워 "기술적으로 자세한 부분을 숨기는 것"이다. 가상화는 다른 물리적 위치에서 리소스를 한데로 합치거나 제어 시스템을 단순하게 하여 다중 송수신 접근과 같은 것을 통해 기반이 되는 기능 추가를 보이지 않게 하는 외부 인터페이스를 만들어 낸다. 새로운 가상 플랫폼과 기술의 최근 발전은 이렇게 성숙한 개념에 다시 한 번 집중하게 만들었다.
+
기업은 서버 가상화를 통해 하나의 컴퓨터에서 동시에 1개 이상의 운영제체를 가동시킬 수 있다. 대부분의 서버는 단지 용량의 10~15%만 사용하는데, 가상화는 이런 서버의 효용률(utilization rate)을 70% 그 이상으로 올릴 수 있다. 높은 수준의 효용률은 같은 분량의 업무처리에서 요구하는 컴퓨터 수를 줄여준다. 이 용어는 오래되었다. 1960년대 이후로 널리 쓰였으며, 전체 컴퓨터 시스템에서 개별 기능/구성요소에까지 컴퓨터의 다른 많은 면과 영역에 적용되어 왔다. 모든 가상화 기술의 공통 주제는 주변에 막을 씌워 "기술적으로 자세한 부분을 숨기는 것"이다. 가상화는 다른 물리적 위치에서 리소스를 한데로 합치거나 제어 시스템을 단순하게 하여 다중 송수신 접근과 같은 것을 통해 기반이 되는 기능 추가를 보이지 않게 하는 외부 인터페이스를 만들어 낸다.
  
추상화와 객체 지향 용어들과 같이, 가상화는 다른 많은 환경에서 쓰인다. 이 글은 다음과 같이 두 가지 부분으로 나눠서 용어의 일반적인 용도를 나타내었다.첫 번째로 플랫폼 가상화는 모든 컴퓨터를 시뮬레이트한다. 두 번째로 리소스 가상화는 결합된 리소스, 단편화된 리소스, 아니면 단순화된 리소스를 시뮬레이트한다. 물론, 가상화는 또한 컴퓨터가 쓰이지 않는 환경에서도 중요한 개념이다. 많은 제어 시스템들은 어떠한 복잡한 장치에 가상화된 인터페이스를 추가한다. 자동차의 가속 페달은 엔진으로 향하는 연료의 흐름을 높이는 것 이상의 일을 한다. 전자 장치로 조종하는 플라이 바이 와이어 시스템은 단순화된 물리적 기능 추가와 관계가 거의 없는 "가상 비행기"를 표현해 낸다. 그리고 가상화와 반대되는 다른 개념으로는 투명성이 있다. 가상 가공품은 눈에 보이고 느낄 수 있지만 실질적으로 존재하지 않는다. 투명한 것은 실질적으로 존재하지만, 사용할 때 보이지 않는점을 말한다.<ref>가상화 위키백과 - https://ko.wikipedia.org/wiki/%EA%B0%80%EC%83%81%ED%99%94</ref>
+
추상화와 객체 지향 용어들과 같이, 가상화는 다른 많은 환경에서 쓰인다. 두 가지 부분으로 나눠서 용어의 일반적인 용도를 나타내었다. 첫 번째로 플랫폼 가상화는 모든 컴퓨터를 시뮬레이트한다. 두 번째로 리소스 가상화는 결합된 리소스, 단편화된 리소스, 아니면 단순화된 리소스를 시뮬레이트한다. 물론, 가상화는 또한 컴퓨터가 쓰이지 않는 환경에서도 중요한 개념이다. 많은 제어 시스템들은 어떠한 복잡한 장치에 가상화된 인터페이스를 추가한다. 자동차의 가속 페달은 엔진으로 향하는 연료의 흐름을 높이는 것 이상의 일을 한다. 전자 장치로 조종하는 플라이 바이 와이어(FBW, fly-by-wire) 시스템은 단순화된 물리적 기능 추가와 관계가 거의 없는 "가상 비행기"를 표현해 낸다. 그리고 가상화와 반대되는 다른 개념으로는 투명성이 있다. 가상 가공품은 눈에 보이고 느낄 수 있지만 실질적으로 존재하지 않는다. 투명한 것은 실질적으로 존재하지만, 사용할 때 보이지 않는점을 말한다.<ref>가상화 위키백과 - https://ko.wikipedia.org/wiki/%EA%B0%80%EC%83%81%ED%99%94</ref>
  
==역사==
+
==등장배경==
가상화의 영어 낱말 virtualization이라는 용어의 원래 어원은 1960년대로 거슬러 올라가며, 하드웨어와 소프트웨어를 결합하는 가상 머신이 만들어진 때이다. 우리는 편하게 이것을 플랫폼 가상화라고 부른다. 가상 머신은 IBM M44/44X 시스템에서 처음 등장했다. 가상 머신이 만들어지고 관리되는데 C-40 시절과 최근 "서버 가상화"라는 용어가 쓰이기 시작할 즈음 이를 "가짜 컴퓨터"(pseudo machine)를 만든다고 일컬었다. "가상화"와 "가상 컴퓨터"라는 용어들은 또한 둘 다 여러 해를 거치면서 추가적인 뜻을 얻게 되었다.
+
가상화의 영어 낱말 virtualization이라는 용어의 원래 어원은 1960년대로 거슬러 올라가며, [[하드웨어]]와 [[소프트웨어]]를 결합하는 가상머신이 만들어진 때이다. 편하게 이것을 플랫폼 가상화라고 부른다. 가상머신은 IBM M44/44X 시스템에서 처음 등장했다. 가상머신이 만들어지고 관리되는데 C-40 시절과 최근 "서버 가상화"라는 용어가 쓰이기 시작할 즈음 이를 "가짜 컴퓨터"(pseudo machine)를 만든다고 일컬었다. "가상화"와 "가상 컴퓨터"라는 용어들은 또한 둘 다 여러 해를 거치면서 추가적인 뜻을 얻게 되었다.
 
   
 
   
가상화 기술은 1960년대부터 시작되었으나 널리 도입된 것은 2000년대다. 하이퍼바이저와 같은 가상화 지원 기술이 수십 년 전에 개발되어 일괄 처리를 수행하는 컴퓨터에 여러 명의 사용자가 동시에 액세스할 수 있게 되었다. 일괄 처리는 급여 처리와 같은 일상적인 태스크를 빠르게 수천 번 반복해야 하는 사업 부문에서 널리 사용되는 컴퓨팅 방식이었다. 그러나 이후 몇십 년간 단일 머신에서 여러 사용자가 작업할 수 있게 하는 솔루션은 점차 인기를 얻은 데 비해, 가상화는 빛을 보지 못했다. 즉, 시간 공유 솔루션으로 인해 운영 체제 내에서 격리된 사용자들은 유닉스(UNIX)와 같은 운영 체제로 옮겨가게 되었고 결국 리눅스(Linux)가 주류로 떠올랐습니다. 그러는 동안 가상화는 대중적인 인기를 얻지 못하는 틈새 기술로 남게 되었다.
+
가상화 기술은 1960년대부터 시작되었으나 널리 도입된 것은 2000년대다. [[하이퍼바이저]](Hypervisor)와 같은 가상화 지원 기술이 수십 년 전에 개발되어 일괄 처리를 수행하는 컴퓨터에 여러 명의 사용자가 동시에 액세스할 수 있게 되었다. 일괄 처리는 급여 처리와 같은 일상적인 태스크를 빠르게 수천 번 반복해야 하는 사업 부문에서 널리 사용되는 컴퓨팅 방식이었다. 그러나 이후 몇십 년간 단일 머신에서 여러 사용자가 작업할 수 있게 하는 솔루션은 점차 인기를 얻은 데 비해, 가상화는 빛을 보지 못했다. 즉, 시간 공유 솔루션으로 인해 운영 체제 내에서 격리된 사용자들은 [[유닉스]](UNIX)와 같은 운영 체제로 옮겨가게 되었고 결국 [[리눅스]](Linux)가 주류로 떠올랐다. 그러는 동안 가상화는 대중적인 인기를 얻지 못하는 틈새 기술로 남게 되었다.<ref name="레드">가상화란 무엇일까요? 레드햇 - https://www.redhat.com/ko/topics/virtualization/what-is-virtualization</ref>
  
1990년대는 대부분의 기업이 물리 서버와 단일 벤더 IT 스택을 사용하고 있었기 때문에 다른 벤더의 하드웨어에서 레거시 애플리케이션을 실행할 수 없었다. 다양한 벤더가 제공하는 저렴한 상용 서버, 운영 체제, 애플리케이션으로 IT 환경을 업데이트하면서 기업은 사용률이 낮은 물리 하드웨어에 종속되었으며 각 서버에서 벤더별 태스크를 1개만 실행할 수 있었다. 가상화는 이러한 문제를 해결할 수 있었다. 이 2가지 문제에 대해 적절한 해결책을 제시하는 가상화를 통해 기업은 서버를 파티셔닝하고 여러 유형 및 버전의 운영 체제에서 레거시 애플리케이션을 실행할 수 있게 되었다. 서버를 더 효율적으로 사용하거나 아예 사용하지 않아도 되었으므로 구매, 셋업, 냉각, 유지관리와 관련 된 비용이 줄어들었다. 또한 가상화는 광범위하게 적용할 수 있어 벤더 종속을 줄이고 클라우드 컴퓨팅의 기반을 다지는 데 도움이 되었다. 오늘날에는 모든 사항을 기록하는 데 전문적인 가상화 관리 소프트웨어를 필요로 하는 여러 기업에서 일반적으로 가상화를 활용하고 있다.
+
1990년대는 대부분의 기업이 물리 서버와 단일 벤더 IT 스택을 사용하고 있었기 때문에 다른 벤더의 하드웨어에서 [[레거시]] [[애플리케이션]]을 실행할 수 없었다. 다양한 벤더가 제공하는 저렴한 상용 서버, 운영 체제, 애플리케이션으로 IT 환경을 업데이트하면서 기업은 사용률이 낮은 물리 하드웨어에 종속되었으며 각 서버에서 벤더별 태스크를 1개만 실행할 수 있었다. 가상화는 이러한 문제를 해결할 수 있었다. 이 2가지 문제에 대해 적절한 해결책을 제시하는 가상화를 통해 기업은 서버를 파티셔닝하고 여러 유형 및 버전의 운영체제에서 레거시 애플리케이션을 실행할 수 있게 되었다. 서버를 더 효율적으로 사용하거나 아예 사용하지 않아도 되었으므로 구매, 셋업, 냉각, 유지관리와 관련 된 비용이 줄어들었다. 또한 가상화는 광범위하게 적용할 수 있어 벤더 종속을 줄이고 클라우드 컴퓨팅의 기반을 다지는 데 도움이 되었다. 첫 상용 솔루션은 2001년 발표된 브이엠웨어(VMware)의 x86 컴퓨터에서 사용할 수 있는 솔루션이었고, 2003년에는 시트릭스 시스템즈(Citrix Systems)의 젠(Xen)이라는 병렬 오픈소스 솔루션이 등장했다. 이후 다른 여러 업체에서도 자체 서버 가상화 플랫폼을 개발했고, 업계 전반적으로 가상머신 워크로드의 배포, 이동, 관리 등을 쉽게 해주는 고급 관리, 자동화 및 오케스트레이션 툴이 탄생하게 되었다. 가상화 기술을 활용한 현대적 의미의 ‘클라우드 컴퓨팅’은 1996년 [[컴팩]](Compaq)에서 개념이 등장한 이후, 2006년 [[구글]] 내부에서 유휴 서버를 활용하는 방식을 처음 제안했다. 그리고 같은 해 8월 [[아마존]]이 EC2(Amazon Elastic Compute Cloud)를 개시하면서 대중들에게 널리 알려지기 시작하여 오늘날에는 모든 사항을 기록하는 데 전문적인 가상화 관리 소프트웨어를 필요로 하는 여러 기업에서 일반적으로 가상화를 활용하고 있다.<ref> 다이어리, 〈[http://blog.naver.com/PostView.nhn?blogId=shakey7&logNo=221599135601&parentCategoryNo=&categoryNo=22&viewDate=&isShowPopularPosts=true&from=search 클라우드 가상화 기술 정리 1 (서버 / 운영체제 OS / 전가상화 / 반가상화 / 하이퍼바이저 / VM웨어 / 시트릭스 / 마이크로소프트 / 레드햇 / 리눅스 / 인텔)]〉, 《네이버 블로그》, 2019-07-29</ref>
 +
 
 +
==원리==
 +
하이퍼바이저라는 소프트웨어가 물리 리소스를 필요로 하는 가상 환경으로부터 물리 리소스를 분리한다. 하이퍼바이저는 노트북 등의 운영 체제에 배포하거나 서버 등의 하드웨어에 직접 설치할 수 있으며 대부분의 기업들은 이러한 방식으로 가상화한다. 하이퍼바이저가 물리 리소스를 분할하여 가상 환경에서 사용할 수 있도록 한다. 리소스는 필요에 따라 물리 환경에서 여러 가상 환경으로 데이터베이스 분할(Partitioning) 된다. 사용자가 가상 환경과 상호 작용하고 가상 환경 내에서 계산을 실행한다. 가상머신은 단일 데이터 파일과 같이 기능하다. 디지털 파일과 같이 한 컴퓨터에서 다른 컴퓨터로 이동할 수 있고 어느 쪽 컴퓨터에서든 열어 동일하게 작동할 수 있다. 가상 환경이 실행 중이고 사용자 또는 프로그램이 물리 환경에서 추가 리소스를 요구하는 명령을 내리면 하이퍼바이저가 그 요청을 물리 시스템에 전달하고 변경사항을 캐시한다. 이 모든 작업은 네이티브 속도에 가깝게 이루어진다.
  
 
==특징==
 
==특징==
 +
===효율성===
 +
가상화는 하나의 머신이 여러 개의 가상머신에 서비스를 제공할 수 있다. 따라서 필요한 [[서버]] 수도 줄어들 뿐만 아니라 보유하고 있는 서버를 최대한 활용할 수 있다. 이러한 효율성으로 낮은 탄소 발자국이라는 환경적 장점은 물론 하드웨어, 냉각 및 유지보수 비용 절감 효과를 얻을 수 있다. 또한 가상화를 통해 여러 벤더에 분리된 서버를 요구하지 않고 단일 머신에서 여러 유형의 앱, [[데스크톱]] 및 [[운영체제]]를 운영할 수 있다. 따라서 특정 벤더에 의존하지 않아도 되며 IT 리소스의 관리에 드는 시간을 훨씬 줄일 수 있게 되어 IT 팀의 생산성을 높일 수 있다.
 +
 +
===안정성===
 +
가상화 기술을 사용하면 기존 서버의 가상머신 [[스냅샷]]을 사용하여 [[데이터]]를 손쉽게 [[백업]]하고 [[복구]]할 수 있다. 모든 데이터를 최신 상태로 유지하기 위해 이 백업 프로세스를 자동화하는 것도 간단하다. 긴급 상황이 발생하여 백업된 가상머신에서 복원해야 할 경우, 이 가상머신을 몇 분 만에 새 위치로 손쉽게 마이그레이션할 수 있다. 이로 인해 재해 또는 손실 복구가 용이해지기 때문에 안정성과 [[비즈니스 연속성]]이 향상된다.
 +
 +
===비즈니스 및 전략===
 +
가상화 소프트웨어를 사용하면 조직이 리소스를 테스트하고 할당하는 방법이 더욱 유연해진다. 가상머신을 백업하고 복원하기가 너무 쉽기 때문에 IT 팀은 새로운 기술을 손쉽게 테스트하고 실험할 수 있다. 또한 가상화를 사용하면 가상머신 리소스를 조직의 공유된 풀 안으로 할당하여 클라우드 전략을 만들 수 있다. 이 클라우드 기반 인프라는 IT 팀이 누가 어떤 리소스를 어떤 기기에서 액세스하는지 제어할 수 있게 하여, 보안과 유연성을 개선한다.<ref>가상화란? 시트릭스 - https://www.citrix.com/ko-kr/glossary/what-is-virtualization.html</ref>
 +
 +
===장단점===
 +
; 장점
 +
* 하드웨어 비용과 공간이 절감된다. 기존 환경에서는 하드웨어 비용 + 운영체제 및 [[백신]], 애플리케이션 비용이 들었다면, 가상화 환경에서는 하드웨어 비용을 제외한 나머지 비용 즉, 운영체제 및 백신, 애플리케이션 비용만 들게 된다.
 +
* 가동시간 및 가용성 향상을 들 수 있다. 가상화 환경에서는 모든 가상서버에 대해 이중화가 가능하지만 기존 환경에서는 이중화 시 별도 장비가 추가 구성되어야 한다.
 +
* 서버 및 응용 프로그램 관리 간소화할 수 있다. 관리자는 가상화 서버의 리소스를 [[대시보드]]를 통해 손쉽게 확인할 수 있다. [[CPU]], [[메모리]], [[스토리지]] 사용 가능 용량, 가상머신 등을 한 눈에 쉽게 파악할 수 있어 기존의 사용 서버들을 일일이 확인하는 것보다 쉽게 관리할 수 있게 되었다.
 +
* 재해 복구 및 비즈니스 연속성 구현이다. 만약 서버를 운영하다 심각한 장애가 발생하면 백업 파일이 있는 경우에는 신규 장비에 백업 파일로 복원을 하면 되긴 하지만, 신규 장비가 들어오는 시간, 운영체제 설치 시간 등이 소요된다. 가상화 환경에서는 가상서버 이미지 백업이 되고 있는 상황이라면, 클릭 몇 번으로 백업이 된 시점으로 복원이 가능하다. 또한 가상화 서버가 장애인 상황이면 가동되고 있는 나머지 서버에서 서비스를 하고 장애 서버 조치를 한 뒤 정상화 시키면 서비스 중단 없이 [[장애 (정보통신)|장애]] 조치가 가능하다.<ref> 사용자 최종변기, 〈[https://net-gate.tistory.com/24 가상화 A to Z : 가상화에 대하여 알아봅시다!]〉, 《넷게이트》, 2019-04-05</ref>
 +
 +
; 단점
 +
* 가상화로 구축하여 사용하려면 1대 혹은 2대의 서버는 5대의 서버 성능을 필요로 하기 때문에, 고사양의 서버로 구성될 수 밖에 없다. 5대의 서버를 동시에 구축하여 서버 교체 시기가 도래하였다면 다행이지만 보통 필요 시 증설하는 경우가 대부분이다. 따라서 초기비용이 크게 발생하게 된다.
 +
* 관리해야 하는 라이선스가 증가할 수 있다. 보통 기존의 온프레미스 환경에서 가상화 환경으로 이전할 때에는 노후화 된 하드웨어를 개비하기 위함도 있지만 EOS된 운영체제를 업그레이드 하기 위함도 있다. 새로운 운영체제 라이선스가 들어가기 때문에 관리해야 하는 라이선스가 늘어나 관리가 어렵게 된다.
 +
 +
===기대효과===
 +
* 자원 활용률 증대 : 물리적 자원들과 자원 풀에 대한 동적인 공유를 가능하게 해주며, 이를 통해 더 높은 자원의 활용률을 얻을 수 있다. 특히 평균 워크로드가 전체 자원의 워크로드 보다 훨씬 적은 가변적인 워크로드 상황에서는 더 높은 효과를 얻을 수 있다.
 +
* 관리비용 절감 : 관리해야 하는 물리적 자원들의 대수를 줄여줌으로써 관리 인력의 생산성을 향상시킬 수 있다. 또한 물리적 자원들의 복잡성을 숨겨주고, 자동화, 정보화 및 중앙화를 통해 공통된 관리 작업을 단순화시키고, 워크로드 관리의 자동화를 가능하게 해준다. 가상화는 이기종 플랫폼 환경에서도 관리 도구를 공통으로 사용할 수 있게 해준다.
 +
* 사용 유연성 : 빠르게 변화하는 비즈니스 니즈를 만족시키기 위하여 자원들이 동적으로 재구성되고 활용 될 수 있도록 해준다.
 +
* 보안 향상 : 단순한 공유 메커니즘에서는 불가능한 분리와 격리를 가능하게 해서 데이터와 서비스에 대하여 통제되고 안전한 액세스를 제공한다.
 +
* 가용성 향상 : 사용자 레벨에 아무런 영향을 주지 않고도 물리적자원이 제거되거나 업그레이드 또는 변경 될 수 있도록 지원해 준다.
 +
* 확장성 증가 : 자원 분할 및 단일화(aggregation)는 가상화된 자원이 개별 물리적 자원보다 더 작아지거나 혹은 더 커질 수 있게 해준다. 이를 통해 물리적 자원의 구성 변경이 없어도 필요한 만큼의 적정한 확장성을 얻을 수 있다.
 +
* 상호운용성 및 투자 보호 : 가상화 자원들은 기존 물리적 자원들간에서는 불가능한 [[인터페이스]]와 [[프로토콜]] 레벨에서의 호환성을 제공해 준다.
 +
* 프로비저닝(provisioning) 향상 : 가상화는 자원의 할당을 개별 물리적 단위보다도 더 세밀한 조각 단위에서 가능하게 해준다.<ref name="이베"></ref>
 +
 +
==유형==
 +
===서버 가상화===
 +
[[서버 가상화]](Server virtualization)에서 서버는 대량의 특정 태스크를 매우 효과적으로 처리해 노트북 및 데스크톱 등의 다른 컴퓨터가 다양한 태스크를 처리할 수 있도록 하는 컴퓨터다. 서버를 가상화하면 서버가 이러한 특정 기능을 더 많이 수행할 수 있으며 서버 파티셔닝을 통해 구성 요소로 여러 기능을 지원할 수 있다. 물리 서버는 호스트(host)라고 하며, 가상 서버는 게스트(guest)라 한다. 가상 서버는 마치 물리 서버처럼 동작하는데, 각각의 시스템은 물리 서버의 자원을 가상 서버에 할당해 주는 접근 방식에 있어서 그 차이가 있다. 물리 서버를 가상화 환경으로 제공하기 위해, 한 대의 서버에서 여러 가상머신 및 운영체제를 동시에 실행하기위한 논리적인 플랫폼, 즉 서버 가상화를 실현하는 플랫폼을 ‘하이퍼바이저(Hypervisor)’라고 한다.<ref> 최영락, 〈[http://tech.kobeta.com/wp-content/uploads/2016/10/23212.pdf 가상화와 컴퓨터 네트워크의 활용 1 : 가상화와 데이터센터]〉, 《한국방송기술인연합회》</ref> 가상 서버를 생성하는 데는 세 가지 방식이 있다. {{자세히|서버 가상화}}
 +
 +
; 전가상화
 +
[[전가상화]](Full-Virtualization)는 [[하이퍼바이저]]라고 하는 특수한 소프트웨어를 사용한다. 하이퍼바이저는 물리 서버의 CPU와 디스크에 직접 상호작용을 하며, 가상 서버의 운영체제를 위한 플랫폼 역할을 한다. 즉 운영체제 위에 하이퍼바이저가 설치되고, 그 위에서 가상 서버 및 운영체제가 실행되는 방식이다. 하이퍼바이저는 각각의 가상 서버들을 완전히 독립적으로 운용하도록 한다. 각각의 게스트 서버는 자체 운영체제에서 운영되기 때문에, [[리눅스]] 기반 게스트와 [[윈도우]] 기반 게스트를 동시에 운용할 수도 있다. 하이퍼바이저는 물리 서버의 자원을 모니터링하여, 가상 서버에서 애플리케이션이 구동될 때, 물리 서버의 자원을 적절한 가상 서버에 할당해 준다. 물론 하이퍼바이저 자체 구동을 위해서도 처리능력 등의 리소스를 필요로 하기 때문에, 하이퍼바이저의 리소스 사용량은 전체 서버 퍼포먼스와 애플리케이션 구동속도에 영향을 줄 수 있다. 전가상화는 컴퓨팅 시스템의 하드웨어 리소스를 완전하게 가상화 하는 방식으로 그 위에서 동작하게 될 게스트 운영체제의 수정 없이 구동이 가능하다. [[마이크로소프트]] [[윈도우]]에서 리눅스 까지 다양한 운영체제를 사용할 수 있기 때문에 적용이 쉬운 편이다. 컴퓨팅환경을 기존의 운영체제 위에서 에뮬레이션 하는 형식으로 지원하기에 호스트(Host)형 가상화 라고도 한다. 다만 CPU의 가상화 지원 기술(VT, Virtualization Technology)과 같은 하드웨어 기능을 일부 지원받기 때문에 모든 기능을 소프트웨어적으로 구동하는 에뮬레이션과는 차이가 있다. 하이퍼바이저를 직접 실행하기에 편리한 인터페이스 화면을 제공하지만, 반면 이에 따른 성능 감소가 생긴다는 단점이 있다.<ref> 안성원, 〈[https://spri.kr/files/1544421791_k7LnlkLc9mgJgots3jU7H3BR_0.pdf 클라우드 가상화 기술의 변화 - 컨테이너 기반의 클라우드 가상화와 DevOps]〉, 《소프트웨어정책연구소》, 2018-12-10</ref>
 +
 +
; 반가상화
 +
[[반가상화]](Para-Virtualization)는 전가상화와는 달리, 게스트 서버 간의 독립성 없이 상호작용한다. 물리 서버 위에 하이퍼바이저가 직접 설치되고, 그 위에서 가상 서버 및 운영체제가 실행되는 방식이다. 반가상화 하이퍼바이저는 게스트 운영체제를 관리하기 위해 필요한 자원(처리능력)이 상대적으로 적게 든다. 이는 각각의 운영체제가 동일한 물리 서버에서 운영되는 다른 운영체제에서 필요로 하는 자원을 이미 인지하고 있으며, 이들 시스템은 마치 하나처럼 동작하게 된다.반가상화는 하드웨어를 완전히 가상화하지 않는 방식이다. 하이퍼바이저가 하드웨어 위에서 직접 실행되기 때문에 네이티브(Native, Bare-metal) 가상화 라고도 한다. 물리 서버의 성능을 최대한 발휘하면서 가상 서버의 성능을 제공하기에 성능이 많이 감소되지 않으면서 가상 서버를 제공하지만, 물리 서버 바로 위에 설치된 하이퍼바이저를 직접적으로 관리하기에는 어려움이 있다. 반가상화는 하드웨어에 대한 제어권을 하이퍼바이저가 가지고 있기 때문에, 하드웨어와의 I/O 처리에 있어서 전가상화보다 직접적인 루틴을 사용한다.<ref> 주창오, 〈[https://itxcloud.tistory.com/entry/%EA%B0%80%EC%83%81%ED%99%94Virtualization-%EC%B4%9D%EC%A0%95%EB%A6%AC-2-%EC%84%9C%EB%B2%84-%EA%B0%80%EC%83%81%ED%99%94-Server-Virtualization-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80 가상화(Virtualization) 총정리 서버 가상화(Server Virtualization)란 무엇인가?]〉, 《티스토리》, 2012-05-22</ref>
 +
 +
; 운영체제 수준 가상화
 +
[[운영체제 수준 가상화]](operating-system-level virtualization)는 운영체제의 중앙 태스크 관리자인 [[커널]]에서 이루어진다. 이렇게 하면 리눅스 환경과 윈도우 환경을 함께 실행할 수 있다. 또한 기업은 가상 운영 체제를 컴퓨터에 푸시해 여러가지 이점을 얻을 수 있다. 컴퓨터에 고도의 OOTB(Out Of The Box) 기능이 필요하지 않으므로 하드웨어에 많은 비용이 소모되지 않는다. 모든 가상 인스턴스를 모니터링하고 격리할 수 있으므로 보안이 강화된다. 소프트웨어 업데이트와 같은 IT 서비스에 소요되는 시간이 절약된다. 운영 체제 수준 가상화는 커널이 여러 개의 격리된 사용자 공간 인스턴스의 존재를 허용하는 운영 체제 패러다임을 말한다. 컨테이너(LXC, 솔라리스 컨테이너, 도커), 솔라리스 컨테이너 영역, 가상 개인 서버(오픈VZ), 파티션, 가상 환경(VEs), 가상 커널(드래곤 플라이 BSD) 또는 감옥(FreeBSD 감옥 또는 chroot 감옥) 등 이것을 실행 하는 프로그램의 관점에서 실제 컴퓨터 처럼 보일 수 있다. 일반 운영체제에서 실행되는 컴퓨터 프로그램은 해당 컴퓨터의 모든 리소스를 볼 수 있다. 그러나 컨테이너 내부에서 실행되는 프로그램은 컨테이너에 할당된 컨테이너의 내용 및 장치만 볼 수 있다. 유닉스와 같은 운영 체제에서 이 기능은 표준 chroot 메커니즘의 고급 구현으로 볼 수 있으며, 이는 현재 실행 중인 프로세스및 해당 하위에 대한 명백한 루트 폴더를 변경한다. 커널은 격리 메커니즘 외에도 한 컨테이너 활동이 다른 컨테이너에 미치는 영향을 제한하는 리소스 관리 기능을 제공하는 경우가 많다.<ref>OS-level virtualization 위키백과 - https://en.wikipedia.org/wiki/OS-level_virtualization</ref>
 +
 +
===스토리지 가상화===
 +
[[스토리지 가상화]](Storage virtualization)는 세 가지 방식으로 구성된다. 첫 번째로 호스트 기반(Host-based) 방식은 물리 드라이버는 기존의 디바이스 드라이버가 통제하는 반면, 디바이스 드라이버 위의 소프트웨어층은 I/O 요청들을 가로체서, [[메타데이터]]를 검색한 후, I/O를 리다이렉트한다. 두 번째로 스토리지 디바이스 기반(Storage-device-based) 방식은 물리적인 스토리지 장치를 [[레이드 (서버)|레이드]] [[컨트롤러]] 등을 이용하여 스토리지 어레이로 구성하는 방식이다. 스토리지 주 컨트롤러는 풀링과 메타데이터를 관리함으로써, 다른 스토리지 컨트롤러를 직접 연결할 수 있도록 한다. 세 번째로 네트워크 기반(Network-based) 방식은 스토리지 가상화는 네트워크 기반 디바이스로서 인식되며 일반적으로 [[샌]](SAN)으로 연결된 [[파이버채널]](Fibre Channel) 네트워크를 사용한다. {{자세히|스토리지 가상화}}
 +
 +
===네트워크 가상화===
 +
[[네트워크 가상화]](Network virtualization)는 하나의 물리 네트워크 위에서 여러 가상 네트워크를 생성하고, 각각의 가상 네트워크를 마치 실제 물리 네트워크와 같이 사용하는 기술이다. 컴퓨팅에서 네트워크 가상화 또는 네트워크 가상화는 하드웨어 및 소프트웨어 네트워크 리소스및 네트워크 기능을 단일 소프트웨어 기반 관리 엔터티인 가상 네트워크로 결합하는 프로세스다. 네트워크 가상화에는 리소스 가상화와 결합되는 플랫폼 가상화가 포함된다.네트워크 가상화는 외부 가상화로 분류되어 많은 네트워크나 네트워크 부분을 가상 장치로 결합하거나 내부 가상화를 결합하여 단일 네트워크 서버의 소프트웨어 컨테이너에 네트워크와 같은 기능을 제공한다.<ref>Network virtualization 위키백과 - https://en.wikipedia.org/wiki/Network_virtualization</ref>
 +
 +
한편 네트워크 기능 가상화(Network Functions Virtualization, NFV)는 디렉터리 서비스, 파일 공유, 아이피 설정과 같은 네트워크의 주요 기능을 분리하여 이러한 기능을 환경에 배포한다. 소프트웨어 기능이 속해 있는 물리 머신으로부터 기능을 분리하면 특정 기능을 새 네트워크에 함께 패키징하고 이를 환경에 할당할 수 있다. 네트워크를 가상화하면 [[스위치]], [[라우터]], [[서버]], [[케이블]], [[허브]] 등 여러 개의 독립적인 네트워크를 생성하는 데 필요하며 특히 통신 산업에서 일반적으로 사용되는 물리 구성 요소의 수가 줄어든다.<ref name="레드"></ref> {{자세히|네트워크 가상화}}
 +
 +
===데이터 가상화===
 +
[[데이터 가상화]](Data Virtualization)는 여러 곳에 분산되어 있는 데이터를 단일 소스로 통합할 수 있다. 데이터 가상화를 통해 기업은 데이터를 동적 공급 요소로 다루어 여러 소스에서 데이터를 동시에 가져오고 새로운 데이터 소스를 손쉽게 통합하며 사용자의 요구에 따라 데이터를 변환할 수 있는 처리 역량을 확보할 수 있다. 데이터 가상화 툴은 여러 데이터 소스를 대표하여 이와 같이 다양한 데이터 소스가 단일 소스로 처리될 수 있도록 함으로써 필요한 데이터를 필요한 형식으로 적시에 애플리케이션 또는 사용자에게 제공한다. {{자세히|데이터 가상화}}
 +
 +
===데스크톱 가상화===
 +
[[데스크톱 가상화]](Virtual Desktop Infrastructure, VDI)는 조직에 비용을 절감하고 최종 사용자가 언제 어디서나 모든 기기에서 업무를 수행할 수 있도록 지원하면서 데스크톱 및 애플리케이션을 배포, 보호 및 관리할 수 있는 간소화된 접근 방식을 제공하는 소프트웨어 기술이다. 단일 머신에서 여러 운영 체제를 배포할 수 있는 운영 체제 가상화와 혼동하기 쉬우며, 시뮬레이션된 데스크톱 환경이 중앙 관리자 또는 자동화된 관리 툴을 통해 수백 개의 물리 머신에 동시 배포되도록 지원한다. 각 머신에서 물리적으로 설치, 설정, 업데이트되는 기존의 데스크톱 환경과 달리 데스크톱 가상화는 관리자가 모든 가상 데스크톱에서 설정, 업데이트, 보안 점검을 대규모로 수행할 수 있다. 제2의 PC 혁명이라 불리는 가상 데스크톱 인프라 시스템 기술로 가상 데스크톱 생성 블록 및 연결 블록, 자원 관련 블록, 서비스형 데스크톱(DaaS) 클라이언트 플랫폼 소프트웨어 블록 등으로 구분돼 각 블록은 독립적으로 수행하는 형태로 동작한다. 즉, 사무실 책상에서 PC 본체가 사라지는 것이다. 사용자는 PC나 노트북을 통해 작업하지만 실제 컴퓨팅 환경은 [[데이터센터]]에 구축된 서버에서 운영되는 방식이다. 서버를 데이터센터에 두고 필요할 때 로그인해서 사용할 수 있는 PC이다. 동일한 데이터와 애플리케이션을 사용하기 위해 같은 컴퓨터를 들고 다니는 것이 아니라 어떤 컴퓨터나 사용해서 웹을 통해 데스크톱 작업을 연속적으로 수행할 수 있다는 장점을 가지고 있다.<ref>데스크톱 가상화 위키백과 - https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%86%B1_%EA%B0%80%EC%83%81%ED%99%94</ref> {{자세히|데스크톱 가상화}}
  
 +
이 외에도 여러 가상화를 표를 통해 정리하였다.<ref>가상화 지식덤프 - http://www.jidum.com/jidums/view.do?jidumId=425</ref>
  
 +
:{|class=wikitable width=700 style="background-color:#ffffee"
 +
|+가상화 유형 및 기술
 +
!align=center style="background-color:#ffeecc"|구분
 +
!align=center style="background-color:#ffeecc"|유형
 +
!align=center style="background-color:#ffeecc"|가상화 기술
 +
|-
 +
|align=center rowspan=3|인프라 자원
 +
|align=center|서버가상화
 +
|align=center|파티셔닝, 가상I/O, 하이퍼바이저
 +
|-
 +
|align=center|스토리지가상화
 +
|align=center|블록 가살화, 가상 테이프라이브러리
 +
|-
 +
|align=center|네트워크 가상화
 +
|align=center|L2~L7 활용, VPNs, VLANs
 +
|-
 +
|align=center rowspan=2|정보
 +
|align=center|파일 가상화
 +
|align=center|클러스터 파일, 그리드 파일 시스템
 +
|-
 +
|align=center|데이터 가상화
 +
|align=center|데이터 연합 및 콘솔리데이션
 +
|-
 +
|align=center rowspan=3|워크로드
 +
|align=center|트랜잭션 가상화
 +
|align=center|JVM 로드 밸런싱
 +
|-
 +
|align=center|테스크 가상화
 +
|align=center|컴퓨팅 그리드
 +
|-
 +
|align=center|프레젠테이션 가상화
 +
|align=center|서비스 기반 컴퓨팅(SBC)
 +
|-
 +
|align=center rowspan=5|운영환경
 +
|align=center|전사적 워크로드
 +
|align=center|Enterprise Workload Manager
 +
|-
 +
|align=center|전력/냉각 효율화
 +
|align=center|Hibernation, Partition Mobility
 +
|-
 +
|align=center|유틸리티 서비스
 +
|align=center|Metering, Provisioning
 +
|-
 +
|align=center|백업 가상화
 +
|align=center|VTL 백업, 테이프 라이브러리 기반 백업
 +
|-
 +
|align=center|클라이언트 데스크톱 가상화
 +
|align=center|PC가상화, 서버기반 컴퓨팅(SBC),<br>VDI(Virtual Desktop Infrastructure)
 +
|}
  
 +
==기능==
 +
===공유===
 +
공유는 가장 대표적인 가상화의 기능으로서, 다수의 많은 가상 자원들이 하나의 동일한 물리적 자원과 연결되어 있거나 가리키는 것을 말한다. 물리적 자원의 일부분을 가상화된 자원마다 할당하거나 혹은 물리적 자원에 대하여 타임 쉐어링 기법으로 공유하는 방식이 주로 사용된다. 이러한 형태의 가상화는 가상화 자원을 사용하는 여러 사용자들이 물리적 자원을 공유하게 해주며, 이때 각 사용자는 마치 자기가 해당 자원을 혼자서만 사용하는 것과 같은 착각을 하게 된다. 자원의 공유를 의미한다. 물리적인 자원(CPU, 메모리 등)을 논리적으로 나누어 서비스별로 사용하는 것이다. 예를 들어, 하나의 서버에 3~4명의 사용자가 독립적인 자원을 할당 받아 사용할 수 있다는 말이다. 대표적 사례로는 서버 내의 논리적 분할, 가상머신(VM), 가상 디스크, 가상 LAN(VLANs)을 들 수 있다.
  
 +
===단일화===
 +
단일화는 공유와 정반대 개념이다. 여러대의 물리적인 자원들 중 여유 자원을 논리적으로 하나의 자원으로 묶어 사용하는 것이다. 예를 들어 내컴퓨터의 A, B, C 물리적 하드디스크의 여유 공간 10GB, 30GB, 50GB의 공간을 하나로 묶어서 사용하게 하는 것이다. 공유의 반대되는 가상화 개념으로서, 가상 자원은 여러 개의 물리적 자원들에 걸쳐서 만들어질 수 있으며, 이를 통해 외견상 전체 용량을 증가시키고 전체적인 관점에서 활용과 관리를 단순화시켜 줄 수 있다. 예를 들어, 스토리지 가상화는 여러 개의 물리적 디스크 시스템에 남아있는 각각의 유휴 디스크들을 하나의 가상화된 디스크로 만들어 주는데, 이때 가상화된 디스크는 가상 디스크를 만드는데 사용 되어진 어떤 물리적 디스크보다도 더 커질 수 있다.
  
 +
===에뮬레이션===
 +
에뮬레이션 기능은 에뮬레이터를 말한다. 즉 내컴퓨터의 운영체제와 다른 운영체제를 구동하여 다른 운영체제에서만 동작하는 소프트웨어 및 애플리케이션을 동작하는 것이다. 물리적 자원 자체에는 원래부터 존재하지 않았지만 가상 자원에는 어떤 기능들이나 특성들을 마치 처음부터 존재했던 것처럼 가질 수 있다. 예를 들어 IP 네트워크 상에서 가상 [[SCSI]] 버스를 구현하는 [[iSCSI]] 또는 물리적 디스크 스토리지상에 구현된 가상 테이프 스토리지 등이 여기에 속한다. 또 다른 형태의 에뮬레이션에는 여러 개의 제각기 다른 물리적 자원들을 표준 구성요소 형태인 것처럼 가상 자원으로 표시하는 것이 있다. 여러 종류의 [[이더넷]](Ethernet) 인터페이스를 마치 하나의 특정한 표준 이더넷 인터페이스 모델로 나타내는 것이 그 예이다.
  
 +
===절연===
 +
가상화된 자원들과 물리적 자원들간의 상호 맵핑은 가상화 자원들 또는 가상화 자원들을 사용하는 사용자들에게 아무런 영향을 미치지 않으면서 물리적 자원들이 교체될 수 있도록 해준다. 이것은 투명한 변경(transparent change)이라고 불리우며, 투명한 변경은 가상화에 있어서 하나의 부가적인 혜택이기도 하지만, 때때로 그 자체가 하나의 기술로서 중요한 의미를 갖기도 한다. 어떤 가상 프로세서가 결함이 발생하였거나 혹은 곧 발생하려는 물리적 프로세서에서 다른 정상적인 물리적 프로세서로 자동적으로 옮겨간다거나, 디스크의 결함을 사용자들로부터 숨기기 위해 다중디스크(Redundant Disk)를 사용하는 레이드 스토리지 컨트롤러, [[핫스왑]](Hot swap) 등이 대표적인 사례이다.<ref name="이베"> 이베스트투자증권, 〈[https://m.blog.naver.com/PostView.nhn?blogId=dream_asset&logNo=220308703763&proxyReferer=https:%2F%2Fwww.google.co.kr%2F 가상화, 어디까지 알고 있니?]〉, 《네이버 블로그》, 2015-03-24</ref>
  
 +
===가상화 관리===
 +
가상화 환경의 중요한 측면은 동적이고 복잡한 IT 인프라의 관리 및 유지를 단순화 해야 한다는 점이다. 소프트웨어 툴을 통해 구현된 패턴과 기술은 다음과 같은 관리 작업들을 지원한다.
  
 +
* IT 인프라에 있는 모든 리소스에 대한 관리상의 액세스에 단일의 보안 인터페이스를 제공한다.
 +
* 관리자는 모든 리소스에 대한 진단을 내릴 수 있다.
 +
* 모든 리소스에 대해 설정 및 변경 관리를 수행한다.
 +
* 가용 리소스의 재고를 발견 관리한다.
 +
* 리소스를 감시하고 일반적인 건강 상태를 기록한다.
 +
* 조건이 어떤 임계치에 도달하면 액션을 수행한다. 액션 중에는 관리자에게 공지하여 응답에 반응하여 조건을 수정하도록 하는 것도 포함된다.
 +
* 리소스 사용, 가용성, 서비스 레벨 요구 사항에 기반하여 리소스를 제공 또는 제공하지 않는다. 프로비저닝은 확립된 정책에 따라 수동, 반자동, 자동으로 수행될 수 있다.
 +
* 사용 정보와 측정 정보를 획득 및 관리하고 리소스 소비에 대한 청구 같은 알맞은 리포트를 제공한다.
 +
* 엔드 유저나 애플리케이션 보안을 보충하는 보안 메커니즘을 제공한다.
 +
* 엔드 유저와 애플리케이션 SLA에 부합하기 위해 모든 리소스에 걸쳐 퍼포먼스 정보를 기록한다.
  
 +
==구현 기술==
 +
; 한 가지 리소스에 대한 여러 논리적 구현
 +
한 가지 리소스에 대한 여러 논리적 구현은 가장 일반적으로 사용되는 가상화 패턴 중 하나이다. 하나의 물리적 리소스와 이것의 사용자에 대한 한 개 이상의 논리적 구현으로 구성되어 있다. 소비자는 가상화 된 리소스와 인터페이싱 한다. 다른 소비자와 리소스를 공유하고 있다는 것을 모른 채 한 명의 소비자인 것처럼 말이다. 가상머신들은 패턴의 예제이다. 하드웨어 물리적 파티션과 논리적 파티션(IBM 시스템 p·z, 시스템i 서버 또는 브이엠웨어, 마이크로소프트 가상 서버, 젠 같은 소프트웨어 제품들)은 서버 가상화를 구현한다. [[데이터베이스]] 뷰의 사용은 데이터를 분리하고 소비자는 역할과 권한에 따라 액세스 한다. 모든 소비자가 같은 데이터베이스에 액세스 하더라도 말이다. 또한 그리드는 가상화를 사용하여 네트워크를 통해 데이터를 관리하고 소비자에 대한 한 개의 시스템으로서 이를 논리적으로 표현한다.
  
 +
; 다중 리소스에 대한 하나의 논리적 구현
 +
다중 리소스에 대한 하나의 논리적 구현의 경우, 합체된 리소스들로 구성되어 하나의 인터페이스를 제공하는 하나의 논리적 구현으로서 나타난다. 하나의 보다 강력한 또는 기능적으로 가상화된 리소스들을 구현할 때 편리한 패턴이다. 스토리지 가상화는 이 패턴의 예이다. IBM의 샌 볼륨 컨트롤러(SAN Volume Controller)는 여러 스토리지 볼륨들을 결합하고 이들을 하나의 큰 스토리지 장치로 구현할 수 있다. 소비자는 데이터가 여러 디스크에 걸쳐 분포되어 있다는 사실을 모른다. 서버의 경우 [[클러스터링]] 기술은 소비자가 하나의 시스템인 헤드 노드와 상호작용 하고 있다는 착각을 하게한다. 실제로 클러스터는 많은 프로세서와 노드들을 포함하고 있다. 바로 이것이 그리드 컴퓨팅이 수행하는 것이다. 다양한 여러 리소스들이 간소화된 사용자 인터페이스(사용자 포탈 또는 애플리케이션용 표준 인터페이스)를 통해 구현된다. 전산 관점에서 볼 때 그리드는 작업 요청 소스를 제공하고, 결과를 리턴하는 등의 워크로드 가상화를 제공한다.
  
 +
; 멀티 리소스들 간 하나의 논리적 구현
 +
멀티 리소스들 간 하나의 논리적 구현의 경우, 많은 가용 리소스들 중 하나로 구현된 가상화된 리소스로 구성된다. 가상화된 리소스는 리소스 활용, 응답 시간, 접근성 같은 특정 기준에 근거하여 물리적 리소스 구현들 중 하나를 선택한다. 이들은 매우 비슷해 보이지만 이 패턴과 이전 패턴들 간에는 미묘한 차이가 있다. 우선, 각각의 물리적 리소스는 완벽한 복제고 논리적 구현으로 모아지지 않는다. 둘째, 각 물리적 리소스는 이전 패턴에서 제공된 부분적인 기능 보다는 논리적 구현에 필요한 전체 기능을 제공한다. 이 패턴의 일반적인 예로는 워크로드 밸런싱을 위해 애플리케이션 컨테이너를 사용하는 경우를 들 수 있다. 요청 또는 [[트랜잭션]]을 애플리케이션이나 서비스에 제출할 때 소비자는 여러 컨테이너들 중 하나에서 실행되는 애플리케이션의 어떤 카피가 요청과 트랜잭션을 제공하는지 신경 쓰지 않는다. 소비자는 요청 또는 트랜잭션이 핸들 되기만을 원한다. 구체적인 예로 IBM의 애플리케이션 개발 및 배치 지원 플랫폼인 웹스피어 애플리케이션 서버(WAS, WebSphere Application Server)와 가상화 제품인 웹스피어 익스텐디드 디플로이먼트(WebSphere Extended Deployment)를 들 수 있다. 또 다른 예제로는 파일 가상화이다. 데이터의 여러 카피들은 중복 또는 퍼포먼스를 위해 관리된다. 소비자가 파일에 액세스 할 때 IBM의 고성능 대용량 파일공유시스템(GPFS, General Parallel File System)과 같은 파일시스템은 여러 카피의 파일들 중 하나를 배치한다. 소비자는 사용되는 파일의 복제 위치를 몰라도 된다.
  
 +
; 싱글 리소스의 싱글 논리적 구현
 +
싱글 리소스의 싱글 논리적 구현은 다른 리소스였던 것 처럼 하나의 리소스를 논리적으로 구현하는데 사용되는 간단한 패턴이다. 엔터프라이즈 백엔드 애플리케이션에 웹 기능을 부여하기가 일반적인 예다. 이 경우, 백엔드 애플리케이션을 수정하는 데신 웹 인터페이스를 나타내기 위해 퍼사드(facade)가 만들어진다. 이것은 애플리케이션 인터페이스로 매핑된다. 이 패턴은 백엔드 애플리케이션을 수정하지 않고도 기본 기능들을 재사용 할 수 있다. 같은 패턴이 수정될 수 없는 컴포넌트에서 서비스를 구현하는데 사용될 수 있다.
  
 +
; 합성 또는 레이어드 가상화
 +
지금까지 설명했던 한 개 이상의 패턴들과 물리적 리소스들을 정비하여 풍부한 기능을 제공한다. 정보 가상화가 좋은 예다. 기반 기능을 제공하여 소스에 대한 글로벌 네이밍과 레퍼런스, 정보를 처리하고 구체화 하는 방법에 대한 정보를 포함하고 있는 메타데이터, 정보를 처리하는 연산을 관리한다. 예를 들어, IBM의 웹스피어 정보 서버(WebSphere Information Server)는 이종의 소스들에 대한 광역 연결과 통합 메타데이터를 사용하여 정보를 통합, 강화, 전달하는데 필요한 기능들을 제공한다. 오픈그리드 서비스 구조(OGSA, Open Grid Services Architecture) 또는 그리드 컴퓨팅 컴포넌트(Grid Computing Components)와 같은 아키텍처나 프레임워크들은 가상화의 진정한 합성 또는 레이어이다. 이 프레임웍의 초기 레이어는 하위 레이어의 추상화이다. 이것은 상위 레이어에게 정의된 인터페이스를 제공한다. 하위 레이어에서 온 리소스들은 결합되어 아키텍처나 프레임워크 스택을 이동할 때 보다 복잡한 기능으로 된다. 예를 들어, 워크로드 가상화와 정보 가상화는 이미 가상화 된 IT 인프라(시스템, 스토리지, 네트워크)에 상위 레벨의 가상화를 제공한다.<ref>가상화: 패턴의 관점에서 본 가상화 한국데이터산업진흥원 - https://kdata.or.kr/info/info_04_view.html?field=&keyword=&type=techreport&page=260&dbnum=127235&mode=detail&type=techreport</ref>
  
 +
==전망==
 +
[[파일:가상화 시장 전망.PNG|썸네일|737픽셀|세계 및 국내의 가상화 보안 시장 규모 전망]]
  
 +
가트너(Gartner)의 시장자료에 따르면, 국내 가상화 소프트웨어 시장은 2011년 873억 원에서 2015년 1016억 원으로 증가하였고, 연평균 0.98%의 성장률을 보이면서, 2020년에는 1067억 원에 달할 전망이다. 세계 가상화 소프트웨어 시장은 2015년 5,195백만 달러에서 연평균 3.06%의 성장률로 2020년에는 6040백만 달러에 달할 전망이다.
  
 +
국내 가상화 보안 시장은 가상화 보안 제품의 비교적 높은 가격과 가상화 보안에 대한 인식 부족으로 인해 낮은 그래프를 보였으나 서버 가상화 시장의 성장과 함께 클라우드 프로젝트의 핵심 요구사항으로 반할 가능성이 높아 향후 그래프가 높아질 것으로 전망하였었다. 오늘날 가상화 시장이 증가 추세를 보이는 이유는 다음과 같다.<ref> 권이남, 〈[https://m.blog.naver.com/PostView.nhn?blogId=gojump0713&logNo=140193504334&proxyReferer=https:%2F%2Fwww.google.co.kr%2F 떠오르는 블루칩 가상화 보안, 국내에서는 외면]〉, 《네이버 블로그》, 2013-07-20</ref>
  
 +
; 모빌리티 수요 증가
 +
스마트폰, 노트북 컴퓨터, 태블릿 등 개인 [[모바일 기기]]를 이용해 기업망에 접속하는 빈도가 늘어나면서 기업용 모빌리티 기술에 대한 수요 또한 급증하고 있는 추세이며, 기존 IT 인프라는 이들 기기를 설정해 관리해야 한다는 압력을 받고 있다. 모바일 데이터가 늘어나면서 여러 서버를 병렬로 처리하고 무리 없이 상호 연결할 필요성이 대두되고 있다.
 +
 +
그리고 이는 네트워크 용량 추가와 보다 정교한 네트워크 솔루션 도입에 대한 수요 증가로 이어지고 있는 실정이다. 통신 사업자와 데이터센터들이 네트워크 용량을 상상할 수 없는 규모로 확장해야 하는 문제에 직면해 있는 가운데, 네트워크 가상화와 소프트웨어 정의 네트워크(SDN, Software Defined Network)이 잠재적인 솔루션으로 자리를 굳혀가고 있다.
 +
 +
; 클라우드 서비스 급증
 +
가상화 환경 확대와 더불어, 기업들은 서로 프라이빗 클라우드와 퍼블릭 클라우드 서비스를 도입하고 있다. 이와 같이 네트워크 자원 공유에 대한 수요가 증가하고 있는 추세이다. 기업들은 온디멘드(on-demand) 기반, 애플리케이션, 기타 IT 자원을 이용할 수 있기를 바라고 있다. 이는 자연적으로 가상 자원 공유 환경으로 이어진다. 네트워크 가상화와 소프트웨어 정의 네트워크는 이런 물리적 네트워킹 요소를 공유가 가능한 가상 자원으로 전환하는 역량을 갖고 있다. 한마디로 데이터센터의 목적에 부합하는 솔루션인 것이다. 클라우드 제공업체들은 보안 수준 개선, 비즈니스 재편, 병합 및 통합 등 각 요건을 고려해, 스토리지, 컴퓨팅, 네트워크 자원 공유에 있어 엄격한 확장요건을 충족해야 한다.
 +
 +
; 트래픽 패턴의 변화
 +
모바일 기기, [[빅데이터]], 동영상 트래픽이 급증하면서 통신 사업자와 클라우드 제공업체에 상당한 수익 창출 기회가 발생하고 있다. 그러나 이런 추세로 기업 데이터센터와 통신 네트워크의 트래픽 패턴이 빠르게 변하고 있다. 대부분 특정 클라이언트와 서버가 통신을 하는 기존 클라이언트-서버와 달리, 오늘날의 새로운 애플리케이션들은 여러 서버와 데이터베이스에 접속해, 과거에는 상상할 수 없었던 트래픽을 다량 유발한다. 즉 기존의 트래픽 패턴이 바뀐 것이다.모바일의 확산도 사용자 주도의 트래픽 패턴에 변화를 가져오고 있다. 여러 모바일 기기를 이용해 수시로 기업 콘텐츠와 애플리케이션을 이용하면서 트래픽이 발생하고 있기 때문이다. 다양한 서비스 공급업체들이 이런 1차적인 여러 도전을 해결하는 데 박차를 가하고 있다. 그러나 네트워크 정체와 트래픽 패턴의 변화라는 공통된 제약은 여전하다. 기업용 데이터센터들은 [[퍼블릭 클라우드]]나 [[프라이빗 클라우드]]로 구성된 하이브리드 컴퓨팅 모델을 고려하고 있다. 이 또한 네트워크 전반에 걸친 트래픽 증가를 유발한다.
 +
 +
; 새로운 네트워크 아키텍처에 대한 수요
 +
모바일 기기, 모바일 콘텐츠 급증, 클라우드 서비스는 서버 가상화를 견인하는 주요 원동력이다. 그리고 이런 네트워킹 환경의 변화는 기존 네트워크 아키텍처를 다시 고려하도록 부추기고 있다. 기존 네트워크 대부분은 위계적 토폴로지를 채택하고 있다. 나무와 같은 구조로설정된 이더넷 스위치 계층이 여럿 존재하는 구조이다. 이런 전통 네트워크 환경은 클라이언트-서버 기반의 컴퓨팅 환경에 맞춰져 있다. 그러나 오늘날 통신 및 클라우드 환경의 역동적이고 가변적인 저장 및 연산 환경에는 적합하지 않아 기존 네트워크 구조는 새로운 세대의 기술로 확장이 어려운 실정이다. <ref> 연승준, 〈[https://ettrends.etri.re.kr/ettrends/141/0905001833/28-3_115-124.pdf 네트워크 가상화 동향분석]〉, 《한국전자통신연구원》, 2013-06</ref>
  
 
{{각주}}
 
{{각주}}
 
  
 
==참고자료==
 
==참고자료==
 
+
* 가상화 네이버 지식백과 - https://terms.naver.com/entry.nhn?docId=842008&cid=42346&categoryId=42346
 +
* 가상화 위키백과 - https://ko.wikipedia.org/wiki/%EA%B0%80%EC%83%81%ED%99%94
 +
* 가상화란 무엇일까요? 레드햇 - https://www.redhat.com/ko/topics/virtualization/what-is-virtualization
 +
* 가상화란? 시트릭스 - https://www.citrix.com/ko-kr/glossary/what-is-virtualization.html
 +
* 데스크톱 가상화 위키백과 - https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%86%B1_%EA%B0%80%EC%83%81%ED%99%94
 +
* OS-level virtualization 위키백과 - https://en.wikipedia.org/wiki/OS-level_virtualization
 +
* Network virtualization 위키백과 - https://en.wikipedia.org/wiki/Network_virtualization
 +
* 가상화 지식덤프 - http://www.jidum.com/jidums/view.do?jidumId=425
 +
* 가상화: 패턴의 관점에서 본 가상화 한국데이터산업진흥원 - https://kdata.or.kr/info/info_04_view.html?field=&keyword=&type=techreport&page=260&dbnum=127235&mode=detail&type=techreport
 +
* 최영락, 〈[http://tech.kobeta.com/wp-content/uploads/2016/10/23212.pdf 가상화와 컴퓨터 네트워크의 활용 1 : 가상화와 데이터센터]〉, 《한국방송기술인연합회》
 +
* 주창오, 〈[https://itxcloud.tistory.com/entry/%EA%B0%80%EC%83%81%ED%99%94Virtualization-%EC%B4%9D%EC%A0%95%EB%A6%AC-2-%EC%84%9C%EB%B2%84-%EA%B0%80%EC%83%81%ED%99%94-Server-Virtualization-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80 가상화(Virtualization) 총정리 서버 가상화(Server Virtualization)란 무엇인가?]〉, 《티스토리》, 2012-05-22
 +
* 연승준, 〈[https://ettrends.etri.re.kr/ettrends/141/0905001833/28-3_115-124.pdf 네트워크 가상화 동향분석]〉, 《한국전자통신연구원》, 2013-06
 +
* 권이남, 〈[https://m.blog.naver.com/PostView.nhn?blogId=gojump0713&logNo=140193504334&proxyReferer=https:%2F%2Fwww.google.co.kr%2F 떠오르는 블루칩 가상화 보안, 국내에서는 외면]〉, 《네이버 블로그》, 2013-07-20
 +
* 이베스트투자증권, 〈[https://m.blog.naver.com/PostView.nhn?blogId=dream_asset&logNo=220308703763&proxyReferer=https:%2F%2Fwww.google.co.kr%2F 가상화, 어디까지 알고 있니?]〉, 《네이버 블로그》, 2015-03-24
 +
* 안성원, 〈[https://spri.kr/files/1544421791_k7LnlkLc9mgJgots3jU7H3BR_0.pdf 클라우드 가상화 기술의 변화 - 컨테이너 기반의 클라우드 가상화와 DevOps]〉, 《소프트웨어정책연구소》, 2018-12-10
 +
* 사용자 최종변기, 〈[https://net-gate.tistory.com/24 가상화 A to Z : 가상화에 대하여 알아봅시다!]〉, 《넷게이트》, 2019-04-05
 +
* 다이어리, 〈[http://blog.naver.com/PostView.nhn?blogId=shakey7&logNo=221599135601&parentCategoryNo=&categoryNo=22&viewDate=&isShowPopularPosts=true&from=search 클라우드 가상화 기술 정리 1 (서버 / 운영체제 OS / 전가상화 / 반가상화 / 하이퍼바이저 / VM웨어 / 시트릭스 / 마이크로소프트 / 레드햇 / 리눅스 / 인텔)]〉, 《네이버 블로그》, 2019-07-29
  
 
==같이 보기==
 
==같이 보기==
 
+
* [[가상]]
 +
* [[가상머신]]
 +
* [[가상현실]]
 +
* [[서버 가상화]]
 +
* [[네트워크 가상화]]
 +
* [[스토리지]]
 +
* [[네트워크]]
  
 
{{하드웨어|검토 필요}}
 
{{하드웨어|검토 필요}}

2023년 2월 12일 (일) 07:43 기준 최신판

가상화(virtualization)는 컴퓨터에서 컴퓨터 리소스의 추상화를 일컫는 광범위한 용어이다. 물리적, 논리적 자원을 추상화시켜 실제와 같은 자원으로 사용 및 관리 가능하도록 하는 기반 환경과 기술을 말한다.

개요[편집]

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

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

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

등장배경[편집]

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

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

1990년대는 대부분의 기업이 물리 서버와 단일 벤더 IT 스택을 사용하고 있었기 때문에 다른 벤더의 하드웨어에서 레거시 애플리케이션을 실행할 수 없었다. 다양한 벤더가 제공하는 저렴한 상용 서버, 운영 체제, 애플리케이션으로 IT 환경을 업데이트하면서 기업은 사용률이 낮은 물리 하드웨어에 종속되었으며 각 서버에서 벤더별 태스크를 1개만 실행할 수 있었다. 가상화는 이러한 문제를 해결할 수 있었다. 이 2가지 문제에 대해 적절한 해결책을 제시하는 가상화를 통해 기업은 서버를 파티셔닝하고 여러 유형 및 버전의 운영체제에서 레거시 애플리케이션을 실행할 수 있게 되었다. 서버를 더 효율적으로 사용하거나 아예 사용하지 않아도 되었으므로 구매, 셋업, 냉각, 유지관리와 관련 된 비용이 줄어들었다. 또한 가상화는 광범위하게 적용할 수 있어 벤더 종속을 줄이고 클라우드 컴퓨팅의 기반을 다지는 데 도움이 되었다. 첫 상용 솔루션은 2001년 발표된 브이엠웨어(VMware)의 x86 컴퓨터에서 사용할 수 있는 솔루션이었고, 2003년에는 시트릭스 시스템즈(Citrix Systems)의 젠(Xen)이라는 병렬 오픈소스 솔루션이 등장했다. 이후 다른 여러 업체에서도 자체 서버 가상화 플랫폼을 개발했고, 업계 전반적으로 가상머신 워크로드의 배포, 이동, 관리 등을 쉽게 해주는 고급 관리, 자동화 및 오케스트레이션 툴이 탄생하게 되었다. 가상화 기술을 활용한 현대적 의미의 ‘클라우드 컴퓨팅’은 1996년 컴팩(Compaq)에서 개념이 등장한 이후, 2006년 구글 내부에서 유휴 서버를 활용하는 방식을 처음 제안했다. 그리고 같은 해 8월 아마존이 EC2(Amazon Elastic Compute Cloud)를 개시하면서 대중들에게 널리 알려지기 시작하여 오늘날에는 모든 사항을 기록하는 데 전문적인 가상화 관리 소프트웨어를 필요로 하는 여러 기업에서 일반적으로 가상화를 활용하고 있다.[4]

원리[편집]

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

특징[편집]

효율성[편집]

가상화는 하나의 머신이 여러 개의 가상머신에 서비스를 제공할 수 있다. 따라서 필요한 서버 수도 줄어들 뿐만 아니라 보유하고 있는 서버를 최대한 활용할 수 있다. 이러한 효율성으로 낮은 탄소 발자국이라는 환경적 장점은 물론 하드웨어, 냉각 및 유지보수 비용 절감 효과를 얻을 수 있다. 또한 가상화를 통해 여러 벤더에 분리된 서버를 요구하지 않고 단일 머신에서 여러 유형의 앱, 데스크톱운영체제를 운영할 수 있다. 따라서 특정 벤더에 의존하지 않아도 되며 IT 리소스의 관리에 드는 시간을 훨씬 줄일 수 있게 되어 IT 팀의 생산성을 높일 수 있다.

안정성[편집]

가상화 기술을 사용하면 기존 서버의 가상머신 스냅샷을 사용하여 데이터를 손쉽게 백업하고 복구할 수 있다. 모든 데이터를 최신 상태로 유지하기 위해 이 백업 프로세스를 자동화하는 것도 간단하다. 긴급 상황이 발생하여 백업된 가상머신에서 복원해야 할 경우, 이 가상머신을 몇 분 만에 새 위치로 손쉽게 마이그레이션할 수 있다. 이로 인해 재해 또는 손실 복구가 용이해지기 때문에 안정성과 비즈니스 연속성이 향상된다.

비즈니스 및 전략[편집]

가상화 소프트웨어를 사용하면 조직이 리소스를 테스트하고 할당하는 방법이 더욱 유연해진다. 가상머신을 백업하고 복원하기가 너무 쉽기 때문에 IT 팀은 새로운 기술을 손쉽게 테스트하고 실험할 수 있다. 또한 가상화를 사용하면 가상머신 리소스를 조직의 공유된 풀 안으로 할당하여 클라우드 전략을 만들 수 있다. 이 클라우드 기반 인프라는 IT 팀이 누가 어떤 리소스를 어떤 기기에서 액세스하는지 제어할 수 있게 하여, 보안과 유연성을 개선한다.[5]

장단점[편집]

장점
  • 하드웨어 비용과 공간이 절감된다. 기존 환경에서는 하드웨어 비용 + 운영체제 및 백신, 애플리케이션 비용이 들었다면, 가상화 환경에서는 하드웨어 비용을 제외한 나머지 비용 즉, 운영체제 및 백신, 애플리케이션 비용만 들게 된다.
  • 가동시간 및 가용성 향상을 들 수 있다. 가상화 환경에서는 모든 가상서버에 대해 이중화가 가능하지만 기존 환경에서는 이중화 시 별도 장비가 추가 구성되어야 한다.
  • 서버 및 응용 프로그램 관리 간소화할 수 있다. 관리자는 가상화 서버의 리소스를 대시보드를 통해 손쉽게 확인할 수 있다. CPU, 메모리, 스토리지 사용 가능 용량, 가상머신 등을 한 눈에 쉽게 파악할 수 있어 기존의 사용 서버들을 일일이 확인하는 것보다 쉽게 관리할 수 있게 되었다.
  • 재해 복구 및 비즈니스 연속성 구현이다. 만약 서버를 운영하다 심각한 장애가 발생하면 백업 파일이 있는 경우에는 신규 장비에 백업 파일로 복원을 하면 되긴 하지만, 신규 장비가 들어오는 시간, 운영체제 설치 시간 등이 소요된다. 가상화 환경에서는 가상서버 이미지 백업이 되고 있는 상황이라면, 클릭 몇 번으로 백업이 된 시점으로 복원이 가능하다. 또한 가상화 서버가 장애인 상황이면 가동되고 있는 나머지 서버에서 서비스를 하고 장애 서버 조치를 한 뒤 정상화 시키면 서비스 중단 없이 장애 조치가 가능하다.[6]
단점
  • 가상화로 구축하여 사용하려면 1대 혹은 2대의 서버는 5대의 서버 성능을 필요로 하기 때문에, 고사양의 서버로 구성될 수 밖에 없다. 5대의 서버를 동시에 구축하여 서버 교체 시기가 도래하였다면 다행이지만 보통 필요 시 증설하는 경우가 대부분이다. 따라서 초기비용이 크게 발생하게 된다.
  • 관리해야 하는 라이선스가 증가할 수 있다. 보통 기존의 온프레미스 환경에서 가상화 환경으로 이전할 때에는 노후화 된 하드웨어를 개비하기 위함도 있지만 EOS된 운영체제를 업그레이드 하기 위함도 있다. 새로운 운영체제 라이선스가 들어가기 때문에 관리해야 하는 라이선스가 늘어나 관리가 어렵게 된다.

기대효과[편집]

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

유형[편집]

서버 가상화[편집]

서버 가상화(Server virtualization)에서 서버는 대량의 특정 태스크를 매우 효과적으로 처리해 노트북 및 데스크톱 등의 다른 컴퓨터가 다양한 태스크를 처리할 수 있도록 하는 컴퓨터다. 서버를 가상화하면 서버가 이러한 특정 기능을 더 많이 수행할 수 있으며 서버 파티셔닝을 통해 구성 요소로 여러 기능을 지원할 수 있다. 물리 서버는 호스트(host)라고 하며, 가상 서버는 게스트(guest)라 한다. 가상 서버는 마치 물리 서버처럼 동작하는데, 각각의 시스템은 물리 서버의 자원을 가상 서버에 할당해 주는 접근 방식에 있어서 그 차이가 있다. 물리 서버를 가상화 환경으로 제공하기 위해, 한 대의 서버에서 여러 가상머신 및 운영체제를 동시에 실행하기위한 논리적인 플랫폼, 즉 서버 가상화를 실현하는 플랫폼을 ‘하이퍼바이저(Hypervisor)’라고 한다.[8] 가상 서버를 생성하는 데는 세 가지 방식이 있다. 가기.png 서버 가상화에 대해 자세히 보기

전가상화

전가상화(Full-Virtualization)는 하이퍼바이저라고 하는 특수한 소프트웨어를 사용한다. 하이퍼바이저는 물리 서버의 CPU와 디스크에 직접 상호작용을 하며, 가상 서버의 운영체제를 위한 플랫폼 역할을 한다. 즉 운영체제 위에 하이퍼바이저가 설치되고, 그 위에서 가상 서버 및 운영체제가 실행되는 방식이다. 하이퍼바이저는 각각의 가상 서버들을 완전히 독립적으로 운용하도록 한다. 각각의 게스트 서버는 자체 운영체제에서 운영되기 때문에, 리눅스 기반 게스트와 윈도우 기반 게스트를 동시에 운용할 수도 있다. 하이퍼바이저는 물리 서버의 자원을 모니터링하여, 가상 서버에서 애플리케이션이 구동될 때, 물리 서버의 자원을 적절한 가상 서버에 할당해 준다. 물론 하이퍼바이저 자체 구동을 위해서도 처리능력 등의 리소스를 필요로 하기 때문에, 하이퍼바이저의 리소스 사용량은 전체 서버 퍼포먼스와 애플리케이션 구동속도에 영향을 줄 수 있다. 전가상화는 컴퓨팅 시스템의 하드웨어 리소스를 완전하게 가상화 하는 방식으로 그 위에서 동작하게 될 게스트 운영체제의 수정 없이 구동이 가능하다. 마이크로소프트 윈도우에서 리눅스 까지 다양한 운영체제를 사용할 수 있기 때문에 적용이 쉬운 편이다. 컴퓨팅환경을 기존의 운영체제 위에서 에뮬레이션 하는 형식으로 지원하기에 호스트(Host)형 가상화 라고도 한다. 다만 CPU의 가상화 지원 기술(VT, Virtualization Technology)과 같은 하드웨어 기능을 일부 지원받기 때문에 모든 기능을 소프트웨어적으로 구동하는 에뮬레이션과는 차이가 있다. 하이퍼바이저를 직접 실행하기에 편리한 인터페이스 화면을 제공하지만, 반면 이에 따른 성능 감소가 생긴다는 단점이 있다.[9]

반가상화

반가상화(Para-Virtualization)는 전가상화와는 달리, 게스트 서버 간의 독립성 없이 상호작용한다. 물리 서버 위에 하이퍼바이저가 직접 설치되고, 그 위에서 가상 서버 및 운영체제가 실행되는 방식이다. 반가상화 하이퍼바이저는 게스트 운영체제를 관리하기 위해 필요한 자원(처리능력)이 상대적으로 적게 든다. 이는 각각의 운영체제가 동일한 물리 서버에서 운영되는 다른 운영체제에서 필요로 하는 자원을 이미 인지하고 있으며, 이들 시스템은 마치 하나처럼 동작하게 된다.반가상화는 하드웨어를 완전히 가상화하지 않는 방식이다. 하이퍼바이저가 하드웨어 위에서 직접 실행되기 때문에 네이티브(Native, Bare-metal) 가상화 라고도 한다. 물리 서버의 성능을 최대한 발휘하면서 가상 서버의 성능을 제공하기에 성능이 많이 감소되지 않으면서 가상 서버를 제공하지만, 물리 서버 바로 위에 설치된 하이퍼바이저를 직접적으로 관리하기에는 어려움이 있다. 반가상화는 하드웨어에 대한 제어권을 하이퍼바이저가 가지고 있기 때문에, 하드웨어와의 I/O 처리에 있어서 전가상화보다 직접적인 루틴을 사용한다.[10]

운영체제 수준 가상화

운영체제 수준 가상화(operating-system-level virtualization)는 운영체제의 중앙 태스크 관리자인 커널에서 이루어진다. 이렇게 하면 리눅스 환경과 윈도우 환경을 함께 실행할 수 있다. 또한 기업은 가상 운영 체제를 컴퓨터에 푸시해 여러가지 이점을 얻을 수 있다. 컴퓨터에 고도의 OOTB(Out Of The Box) 기능이 필요하지 않으므로 하드웨어에 많은 비용이 소모되지 않는다. 모든 가상 인스턴스를 모니터링하고 격리할 수 있으므로 보안이 강화된다. 소프트웨어 업데이트와 같은 IT 서비스에 소요되는 시간이 절약된다. 운영 체제 수준 가상화는 커널이 여러 개의 격리된 사용자 공간 인스턴스의 존재를 허용하는 운영 체제 패러다임을 말한다. 컨테이너(LXC, 솔라리스 컨테이너, 도커), 솔라리스 컨테이너 영역, 가상 개인 서버(오픈VZ), 파티션, 가상 환경(VEs), 가상 커널(드래곤 플라이 BSD) 또는 감옥(FreeBSD 감옥 또는 chroot 감옥) 등 이것을 실행 하는 프로그램의 관점에서 실제 컴퓨터 처럼 보일 수 있다. 일반 운영체제에서 실행되는 컴퓨터 프로그램은 해당 컴퓨터의 모든 리소스를 볼 수 있다. 그러나 컨테이너 내부에서 실행되는 프로그램은 컨테이너에 할당된 컨테이너의 내용 및 장치만 볼 수 있다. 유닉스와 같은 운영 체제에서 이 기능은 표준 chroot 메커니즘의 고급 구현으로 볼 수 있으며, 이는 현재 실행 중인 프로세스및 해당 하위에 대한 명백한 루트 폴더를 변경한다. 커널은 격리 메커니즘 외에도 한 컨테이너 활동이 다른 컨테이너에 미치는 영향을 제한하는 리소스 관리 기능을 제공하는 경우가 많다.[11]

스토리지 가상화[편집]

스토리지 가상화(Storage virtualization)는 세 가지 방식으로 구성된다. 첫 번째로 호스트 기반(Host-based) 방식은 물리 드라이버는 기존의 디바이스 드라이버가 통제하는 반면, 디바이스 드라이버 위의 소프트웨어층은 I/O 요청들을 가로체서, 메타데이터를 검색한 후, I/O를 리다이렉트한다. 두 번째로 스토리지 디바이스 기반(Storage-device-based) 방식은 물리적인 스토리지 장치를 레이드 컨트롤러 등을 이용하여 스토리지 어레이로 구성하는 방식이다. 스토리지 주 컨트롤러는 풀링과 메타데이터를 관리함으로써, 다른 스토리지 컨트롤러를 직접 연결할 수 있도록 한다. 세 번째로 네트워크 기반(Network-based) 방식은 스토리지 가상화는 네트워크 기반 디바이스로서 인식되며 일반적으로 (SAN)으로 연결된 파이버채널(Fibre Channel) 네트워크를 사용한다. 가기.png 스토리지 가상화에 대해 자세히 보기

네트워크 가상화[편집]

네트워크 가상화(Network virtualization)는 하나의 물리 네트워크 위에서 여러 가상 네트워크를 생성하고, 각각의 가상 네트워크를 마치 실제 물리 네트워크와 같이 사용하는 기술이다. 컴퓨팅에서 네트워크 가상화 또는 네트워크 가상화는 하드웨어 및 소프트웨어 네트워크 리소스및 네트워크 기능을 단일 소프트웨어 기반 관리 엔터티인 가상 네트워크로 결합하는 프로세스다. 네트워크 가상화에는 리소스 가상화와 결합되는 플랫폼 가상화가 포함된다.네트워크 가상화는 외부 가상화로 분류되어 많은 네트워크나 네트워크 부분을 가상 장치로 결합하거나 내부 가상화를 결합하여 단일 네트워크 서버의 소프트웨어 컨테이너에 네트워크와 같은 기능을 제공한다.[12]

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

데이터 가상화[편집]

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

데스크톱 가상화[편집]

데스크톱 가상화(Virtual Desktop Infrastructure, VDI)는 조직에 비용을 절감하고 최종 사용자가 언제 어디서나 모든 기기에서 업무를 수행할 수 있도록 지원하면서 데스크톱 및 애플리케이션을 배포, 보호 및 관리할 수 있는 간소화된 접근 방식을 제공하는 소프트웨어 기술이다. 단일 머신에서 여러 운영 체제를 배포할 수 있는 운영 체제 가상화와 혼동하기 쉬우며, 시뮬레이션된 데스크톱 환경이 중앙 관리자 또는 자동화된 관리 툴을 통해 수백 개의 물리 머신에 동시 배포되도록 지원한다. 각 머신에서 물리적으로 설치, 설정, 업데이트되는 기존의 데스크톱 환경과 달리 데스크톱 가상화는 관리자가 모든 가상 데스크톱에서 설정, 업데이트, 보안 점검을 대규모로 수행할 수 있다. 제2의 PC 혁명이라 불리는 가상 데스크톱 인프라 시스템 기술로 가상 데스크톱 생성 블록 및 연결 블록, 자원 관련 블록, 서비스형 데스크톱(DaaS) 클라이언트 플랫폼 소프트웨어 블록 등으로 구분돼 각 블록은 독립적으로 수행하는 형태로 동작한다. 즉, 사무실 책상에서 PC 본체가 사라지는 것이다. 사용자는 PC나 노트북을 통해 작업하지만 실제 컴퓨팅 환경은 데이터센터에 구축된 서버에서 운영되는 방식이다. 서버를 데이터센터에 두고 필요할 때 로그인해서 사용할 수 있는 PC이다. 동일한 데이터와 애플리케이션을 사용하기 위해 같은 컴퓨터를 들고 다니는 것이 아니라 어떤 컴퓨터나 사용해서 웹을 통해 데스크톱 작업을 연속적으로 수행할 수 있다는 장점을 가지고 있다.[13] 가기.png 데스크톱 가상화에 대해 자세히 보기

이 외에도 여러 가상화를 표를 통해 정리하였다.[14]

가상화 유형 및 기술
구분 유형 가상화 기술
인프라 자원 서버가상화 파티셔닝, 가상I/O, 하이퍼바이저
스토리지가상화 블록 가살화, 가상 테이프라이브러리
네트워크 가상화 L2~L7 활용, VPNs, VLANs
정보 파일 가상화 클러스터 파일, 그리드 파일 시스템
데이터 가상화 데이터 연합 및 콘솔리데이션
워크로드 트랜잭션 가상화 JVM 로드 밸런싱
테스크 가상화 컴퓨팅 그리드
프레젠테이션 가상화 서비스 기반 컴퓨팅(SBC)
운영환경 전사적 워크로드 Enterprise Workload Manager
전력/냉각 효율화 Hibernation, Partition Mobility
유틸리티 서비스 Metering, Provisioning
백업 가상화 VTL 백업, 테이프 라이브러리 기반 백업
클라이언트 데스크톱 가상화 PC가상화, 서버기반 컴퓨팅(SBC),
VDI(Virtual Desktop Infrastructure)

기능[편집]

공유[편집]

공유는 가장 대표적인 가상화의 기능으로서, 다수의 많은 가상 자원들이 하나의 동일한 물리적 자원과 연결되어 있거나 가리키는 것을 말한다. 물리적 자원의 일부분을 가상화된 자원마다 할당하거나 혹은 물리적 자원에 대하여 타임 쉐어링 기법으로 공유하는 방식이 주로 사용된다. 이러한 형태의 가상화는 가상화 자원을 사용하는 여러 사용자들이 물리적 자원을 공유하게 해주며, 이때 각 사용자는 마치 자기가 해당 자원을 혼자서만 사용하는 것과 같은 착각을 하게 된다. 자원의 공유를 의미한다. 물리적인 자원(CPU, 메모리 등)을 논리적으로 나누어 서비스별로 사용하는 것이다. 예를 들어, 하나의 서버에 3~4명의 사용자가 독립적인 자원을 할당 받아 사용할 수 있다는 말이다. 대표적 사례로는 서버 내의 논리적 분할, 가상머신(VM), 가상 디스크, 가상 LAN(VLANs)을 들 수 있다.

단일화[편집]

단일화는 공유와 정반대 개념이다. 여러대의 물리적인 자원들 중 여유 자원을 논리적으로 하나의 자원으로 묶어 사용하는 것이다. 예를 들어 내컴퓨터의 A, B, C 물리적 하드디스크의 여유 공간 10GB, 30GB, 50GB의 공간을 하나로 묶어서 사용하게 하는 것이다. 공유의 반대되는 가상화 개념으로서, 가상 자원은 여러 개의 물리적 자원들에 걸쳐서 만들어질 수 있으며, 이를 통해 외견상 전체 용량을 증가시키고 전체적인 관점에서 활용과 관리를 단순화시켜 줄 수 있다. 예를 들어, 스토리지 가상화는 여러 개의 물리적 디스크 시스템에 남아있는 각각의 유휴 디스크들을 하나의 가상화된 디스크로 만들어 주는데, 이때 가상화된 디스크는 가상 디스크를 만드는데 사용 되어진 어떤 물리적 디스크보다도 더 커질 수 있다.

에뮬레이션[편집]

에뮬레이션 기능은 에뮬레이터를 말한다. 즉 내컴퓨터의 운영체제와 다른 운영체제를 구동하여 다른 운영체제에서만 동작하는 소프트웨어 및 애플리케이션을 동작하는 것이다. 물리적 자원 자체에는 원래부터 존재하지 않았지만 가상 자원에는 어떤 기능들이나 특성들을 마치 처음부터 존재했던 것처럼 가질 수 있다. 예를 들어 IP 네트워크 상에서 가상 SCSI 버스를 구현하는 iSCSI 또는 물리적 디스크 스토리지상에 구현된 가상 테이프 스토리지 등이 여기에 속한다. 또 다른 형태의 에뮬레이션에는 여러 개의 제각기 다른 물리적 자원들을 표준 구성요소 형태인 것처럼 가상 자원으로 표시하는 것이 있다. 여러 종류의 이더넷(Ethernet) 인터페이스를 마치 하나의 특정한 표준 이더넷 인터페이스 모델로 나타내는 것이 그 예이다.

절연[편집]

가상화된 자원들과 물리적 자원들간의 상호 맵핑은 가상화 자원들 또는 가상화 자원들을 사용하는 사용자들에게 아무런 영향을 미치지 않으면서 물리적 자원들이 교체될 수 있도록 해준다. 이것은 투명한 변경(transparent change)이라고 불리우며, 투명한 변경은 가상화에 있어서 하나의 부가적인 혜택이기도 하지만, 때때로 그 자체가 하나의 기술로서 중요한 의미를 갖기도 한다. 어떤 가상 프로세서가 결함이 발생하였거나 혹은 곧 발생하려는 물리적 프로세서에서 다른 정상적인 물리적 프로세서로 자동적으로 옮겨간다거나, 디스크의 결함을 사용자들로부터 숨기기 위해 다중디스크(Redundant Disk)를 사용하는 레이드 스토리지 컨트롤러, 핫스왑(Hot swap) 등이 대표적인 사례이다.[7]

가상화 관리[편집]

가상화 환경의 중요한 측면은 동적이고 복잡한 IT 인프라의 관리 및 유지를 단순화 해야 한다는 점이다. 소프트웨어 툴을 통해 구현된 패턴과 기술은 다음과 같은 관리 작업들을 지원한다.

  • IT 인프라에 있는 모든 리소스에 대한 관리상의 액세스에 단일의 보안 인터페이스를 제공한다.
  • 관리자는 모든 리소스에 대한 진단을 내릴 수 있다.
  • 모든 리소스에 대해 설정 및 변경 관리를 수행한다.
  • 가용 리소스의 재고를 발견 관리한다.
  • 리소스를 감시하고 일반적인 건강 상태를 기록한다.
  • 조건이 어떤 임계치에 도달하면 액션을 수행한다. 액션 중에는 관리자에게 공지하여 응답에 반응하여 조건을 수정하도록 하는 것도 포함된다.
  • 리소스 사용, 가용성, 서비스 레벨 요구 사항에 기반하여 리소스를 제공 또는 제공하지 않는다. 프로비저닝은 확립된 정책에 따라 수동, 반자동, 자동으로 수행될 수 있다.
  • 사용 정보와 측정 정보를 획득 및 관리하고 리소스 소비에 대한 청구 같은 알맞은 리포트를 제공한다.
  • 엔드 유저나 애플리케이션 보안을 보충하는 보안 메커니즘을 제공한다.
  • 엔드 유저와 애플리케이션 SLA에 부합하기 위해 모든 리소스에 걸쳐 퍼포먼스 정보를 기록한다.

구현 기술[편집]

한 가지 리소스에 대한 여러 논리적 구현

한 가지 리소스에 대한 여러 논리적 구현은 가장 일반적으로 사용되는 가상화 패턴 중 하나이다. 하나의 물리적 리소스와 이것의 사용자에 대한 한 개 이상의 논리적 구현으로 구성되어 있다. 소비자는 가상화 된 리소스와 인터페이싱 한다. 다른 소비자와 리소스를 공유하고 있다는 것을 모른 채 한 명의 소비자인 것처럼 말이다. 가상머신들은 패턴의 예제이다. 하드웨어 물리적 파티션과 논리적 파티션(IBM 시스템 p·z, 시스템i 서버 또는 브이엠웨어, 마이크로소프트 가상 서버, 젠 같은 소프트웨어 제품들)은 서버 가상화를 구현한다. 데이터베이스 뷰의 사용은 데이터를 분리하고 소비자는 역할과 권한에 따라 액세스 한다. 모든 소비자가 같은 데이터베이스에 액세스 하더라도 말이다. 또한 그리드는 가상화를 사용하여 네트워크를 통해 데이터를 관리하고 소비자에 대한 한 개의 시스템으로서 이를 논리적으로 표현한다.

다중 리소스에 대한 하나의 논리적 구현

다중 리소스에 대한 하나의 논리적 구현의 경우, 합체된 리소스들로 구성되어 하나의 인터페이스를 제공하는 하나의 논리적 구현으로서 나타난다. 하나의 보다 강력한 또는 기능적으로 가상화된 리소스들을 구현할 때 편리한 패턴이다. 스토리지 가상화는 이 패턴의 예이다. IBM의 샌 볼륨 컨트롤러(SAN Volume Controller)는 여러 스토리지 볼륨들을 결합하고 이들을 하나의 큰 스토리지 장치로 구현할 수 있다. 소비자는 데이터가 여러 디스크에 걸쳐 분포되어 있다는 사실을 모른다. 서버의 경우 클러스터링 기술은 소비자가 하나의 시스템인 헤드 노드와 상호작용 하고 있다는 착각을 하게한다. 실제로 클러스터는 많은 프로세서와 노드들을 포함하고 있다. 바로 이것이 그리드 컴퓨팅이 수행하는 것이다. 다양한 여러 리소스들이 간소화된 사용자 인터페이스(사용자 포탈 또는 애플리케이션용 표준 인터페이스)를 통해 구현된다. 전산 관점에서 볼 때 그리드는 작업 요청 소스를 제공하고, 결과를 리턴하는 등의 워크로드 가상화를 제공한다.

멀티 리소스들 간 하나의 논리적 구현

멀티 리소스들 간 하나의 논리적 구현의 경우, 많은 가용 리소스들 중 하나로 구현된 가상화된 리소스로 구성된다. 가상화된 리소스는 리소스 활용, 응답 시간, 접근성 같은 특정 기준에 근거하여 물리적 리소스 구현들 중 하나를 선택한다. 이들은 매우 비슷해 보이지만 이 패턴과 이전 패턴들 간에는 미묘한 차이가 있다. 우선, 각각의 물리적 리소스는 완벽한 복제고 논리적 구현으로 모아지지 않는다. 둘째, 각 물리적 리소스는 이전 패턴에서 제공된 부분적인 기능 보다는 논리적 구현에 필요한 전체 기능을 제공한다. 이 패턴의 일반적인 예로는 워크로드 밸런싱을 위해 애플리케이션 컨테이너를 사용하는 경우를 들 수 있다. 요청 또는 트랜잭션을 애플리케이션이나 서비스에 제출할 때 소비자는 여러 컨테이너들 중 하나에서 실행되는 애플리케이션의 어떤 카피가 요청과 트랜잭션을 제공하는지 신경 쓰지 않는다. 소비자는 요청 또는 트랜잭션이 핸들 되기만을 원한다. 구체적인 예로 IBM의 애플리케이션 개발 및 배치 지원 플랫폼인 웹스피어 애플리케이션 서버(WAS, WebSphere Application Server)와 가상화 제품인 웹스피어 익스텐디드 디플로이먼트(WebSphere Extended Deployment)를 들 수 있다. 또 다른 예제로는 파일 가상화이다. 데이터의 여러 카피들은 중복 또는 퍼포먼스를 위해 관리된다. 소비자가 파일에 액세스 할 때 IBM의 고성능 대용량 파일공유시스템(GPFS, General Parallel File System)과 같은 파일시스템은 여러 카피의 파일들 중 하나를 배치한다. 소비자는 사용되는 파일의 복제 위치를 몰라도 된다.

싱글 리소스의 싱글 논리적 구현

싱글 리소스의 싱글 논리적 구현은 다른 리소스였던 것 처럼 하나의 리소스를 논리적으로 구현하는데 사용되는 간단한 패턴이다. 엔터프라이즈 백엔드 애플리케이션에 웹 기능을 부여하기가 일반적인 예다. 이 경우, 백엔드 애플리케이션을 수정하는 데신 웹 인터페이스를 나타내기 위해 퍼사드(facade)가 만들어진다. 이것은 애플리케이션 인터페이스로 매핑된다. 이 패턴은 백엔드 애플리케이션을 수정하지 않고도 기본 기능들을 재사용 할 수 있다. 같은 패턴이 수정될 수 없는 컴포넌트에서 서비스를 구현하는데 사용될 수 있다.

합성 또는 레이어드 가상화

지금까지 설명했던 한 개 이상의 패턴들과 물리적 리소스들을 정비하여 풍부한 기능을 제공한다. 정보 가상화가 좋은 예다. 기반 기능을 제공하여 소스에 대한 글로벌 네이밍과 레퍼런스, 정보를 처리하고 구체화 하는 방법에 대한 정보를 포함하고 있는 메타데이터, 정보를 처리하는 연산을 관리한다. 예를 들어, IBM의 웹스피어 정보 서버(WebSphere Information Server)는 이종의 소스들에 대한 광역 연결과 통합 메타데이터를 사용하여 정보를 통합, 강화, 전달하는데 필요한 기능들을 제공한다. 오픈그리드 서비스 구조(OGSA, Open Grid Services Architecture) 또는 그리드 컴퓨팅 컴포넌트(Grid Computing Components)와 같은 아키텍처나 프레임워크들은 가상화의 진정한 합성 또는 레이어이다. 이 프레임웍의 초기 레이어는 하위 레이어의 추상화이다. 이것은 상위 레이어에게 정의된 인터페이스를 제공한다. 하위 레이어에서 온 리소스들은 결합되어 아키텍처나 프레임워크 스택을 이동할 때 보다 복잡한 기능으로 된다. 예를 들어, 워크로드 가상화와 정보 가상화는 이미 가상화 된 IT 인프라(시스템, 스토리지, 네트워크)에 상위 레벨의 가상화를 제공한다.[15]

전망[편집]

세계 및 국내의 가상화 보안 시장 규모 전망

가트너(Gartner)의 시장자료에 따르면, 국내 가상화 소프트웨어 시장은 2011년 873억 원에서 2015년 1016억 원으로 증가하였고, 연평균 0.98%의 성장률을 보이면서, 2020년에는 1067억 원에 달할 전망이다. 세계 가상화 소프트웨어 시장은 2015년 5,195백만 달러에서 연평균 3.06%의 성장률로 2020년에는 6040백만 달러에 달할 전망이다.

국내 가상화 보안 시장은 가상화 보안 제품의 비교적 높은 가격과 가상화 보안에 대한 인식 부족으로 인해 낮은 그래프를 보였으나 서버 가상화 시장의 성장과 함께 클라우드 프로젝트의 핵심 요구사항으로 반할 가능성이 높아 향후 그래프가 높아질 것으로 전망하였었다. 오늘날 가상화 시장이 증가 추세를 보이는 이유는 다음과 같다.[16]

모빌리티 수요 증가

스마트폰, 노트북 컴퓨터, 태블릿 등 개인 모바일 기기를 이용해 기업망에 접속하는 빈도가 늘어나면서 기업용 모빌리티 기술에 대한 수요 또한 급증하고 있는 추세이며, 기존 IT 인프라는 이들 기기를 설정해 관리해야 한다는 압력을 받고 있다. 모바일 데이터가 늘어나면서 여러 서버를 병렬로 처리하고 무리 없이 상호 연결할 필요성이 대두되고 있다.

그리고 이는 네트워크 용량 추가와 보다 정교한 네트워크 솔루션 도입에 대한 수요 증가로 이어지고 있는 실정이다. 통신 사업자와 데이터센터들이 네트워크 용량을 상상할 수 없는 규모로 확장해야 하는 문제에 직면해 있는 가운데, 네트워크 가상화와 소프트웨어 정의 네트워크(SDN, Software Defined Network)이 잠재적인 솔루션으로 자리를 굳혀가고 있다.

클라우드 서비스 급증

가상화 환경 확대와 더불어, 기업들은 서로 프라이빗 클라우드와 퍼블릭 클라우드 서비스를 도입하고 있다. 이와 같이 네트워크 자원 공유에 대한 수요가 증가하고 있는 추세이다. 기업들은 온디멘드(on-demand) 기반, 애플리케이션, 기타 IT 자원을 이용할 수 있기를 바라고 있다. 이는 자연적으로 가상 자원 공유 환경으로 이어진다. 네트워크 가상화와 소프트웨어 정의 네트워크는 이런 물리적 네트워킹 요소를 공유가 가능한 가상 자원으로 전환하는 역량을 갖고 있다. 한마디로 데이터센터의 목적에 부합하는 솔루션인 것이다. 클라우드 제공업체들은 보안 수준 개선, 비즈니스 재편, 병합 및 통합 등 각 요건을 고려해, 스토리지, 컴퓨팅, 네트워크 자원 공유에 있어 엄격한 확장요건을 충족해야 한다.

트래픽 패턴의 변화

모바일 기기, 빅데이터, 동영상 트래픽이 급증하면서 통신 사업자와 클라우드 제공업체에 상당한 수익 창출 기회가 발생하고 있다. 그러나 이런 추세로 기업 데이터센터와 통신 네트워크의 트래픽 패턴이 빠르게 변하고 있다. 대부분 특정 클라이언트와 서버가 통신을 하는 기존 클라이언트-서버와 달리, 오늘날의 새로운 애플리케이션들은 여러 서버와 데이터베이스에 접속해, 과거에는 상상할 수 없었던 트래픽을 다량 유발한다. 즉 기존의 트래픽 패턴이 바뀐 것이다.모바일의 확산도 사용자 주도의 트래픽 패턴에 변화를 가져오고 있다. 여러 모바일 기기를 이용해 수시로 기업 콘텐츠와 애플리케이션을 이용하면서 트래픽이 발생하고 있기 때문이다. 다양한 서비스 공급업체들이 이런 1차적인 여러 도전을 해결하는 데 박차를 가하고 있다. 그러나 네트워크 정체와 트래픽 패턴의 변화라는 공통된 제약은 여전하다. 기업용 데이터센터들은 퍼블릭 클라우드프라이빗 클라우드로 구성된 하이브리드 컴퓨팅 모델을 고려하고 있다. 이 또한 네트워크 전반에 걸친 트래픽 증가를 유발한다.

새로운 네트워크 아키텍처에 대한 수요

모바일 기기, 모바일 콘텐츠 급증, 클라우드 서비스는 서버 가상화를 견인하는 주요 원동력이다. 그리고 이런 네트워킹 환경의 변화는 기존 네트워크 아키텍처를 다시 고려하도록 부추기고 있다. 기존 네트워크 대부분은 위계적 토폴로지를 채택하고 있다. 나무와 같은 구조로설정된 이더넷 스위치 계층이 여럿 존재하는 구조이다. 이런 전통 네트워크 환경은 클라이언트-서버 기반의 컴퓨팅 환경에 맞춰져 있다. 그러나 오늘날 통신 및 클라우드 환경의 역동적이고 가변적인 저장 및 연산 환경에는 적합하지 않아 기존 네트워크 구조는 새로운 세대의 기술로 확장이 어려운 실정이다. [17]

각주[편집]

  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. 다이어리, 〈클라우드 가상화 기술 정리 1 (서버 / 운영체제 OS / 전가상화 / 반가상화 / 하이퍼바이저 / VM웨어 / 시트릭스 / 마이크로소프트 / 레드햇 / 리눅스 / 인텔)〉, 《네이버 블로그》, 2019-07-29
  5. 가상화란? 시트릭스 - https://www.citrix.com/ko-kr/glossary/what-is-virtualization.html
  6. 사용자 최종변기, 〈가상화 A to Z : 가상화에 대하여 알아봅시다!〉, 《넷게이트》, 2019-04-05
  7. 7.0 7.1 이베스트투자증권, 〈가상화, 어디까지 알고 있니?〉, 《네이버 블로그》, 2015-03-24
  8. 최영락, 〈가상화와 컴퓨터 네트워크의 활용 1 : 가상화와 데이터센터〉, 《한국방송기술인연합회》
  9. 안성원, 〈클라우드 가상화 기술의 변화 - 컨테이너 기반의 클라우드 가상화와 DevOps〉, 《소프트웨어정책연구소》, 2018-12-10
  10. 주창오, 〈가상화(Virtualization) 총정리 서버 가상화(Server Virtualization)란 무엇인가?〉, 《티스토리》, 2012-05-22
  11. OS-level virtualization 위키백과 - https://en.wikipedia.org/wiki/OS-level_virtualization
  12. Network virtualization 위키백과 - https://en.wikipedia.org/wiki/Network_virtualization
  13. 데스크톱 가상화 위키백과 - https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%86%B1_%EA%B0%80%EC%83%81%ED%99%94
  14. 가상화 지식덤프 - http://www.jidum.com/jidums/view.do?jidumId=425
  15. 가상화: 패턴의 관점에서 본 가상화 한국데이터산업진흥원 - https://kdata.or.kr/info/info_04_view.html?field=&keyword=&type=techreport&page=260&dbnum=127235&mode=detail&type=techreport
  16. 권이남, 〈떠오르는 블루칩 가상화 보안, 국내에서는 외면〉, 《네이버 블로그》, 2013-07-20
  17. 연승준, 〈네트워크 가상화 동향분석〉, 《한국전자통신연구원》, 2013-06

참고자료[편집]

같이 보기[편집]


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