블로그 이미지
주로 인재개발원 등의 사이버학습을 정리, 요약하는 상시학습 블로그입니다. 깨비형
« 2017/12 »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

Archive»

체험 블로그 마케팅 서비스 OLPOST

Category»

Notice»

Statistics Graph

[9강] 가상화 개념

컴퓨터 활용/클라우드 컴퓨팅 | 2012.07.12 06:59 | Posted by 깨비형

1. 가상화의 정의와 개념


  ○ 정의

      - 컴퓨터에서 컴퓨터 자원의 추상화을 일컫는 광범위한 용어임

      - "물리적인 컴퓨터 리소스의 특징을 다른 시스템, 응용 프로그램, 최종 사용자들이 자원과 상호 작용하는 방식으로부터 감추는 기술"로 정의할 수 있다.

      - 이것은 다중 논리 리소스로서의 기능을 하는 것처럼 보이는 서버, 운영체제, 응용 프로그램, 또는 저장장치와 같은 하나의 단일 물리적 자원을 만들어 낸다.

      - 아니면 단일 논리적 자원처럼 보이는 저장장치나 서버와 같은 여러 개의 물리적 지원을 만들어 낼 수 있다.


  ○ 가상화 유래

      - 이 용어는 오래되었다. 1960년대 이후로 널리 쓰였으며, 전체 컴퓨터 시스템에서 개별 기능/구성 요소에 까지 컴퓨터의 다른 많은 면과 영역에 적용되어 왔다.

      - 모든 가상화 기술의 공통 주제는 주변에 막을 씌워 "기술적으로 자세한 부분을 숨기는 것"이다.

      - 가상화는 다른 물리적 위치에서 리소스를 한데로 합치거나 제어 시스템을 단순하게 하여 다중 송수신 접근과 같은 것을 통해 기반이 되는 기능 추가를 보이지 않게 하는 외부 인터페이스를 만들어 낸다.

      - 새로운 가상 플랫폼과 기술의 최근 발전은 이렇게 성숙한 개념에 다시 한번 집중하게 만들었다.


  ○ 가상화 기술은 실제 존재하는 물리적 자원들을 논리적 자원들의 형태로 표시하는 기술로서, 물리적 자원을 이용하는 사용자(구체적으로 애플리케이션 및 서비스를 가리킴)에게는 논리적 형태로만 나타난다. 아래 그림 처럼 가상화 기술이 이들 논리적 자원들과 실제 물리적 자원들에 대한 연결을 담당해 줌으로써, 가상화 자원을 이용하는 사용자는 더 이상 어떤 자원들이 사용되는지를 구체적으로 알 필요가 없어진다.

  ○ 앞의 그림에서 보여주고 있는 것과 같이

    ▷ 가상화라는 중간 계층을 이용하여 애플리케이션과 서비스를 실제적인 자원들과 분리하는 이러한 형태는 사용자로 하여금 동일한 자원을 공유하게 해주고, IT 자원들을 개별 자원이라기 보다는 논리적인 자원 풀로서 사용하고 다루게 해준다.

    ▷ 서버내의 자원 분할(Partitioning)은 가상화의 대표적인 사례로서, 커다란 하나의 서버 시스템을 다수의 작은 시스템으로 보이게 해줌으로써 서버 자원을 공유하게 해준다.

    ▷ 또한 스토리지 가상화 기술은 여러 개의 물리적 스토리지 시스템들에 남아 있는 유휴 디스크을 모아서 만든 디스크 풀에서 가상화된 디스크를 만들 수 있게 해준다. 이렇게 가상화된 디스크에 접근함으로써 애플리케이션 서버는 실제로는 최대 사용 가능한 공간이 300MB 밖에 안되는 상황에서도 마치 1TB의 스토리지가 단독으로 붙어 있는 것처럼 간주하여 실행될 수 있다.


  ○ 결론적으로 가상화 기술은 실제로 존재하는 물리적 자원들에 대한 중재자 역할을 해주는 기술로써 위의 경우에 적용해 보면 가상화 기술은 애플리케이션 서버의 스토리지 요구를 가로채서 여러 개의 스토리지 컨트롤러에 걸쳐 있는 유휴 공간을 찾아내 줌으로써 스토리지 용량에 대한 요구를 만족시켜 주는 것이다.



2. 가상화의유형


  ○ 가상화는 일반적으로 서버, 스토리지 및 네트워크와 같은 전통적인 단위 하드웨어 자원에 많이 적용되어 왔다. 그러나 가상화의 적용 범위는 아래 그림처럼 단순히 하드웨어 차원의 IT 리소스에만 한정되지 않고 애플리케이션, 미들웨어, 분산 시스템 및 가상화 자원들 자체를 포함하여 비실체적인 자원들에 대해서도 적용될 수도 있다.



  ○ 위 그림에서 보여 준 것과 같이 가상화 범위는 다양하다.


  ○ 즉 미들웨어를 통한 워크로드의 가상화에는 잡 스케쥴러(JobScheduler)가 이용될 수 있으며, 애플리케이션 레벨의 가상화에는 애플리케이션 서버가 스스로 인스턴스를 제어하여 워크로드를 관리할 수도 있다. 대표적인 사례로 전자에는 다양한 그리드 스케쥴러가 있고, 후자에는 WAS-XD 같은 웹 애플리케이션을 들 수 있다.


  ○ 향후 전통적인 자원 가상화의 추세는 여전히 개별 하드웨어를 중심으로 이루어져 가겠지만, 새로운 형태의 가상화 역량이 추가적으로 요구되고 있다. 새로운 가상화 역량에는 작은 다수의 시스템 집합에서 가상 시스템을 만들어내거나 플랫폼과 벤더의 경계를 넘어서서 단순화되고 일관된 방식으로 관리될 수 있는 가상 시스템을 구현하는 것이 포함되어 있다. 여기에는 앞 페이지의 그림에서 관리의 가상화, 전사적 차원의 가상화 등이 포함될 수 있다.


  ○ 가상화의 적용 범위로

      - Infrastructure 계층의 디바이스, 네트워크, Power 가상화

      - Hardware, 계층의 서버와 저장장치 가상화

      - Operating Systems 계층의 운영체제 가상화

      - Middleware, 계층의 Applicaton 가상화

      - Workload 계층의 업무의 가상화

      - Bussiness Appplication 계층의 Database 가상화 등이 있다.


  ○ 여기서는 서버, 스토리지 및 네트워크 등 주로 하드웨어 인프라 차원에서의 가상화 기술에 설명해 나가도록 할 예정이며, 기회가 될 경우에 추가적으로 나머지 레이어에 대한 가상화 적용 기술들을 소개할 계획이다.


  ○ 가상화는 자원의 공유(Sharing), 단일화(Aggregation), 에뮬레이션(Emulation) 그리고 절연(Insulation)이라는 4가지 기본적인 기능을 가지고 있다. 아래 그림은 가상화의 기능별 종류 및 이에 따르는 사례들을 보여주고 있다.


   1) 공유(Sharing) :

    ▷ 가장 대표적인 가상화의 기능으로서 다수의 많은 가상 자원들이 하나의 동일한 물리적 자원과 연결되어 있거나 가리키는 것을 말한다. 물리적 자원의 일부분을 가상화된 자원마다 할당하거나 혹은 물리적 자원에 대하여 타임 쉐어링 기법으로 공유하는 방식이 주로 사용된다.

    ▷ 이러한 형태의 가상화는 가상화 자원을 사용하는 여러 사용자들(애플리케이션 또는 서비스)이 물리적 자원을 공유하게 해주며, 이때 각 사용자는 마치 자기가 해당 자원을 혼자서만 사용하는 것과 같은 착각을 하게 된다.

    ▷ 대표적 사례로는 서버 내의 논리적 분할, 가상머신(VM), 가상 디스크, 가상 LAN(VLANs)을 들 수 있다.


   2) 단일화(Aggregation) :

    ▷ 공유의 반대되는 가상화 개념으로서, 가상 자원은 여러 개의 물리적 자원들에 걸쳐서 만들어질 수 있으며, 이를 통해 외견상 전체 용량을 증가시키고 전체적인 관점에서 활용과 관리를 단순화시켜 줄 수 있다.

    ▷ 예를 들어, 스토리지 가상화는 여러 개의 물리적 디스크 시스템에 남아있는 각각의 유휴 디스크들을 하나의 가상화된 디스크로 만들어 주는데, 이때 가상화된 디스크는 가상 디스크를 만드는데 사용 되어진 어떤 물리적 디스크보다도 더 커질 수 있다


   3) 에뮬레이션(Emulation) :

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


   4) 절연 (Insulation) :

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


  ○ 가상화의 혜택은 가상화를 도입하려는 사용자들의 목표나 접근 방법, 채택된 기술 및 기존 IT 인프라스트럭쳐의 종류에 따라 크게 달라진다. 대부분의 사용자들은 (심지어는 단순히 서버 통합에 가상화를 사용하는 경우에도) 아래에 언급된 혜택들을 어느 정도 가질 수 있다. 또한 사용자들이 그들의 IT 인프라스트럭쳐를 가상화하는데 더 많은 노력을 기울일 때, 얻을 수 있는 가상화의 혜택은 그만큼 비례해서 커지게 된다. 아래 그림처럼 가상화 도입 시 얻을 수 있는 혜택들을 구체적으로 열거해 보면 다음과 같다.


   1) 높아진 자원의 활용률 :

      - 가상화는 물리적 자원들과 자원 풀에 대한 동적인 공유를 가능하게 해주며, 이를 통해 더 높은 자원의 활용률을 얻을 수 있다. 특히 평균 워크로드가 전체 자원의 워크로드 보다 훨씬 적은 가변적인 워크로드 상황에서는 더 높은 효과를 얻을 수 있다.


   2) 낮아진 관리 비용 :

      - 가상화는 관리해야 하는 물리적 자원들의 대수를 줄여줌으로써 관리 인력의 생산성을 향상시킬 수 있다.

      - 또한 물리적 자원들의 복잡성을 숨겨주고,

      - 자동화, 정보화 및 중앙화를 통해 공통된 관리 작업을 단순화시키고,

      - 워크로드 관리의 자동화를 가능하게 해준다.

      - 가상화는 이기종 플랫폼 환경에서도 관리 도구를 공통으로 사용할 수 있게 해준다


   3) 사용의 유연성:

      - 가상화는 빠르게 변화하는 비즈니스니스를 만족시키기 위하여 자원들이 동적으로 재구성되고 활용 될 수 있도록 해준다.


   4) 향상된 보안

      - 가상화는 단순한 공유 메커니즘에서는 불가능한 분리와 격리를 가능하게 해서 데이터와 서비스에 대하여 통제되고 안전한 액세스를 제공한다.


   5) 높아진 가용성

      - 가상화는 사용자레벨에 아무런 영향을 주지 않고도 물리적자원이 제거되거나 업그레이드 또는 변경 될 수 있도록 지원해 준다.


   6) 증가된 확장성

      - 자원 분할 및 단일화(Aggregation)는 가상화된 자원이 개별 물리적 자원보다 더 작아지거나 혹은 더 커질 수 있게 해준다.

      - 이를 통해 물리적 자원의 구성 변경이 없어도 필요한 만큼의 적정한 확장성을 얻을 수 있다.


   7) 상호 운영성 및 투자의보호

      - 가상화 자원들은 기존 물리적 자원들간에서는 불가능한 인터페이스와 프로토콜 레벨에서의 호환성을 제공해 준다.


   8) 향상된 프로비져닝 (Provisioning)

      - 가상화는 자원의 할당을 개별 물리적 단위보다도 더 세밀한 조각 단위에서 가능하게 해준다


  ○ 가상화를 도입하려고 할 때 처음부터 전사적 차원에서 접근할 필요는 없다. 오히려 장기적인 IT 발전 방향에 대한 로드맵을 그린 다음 단계적으로 가상화를 기업 내에서 확산 시켜나가는 접근 방법이 필요하다. 이러 접근 방법에 맞추어 가상화를 도입하는 순서는 동질적 가상화에서 시작하여 이질적 가상화, 전사적 가상화를 거쳐 마지막으로 글로벌 가상화로 점점 범위를 확대하면서 기업 내의 역량이 이에 따라 갈수 있도록 보조를 맞추어 가는 것이 중요하다. 아래 그림은 가상화의 단계별 발전 과정을 모형화하여 보여주고 있다.



  ○ 먼저 동질적 가상화(Virtualize like resources)란 가상화의 도입을 처음으로 고려할 경우에 많이 발생하며, 조직 또는 부서 단위에서 동일한 또는 비슷한 자원들을 하나의 가상 풀로 묶는 것이다. 여기에는 스토리지 가상화가 대표적인 예이다.


  ○ 이질적 가상화(Virtulaize unlike resources)란 OS 또는 애플리케이션처럼 성격이 다른 자원들을 하나로 묶는 것으로 워크플로우 (Workflow:작업흐름도)와 관련 있는 모든 자원들을 가상화하는 단계를 말한다. 여기에는 트랜잭션 또는 워크플로우의 자동화가 필수적이며, 가상화 엔진 또는 그리드 구축이 구체적인 예이다.


  ○ 가상화가 기업 내에 어느 정도 진척이 되면 전사적 가상화(Virtualize the enterprise)의 단계로 넘어간다. 이 단계에서는 모든 자원들이 동적으로 관리가 되며 각 부서간에 사용량에 따른 비용 할당이 가능하게 된다.


  ○ 마지막 단계의 가상화는 기업의 경계를 넘어서서 비즈니스 파트너와 심지어는 고객까지도 가상화의 주체로 참여하는 글로벌 가상화(Virtualize outside the enterprise)로 이행한다.



3. 가상화의 기술 분류


  ○ 시장에서 실제로 활용되고 있는 다양한 가상화 기술들은 분류 방식에 따라 여러 가지로 나누어볼 수 있다.


  ○ 먼저 이전의 앞 가상화 적용 범위의 그림처럼 가상화 계층의 위치에 따라

    ▷ 하드웨어 가상화에서부터

    ▷ OS 가상화, 애플리케이션 가상화, 관리 가상화 등으로 단계적으로 나누어볼 수 있으며

    ▷ 혹은 가상화가 적용되는 물리적 범위를 기준으로 시스템 내부 가상화, 시스템 외부 가상화 등으로 나누어볼 수도 있다. 물론 이외에도 다양한 분류 방법이 있을 수 있다.


  ○ 여기서는 후자의 경우처럼 가상화가 시스템 내부에 구현되었는가 또는 시스템 외부간에 구현되었는가에 따라 시스템 내부 가상화와 시스템 외부 가상화로 크게 나누었으며 각각은 다시 서버 가상화와 스토리지 가상화로 좀 더 세밀히 나눌 수가 있다. 한편 네트워크 가상화는 특성상 분류가 어려워 별도의 가상화 항목으로 배치하였다. 이것을 정리하면 다음 페이지 그림과 같이 나타낼 수 있다.


  ○ 아래의 그림은 가상화에 대한 기술 분류를 보여 주고 있다.



  ○ 서버 가상화와 스토리지 가상화 그리고 네트워크 가상화를 각각 나누어 진다.


  ○ 이들을 공통적으로 지원하는 차세대 가상화의 대표적인 실체인 가상화 엔진(Virtualization Engine)이 필요하다. 이들 내용은 가상화 설명의 끝 단계에서 자세히 설명한다.


저작자 표시 동일 조건 변경 허락
신고

'컴퓨터 활용 > 클라우드 컴퓨팅' 카테고리의 다른 글

[11강] 스토리지 가상화  (0) 2012.07.13
[10강] 서버 가상화  (0) 2012.07.13
[9강] 가상화 개념  (0) 2012.07.12
[8강] 클라우드 컴퓨팅 도입전략  (0) 2012.07.11
[7강] 클라우드 컴퓨팅 SaaS  (0) 2012.07.10
[6강] 클라우드 컴퓨팅 PaaS  (0) 2012.07.09