VM Template 이미지를 어떻게 만들고 운영해야 유리할까~???


최근, Chef로 서비스 구성(Configuration) 자동화 파트를 다시 하게 되었다. 여기저기 타 부처 수행 인력과 협업도 해야 하는 상황이라, 가상화 인프라부터 논의를 통해 결정을 지어야 할 일이 많다... 서비스 구성에는 Hadoop Cluster, MySQL & Replication, Cassandra, MongoDB, HAProxy LB, Apache/Tomcat, 등등 여러가지 서비스들이 버튼 한번의 클릭으로, 동적 구성 및 동작이 되어야 한단다. (쉽게 이야기들 한다...쿨럭...) 이러한 일련의 자동화 구성/배포 전략 수립단계에서 여러사람들끼리 혼선도 있고, 의견 충돌이 있는 것은 당연하다. 왜? 정답이 없는 거니까~ ㅡ.ㅡㅋ 사실 이 섹션의 고민은 Cloud라는 단어가 국내에서 화자 되기전, RIS라는 OS 원격 설치 서비스를 구축 할 때에도 심각하게 고민됐었다... "과연 어느 선까지 사전에 설치 해두는 것이, 유연성과 편의성 두마리 토끼를 다 잡을 수 있을까?"...라는.... 결국 그 당시에는 지금의 Chef나 Puppet만큼 완성도 있는 도구가 없다는 핑계를 대며 일정에 쫓겨 최대한 밀어넣기(?)로 쫑친 기억이....


아무튼 그 중, 가장 어정쩡하게 결론이 난 것이 어떤 방식의 Template를 사용하냐~였다. 이참에 그 사항에 대해 정리를 나름대로 해두고 싶어 일단 펜을...아니 키보드를 두드려 둔다. 물론 서두는 없다. 생각 나는대로.. 우선...


PaaS, SaaS... 당연히 밑바탕이 IaaS라 불리는 가상화 서버스가 "반드시" 필요 한 것은 아니다. 그러나 즉시성, 그리고, 자원의 효율적 활용(이 부분도 아직 갈길이 멀기만 하지만...), 유연한 인프라 관리 체계(이 말도 참 귀에 걸면 귀걸이인 마케팅용...)라는 진부한 이야기들 외에 본 글에서는 오로지 Physical 인프라와 비교해 상대적으로 설치/구축이 쉬운 점을 감안하여 "필수적"이라는 가정하에 이야기를 풀어 볼 생각이다... (물론 이 말에는, 가상화를 위한 Physical 인프라는 이미, 그리고 부족함 없이 구축되어 있다는 대전제가 깔려 있어야....쿨럭..ㅡ.ㅡ;;)


여기서 논점의 주제는 뭐냐.....


1) Pre-Installed Template 방식

; 가상머신 이미지(VDI :: Virtual-Machine Disk Image)에 원하는 서비스와 설정들을 사전에 설치 해두는 것이 유리하냐?


아니면,


2) OS-Only Template 방식

; 가상머신 이미지는 순수 OS만 설치된 이미지를 그대로 사용하고 나머지는 그때 그때, 필요한 서비스들을 동적으로 배포/설치/설정 해주는 것이 유리하냐?


뭐가 좀 더 좋은 선택이냐~ 하는 것....


음.. 경험상 개인마다, 또 환경마다 호불호가 갈렸던 것 같다. 

이후 말하고자 하는 것은... 일반적 또는 보편적으로 봤을때에는 "2) OS-Only Image" 방식을 사용하는 것이 유리하다...라는 것에 대해 이유를 정리 해볼려고 한다... 물론 전혀 현실성 없는 이야기로 보일 수도, 틀린 이야기일 수 도 있는 사견일뿐....



참 Template에 대한 용어 정리 부터 하자...


* 본 글에서 언급되는 "Template"이라 함은, Virtual Machine 생성에 공통적으로 복제/사용되는 Disk 이미지를 말한다. 통상적으로, RedHat/Ubuntu/CentOS/Windows 등과 같은 범용적으로 사용되는 OS레벨까지만 설치되어 있는 Disk Image 파일을 말한다. 


자 그럼, 1)번의 경우, Hadoop이든, Cassandra든 뭐가 됐던, 모든 S/W, 관련 패키지, 라이브러리, 데이타 모두 사전에 각각에 대해 Template이미지를 미리 만들어 두어야 한다. 잘 이해가 안된다고? 아래 [그림1]을 보라.



[그림1]


(그림 설명)

- 가운데 점선은 Template으로부터 사용자에게 배포되는 경계를 나타냄. 일반적으로 Chef/Puppet가 담당.


지원하는 OS는 3종류로 가정한다. SuSe/RedHat/Ubuntu...

그리고, 지원하는 서비스로는 Hadoop/MySQL/Cassandra/Tomcat/HAProxy/Apache/GlusterFS 이정도로 7가지가 서비스할 계획이라고 치자...

 

  • OS플랫폼 : 3가지
  • 서비스 종류: 7가지


따라서, 3*7=21 가지로서, 21개의 Template이미지를 사전에 확보/관리 되고 있어야 한다.

물론 생성 이후에 적용된 고유정보나, 설정은 Chef나 Puppet와 같은 Auto-Configuration 툴을 사용한다는 것을 전제로 한다.


Pre-Installed Template 방식의 장점은 아래와 같다.

(본 글과 연관이 있는 항목 위주)

  • 설치/설정 작업에 필요한 소요시간 제거/단축.
  • 요소 패키지의 버전 Upgrade등으로 인한 설치/설정 중 발생 가능한 오류 제거.
  • 설치/설정 과정을 거친, 즉 작동이 검증된 이미지임을 보장.

위와 같은 이점을 누릴 수 있다. 이중에서도 1)번 방식을 주장하는 사람들이 가장 강하게 내세우는 점은 첫 번째 서비스 배포에 소모되는 "시간단축"이었다.


자, Pre-Installed Template이미지가 가지는 단점이 있겠으나, 아래 내용은 2)번 방식인 "OS-Only Template"방식을 살펴보고 비교해보는 것으로 충분할 것이다.


2번) 방식을 도식화한 [그림2]을 보자.


[그림2]

그림 2는?

Virtual VMs 영역은 "Pre-Installed Template"방식과 다를게 없다. 그러나, 아래 쪽 Template영역은 아주 딸랑 3개로 심플하다.


OS-Only Template 방식의 장점을 정리하면,

  • 확보/관리 되어야할 Template이미지 대상 수가 현저히 적다.
  • Template 이미지에 대한 Version Upgreae, Patch 이슈가 현저히 적다.


오직, 3개만, 그것도 순수 OS레벨까지만 구축되어 있는 Template를 확보하면 된다. 그럼 각각의 서비스들에 대한 설치/설정과 관련된 일들은 어디로 가버린거냐? 당연히 파란점선 부분에 존재하는 Chef/Puppet가 담당하게 된다.


그럼, 단점은?
  • 모든 서비스가 VM생성 요청마다, 설치/설정 작업이 수반되어야 한다.
  • Chef/Puppet의 역할이 매우 중요해진다.
  • 설치/설정이 생성 요청때마다 발생하므로, 당연히 배포완료까지 소요되는 시간이 증가한다.

자, Pre-Installed Template 방식과, OS-Only Template방식을 간략히 살펴 보면 이와 같이 "일장일단"이 있다.


나름 가상화라는 파트를 접하면서 겪어오고 싸우기도 한 이 문제...

결국 논쟁의 핵심은(단, 국내 가상화 일선 현장에서이다.) 아래의 것들 이었다.

  • 배포 소요 시간
  • 관리의 복잡성
  • 배포 실패 가능성


이러한 이유로 인해, 99%는 1)번 Pre-Installed Template 방식을 도입/적용 하는 것으로 가닥이 잡힌다. 설령 그것의 단점을 인지하고 있더라도...(최근에야 Chef나 Puppet의 비중을 높이려는 시도가 많이 보이나 쉽지는 않은듯 하고...)


아무튼, 이것은 단기적으로 봤을때는 충분히 설득력이 있고, 또 실제로 효과도 만점이다.

서비스 로직과 Web-UI연동, 빌링, 요구사항에 부합하는 서비스가 정상적으로 사용가능한지가 단기적인 프로젝트상 Output으로서 중요하지, Provisioning과정에서 생기는 시행착오나, 오류로 시간을 허비할 수는 없는 환경도 한 몫을 하고 있는 것 같다.


그러나 장기적으로 봤을 때, 덮어 두었던 문제들이 일순간 터져버리는 지뢰밭을 키우는 꼴이 될 확률이 대단이 높다.


왜?~~


1) 배포 소요 시간. 이것 부터 살펴 보자...

실제로 Hadoop, Apache, Cassandra 등등이 미리 설치 했을 때에 비해, 그때 그때 Instant하게 설치가 된다면 분명히 시간은 더 걸리겠으나, 과연 얼마나 더 소모될까? 10분? 아니면 1시간?.... 별의 별 S/W를 다 동적 Provisoning해봤지만, 어지간 해서는 3분을 넘기는 Provisioning을 필요로 하는 서비스는 굉장히 드물다....

(여담이지만, 이미지 복사하는데 훨씬 시간이 많이 걸린다... 왜? "Backing-File" 방식을 사용하지 않고, 10GB짜리를 그대로 10GB 통으로 복사를 하니..... 차라리 이런 시간을 줄이는게 훨씬 비용효율적일 것이다.) 


2) 버전 관리의 복잡성

음... 이 문제는 기술적 의견차가 큰것도 있지만, 커뮤니케이션 부족이 한 몫을 한 것 같다.

이 부분을 지적한 사람들이 주로 주장하는 내용이, "apt-get이나, yum등의 버전이 수시로 바뀌고, 관련 conf 패턴도 바뀌어 문제가 많이 발생하더라. 설치 과정도 어렵고 하니 한번만 고생해서 만들어 두면 편하지 않느냐..." 이었다. 음... 틀린 말은 아니다. 그러나 미안한 말이지만, 이 부분은 전적으로 "관리 능력"의 부재로 인한 핑계일 뿐이다.

이유는, 이 이슈를 Pre-Installed Template방식에서는 더 Critical하게 접하게 될 이슈이기 때문인다. 무슨 말인지 이해가 잘 안된다고? 어느 서비스도 마찬가지겠지만, Cloud라는 이름이 붙은 서비스에서 특정 Version으로 Static하게 패키징된 Template으로 1~2년 서비스를 할 수는 있다고 치자. 패치/업그레이드가 다반사로 일어나는 Cloud관련 솔루션들인데, 그렇게 버텼다고 치자. 훗날 업그레이드는 어떻게 수행할 것인가? 안할 것인가? 한다면, 전체 다 할 것인가? 아니면 기존 이미지 27개(앞선 예를 기준)템플릿은 별개로 운영하고, 신버전의 동일 서비스의 Template이미지들을 또 추가하여 54개의 Template으로 운영할 것인가? 그러면 언제부터 사용한 서비스냐에 따라 기술지원 방식이나 메뉴얼, 대응팀 운영을 개별적으로 가져갈 것인가? 문제는 시간이 가면 갈수록 걷잡을 수 없는 악순환에 빠지고 만다.

결국 핵심 이야기는 이것이다. "현재 작은 문제로 인해 발생한 상황을 해결 하지 못하는데, 그 문제들이 누적되고 쌓인 미래의 상황은 해결이 가능할 것인가?" 하는 것이다.


아래 [그림3]을 보면서 이 항목에 대해서는 마무리 하자.

개발에서도 통용되는 오래된 그림이고 이야기이다. 버그나, 이슈에 대한 패치의 양과 주기에 대한 비교 그림이다.

왼쪽그림은 패치 주기가 길고, 한번에 패치하는 버그/이슈의 양이 많다.

반면에, 오른쪽은 패치 주기가 짧고, 버그/이슈의 양도 적다. 그만큼 한번의 패치 작업 때 변경되는 코드 양이 작고, 만에 하나 발생할 잠재위험(Risk)도 작다.

어느 것이 유리한가? 답은 굳이 말하지 않아도 자명할 것이다.


      

[그림3]


3) 배포 실패 가능성.

음.. 이부분은 2)번 "관리의 복잡성"의 내용과 중복되는 부분이 많다.

실제 Pre-Installed Template방식에 비해, OS-Only Template 방식이 가지는 핸디캡이기도 하다. 다시말해 Chef나 Puppet와 같은 Auto-Configuration 툴의 역할과 비중이 증대되어 미션크리티컬한 시스템 수준으로 올라가게 된다. 모든 것을 배포하고, 설정하고, 조율하고, 심지어 모니터링/관제 까지.. 그만큼 Auto-Configuration 시스템의 운영/관리가 철저히 되어야 하고, 만에 하나 장애나 오동작시, 전체 시스템에 어떠한 피해가 올지 모를 양날의 검과 같은 존재다. "잘 쓰면 이롭지만, 잘 못 쓰면 해가 되는..."

이러한 툴들이 수행되는 과정에서 발생 가능한 오류는 S/W버전의 상이함, 배포 로직상의 오류, 툴 자체적인 SPOF구조, 등이 대다수다. 심지어 일부 Network구간 단절로 Configuration 시스템은 멀쩡함에도 배포 실패가 발생할 수 있다. 그러나 이러한 Risk는 Pre-Installed Template방식도 동일하게 내포하고 있는 문제이다. 단지, OS-Only Template방식에 비해, 수행 과정이 적다 보니, 발생 가능성이 상대적으로 낮을 뿐이지... 따라서 이 이슈는 어떤 방식이든 "관리/운영 능력의 문제"일 뿐이다. 고민은 하되 호불호를 따질 필요는 없을 것이다.



정리~


좀더 적합한 것은 존재 하난 정답은 아직인 것 같다. 적어도 국내 일선 현장에서는...

다만, 지극히 개인적으로~ "OS-Only Template"이 보편적인 방식으로 자리 잡기를 희망할 뿐...


장기 이식 의학 분야로 이야기를 빗대어 보자면,


Pre-Installed Template 방식은 간이식, 콩팥이식, 심장이식, 안구이식 등과 같이 특정 장기(Pre-Installed)를 확보하여 이식(배포)하는 방법이라면,


OS-Only Template 방식은, 줄기세포(단순 OS플랫폼)만 있으면, 어떠한 장기나 신체부위도 재생해낼 수 있는 방식이라고 생각하면 쉬울 것 같다. 단, 중간에서 재생(배포)에 필요한 미세하고 정교한 작업을 수행하는 의사(Chef/Puppet류의 툴들)의 뛰어난 역량이 수반되어야 할 것 같다.


"선택은 자유다............."


(여담) 그런데 이이야기를 깡그리 무너뜨릴 수 있는 것은, "왜? 여러 OS플랫폼에 똑같은 서비스를 사용해요? 하나만 정해서 서비스 해요~!!" 라고 하면....ㅡ.ㅡ;;


이상,,, 할 일 없는 일요일 저녁... 머리속에서만 맴돌고 정리가 안되던, 그래서 더욱 주관적인 이야기.... 글로 끄적여도 여전히 만족할만큼 정리는 되지 않았으나, 대충 어렴풋했던 그림도 서너장 나왔고, 앞으로 계속 다음어 나가야 할 글임을 다시금 되뇌이며 오늘은 이만....




(별첨) Chef/Puppet ?????


이러한 Auto-Configuratio툴의... (철학까지는 아니라도) 컨셉에 대해 내 의견과 다른(누가 맞는 건지는 아직 모르니...) 이들이 많아 내 생각도 이참에 간략히 메모해 두고, 경험이 쌓이고 생각이 조금씩 늘어나면 이 것도 수정 보완 해야 할 것 같다.


Chef/Puppet류의 툴들이 말하는 Configuration.......

과거,, 또는 최근 얼마전까지의 Configuration은 아닐 것이다. 다시 말해, "설정"이라는 좁은 의미로 사용된 것이 아닌, "구성"이라는 넓은 의미로 봐야 하는 것이 적절 할 것이다.

"구성"... 특정 머신이나 특정 S/W를 구성하는 것만이 아닌, "Service"에 대한 모든 제반 사항을 "구성"한다고 봐야 한다. 그 목표하는 시스템이 비록 1대일지라도, 혹은 수천대 일지라도.. 둘다 동등한 "구성"이다.. 적어도 Cloud라는 아직까지는 실체가 무엇인지도 명확치 않는 트렌트하에서 Chef/Puppet에서는.... 


Posted by 사랑줍는거지
,

데스크톱 가상화 : VDI로 도약하기

2010.10.12

우아하며 쉽게 관리할 수 있는 데스크톱 인프라에 대한 유토피아적인 비전은 데스크톱 시대의 개막과 함께 IT 주위를 맴돌아 왔다. 히드라와 같은 데스크톱을 길들이기 위한 시도는 많았으나, 어느 것도 보편적인 솔루션은 제공하지 못해왔다. 마이크로소프트 터미널 서비스(Terminal Service), 시트릭스 젠앱(XenApp)을 비롯한 수많은 기업들이 나름대로의 시장은 확보했으나, 데스크톱 구원에 대한 탐구는 계속되고 있다.

 

가장 최근의 유망주  : VDI

단순하게 말하면, VDI(Virtual Desktop Infrastructure)는 하이퍼바이저 상에서 구동하는 사용자당 한 개의 데스크톱 가상머신에 지나지 않는다. 서버 가상화와 마찬가지로, 각 데스크톱 가상머신에는 RAM, 디스크, 그리고 입출력 자원이 할당되고, 운영체제 전체 설치본은 가상 디스크에 저장된다.

 

사용자는 마이크로소프트의 RDP(Remote Desktop Protocol)나 시트릭스의 ICA(Independent Computing Architecture) 같은 원격 디스플레이 프로토콜을 사용해서 데스크톱 가상머신과 상호작용한다. 클라이언트는 대개 디스크가 없는 저성능 씬 클라이언트 시스템으로, VDI 인프라에 연결하는 것 외에는 하는 것이 거의 없거나 어떤 작업도 하지 않는다.

 

VDI를 비롯한 다른 서버 기반 데스크톱 컴퓨팅 솔루션의 결과, 핵심 기능성, 그리고 모든 소중한 기업 데이터가 수 많은 칸막이 사무실이나 몇 Km나 떨어져 있는 원격지 사이트에 멀리 그리고 폭넓게 퍼져있는 것이 아니라 데이터센터 내부에 들어가게 되었다.

 

데스크톱을 중앙 집중화시킴으로써, 관리와 보안이 간단해졌고 결함 있는 전원 공급장치, 하드 드라이브 등의 교체 같은 기본적인 데스크톱 유지보수 필요성이 없어졌다. 전력 소비도 감소되었고, 어떤 경우에는 모든 팻(Fat) 클라이언트 시스템과 250와트의 전원 공급장치를 제거한 덕분에 밀집된 사무실 공간의 냉각 비용이 급격하게 줄었다. 긍정적인 면이 상당하다.

 

VDI 세부사항에 숨어있는 골칫거리들

하지만, VDI에도 확실히 단점이 있다. 이런 문제 중 몇 가지는 다른 서버 기반 데스크톱 컴퓨팅 솔루션에서 찾아볼 수 있으며 VDI 구현에도 영향을 준다.

 

그 중에서도 가장 중요한 문제부터 살펴보기로 하자.

 

사용자의 수용도와 전반적인 성능. 각각의 VDI 인스턴스(Instance)는 문서 작성, 이메일 작성, 또는 스프레드시트 공식 실행 같은 상대적으로 평범한 작업을 수행할 때는 빠르고 뭐든지 척척 해내지만, 플래시 애플리케이션, 비디오, 또는 다른 멀티미디어 애플리케이션 같은 리치 콘텐츠와 맞닥뜨리면 상당히 영향을 받을 수 있다. 이는 대체로 VM의 성능보다는 데스크톱 디스플레이 전송 프로토콜 때문이지만, 바로 그 점 때문에 문제 해결이 더 어려워졌다. 사용자 수용도는 아주 공개적인 문제가 생길 수 있으며, 이 문제가 발생하면 어떤 대형 프로젝트라도 종말을 고하는 경우가 많다.

 

이 문제에 대한 솔루션은 비용이 많이 들 수 있다. 몇몇 공급업체는 서버와 클라이언트 측의 노력을 결합해서 디스플레이 프로토콜과 함께 오디오와 비디오 스트림을 전송하여, 클라이언트 단에서 일치시키고 클라이언트의 처리 능력을 사용해서 비디오를 렌더링(Rendering)한다. 그 결과 훨씬 더 깔끔한 재생을 할 수 있으나, 늘어난 작업부하를 처리하기 위해서 더 강력하고 비싼 씬 클라이언트가 필요하다.

 

그런 솔루션은 표준 비디오 재생에 대해서는 잘 동작하지만, 플래시 비디오나 플래시 애플리케이션과는 문제가 남아있다. VDI나 표준 RDP 프로토콜을 사용하고 있는 다른 서버 기반 데스크톱 컴퓨팅 솔루션의 성능을 테스트하기는 쉽다. 그저 마이크로소프트 RDC(Remote Desktop Connection: 원격 데스크톱 연결) 클라이언트를 사용해서 서버나 데스크톱 시스템 연결한 다음에, 유튜브를 보기만 하면 된다.

 

100Mbps 이상의 LAN을 사용하고 있다면 재생이 상당히 잘 되겠지만, 그 이하에서는 한마디로 그럴 가능성이 없다. 일반적으로 말해서, RDP 접속을 경유해서 비디오를 보기 위해서는 3.5Mbps의 지속적인 대역폭이 필요하다.

 

대역폭에 대한 우려는 WAN 회선(높은 지연편차 및 낮은 대역폭이라는 고전적인 시나리오)을 통한 데스크톱 세션 제공 같은 어떤 형태의 서버 기반 데스크톱 컴퓨팅에 대해서도 문제를 일으킬 것이다. USB 기기에 대한 인쇄와 적절한 매핑(Mapping)도 문제가 많다. 이런 문제는 도구와 예산을 제대로 조합하기만 하면 정리할 수 있고, VID 고유의 문제도 아니지만 VDI 계획 단계에서는 고민할 필요가 있다.

 

VDI 고유의 문제 : 스토리지

다른 문제들은 전적으로 VDI 고유의 문제이다. 가장 중요한 첫 번째 문제는 스토리지 요구조건이다. 몇몇 VDI 실행 환경은 다른 VM과 마찬가지로 모든 데스크톱 시스템이 반드시 가상 디스크를 가질 것을 필요로 하고 있다. 데스크톱 가상머신당 8GB나 10GB를 고려하고 있다면, 이를 예상 VDI 사용자 수로 곱하면, 곧 바로 스토리지가 고가의 문제가 돼버린다.

 

또한, 각각의 가상머신은 다른 데스크톱 시스템처럼 개별적으로 관리되어야만 하는 섬이므로, VDI는 데스크톱 소프트웨어 관리 요구조건을 줄여주기 위해서 거의 하는 일이 없다는 사실도 명심하기 바란다. 이는 업데이트를 배포하고, 소프트웨어를 설치하거나, 변경을 하기 위해서는 서드파티 툴을 사용해야 함을 의미한다.

 

그리고 그 다음에는 가격도 문제다. 한편으로는, VDI가 기존 가상화 인프라를 활용하므로, 다른 서버 기반 데스크톱 솔루션보다 초기 하드웨어 비용을 더 낮춰줄 가능성도 있어 보인다. 하지만, 일단 VDI에 필수적인 여러 단계의 소프트웨어 라이선싱 계층을 하나하나 벗겨나가다 보면, 결국에는 마찬가지라는 사실을 알게 될 것이다.

 

선택한 솔루션에 따라서, ROI는 이미 저 멀리 가버린 상태에서 기존의 팻 데스크톱 클라이언트 시스템 보다 더 많은 비용을 데스크톱 VM별로 지불하게 되고 말 수도 있다. 어떤 형태의 VDI이건, 뛰어들기 전에 이 모든 숫자들을 계산해 보는 것이 극히 중요하다. 씬 클라이언트 비용, 구현 비용, 라이센싱, 그리고 기존 가상 인프라의 확장 비용들을 감안하라.

 

VDI 대 터미널 서비스

VDI와 기존의 마이크로소프트 터미널 서비스 간에는 명확한 평행선을 그을 수 있다. 이 두 가지는 다수의 데스크톱 세션을 한 대의 서버나 서버 세트 상에 둘 수 있으며 세션을 동일한 씬 클라이언트에게 전달하기 위해서 같은 프로토콜을 사용한다. 두 가지 모두 중앙집중형 관리 도구를 제공한다. 하지만, 유사성은 거기까지다.

 

터미널 서비스 환경에서는 서버에 대한 모든 사용자 세션을 서버 운영체제에 둔다. 이는 윈도우 서버 2003이나 윈도우 서버 2008에 대한 한 개의 인스턴스만이 베어 메탈(Bare-metal) 서버에 설치되고, 모든 사용자가 해당 서버 인스턴스에 로그인 한다. 개개 사용자 세션은 자체 데스크톱이 있는 것처럼 표시되지만, 해당 특정 서버 상에서 다른 모든 세션들과 함께 구동한다.

 

이 시나리오의 이점은 확장성에 있다. 일반적으로 말해서, 물론 애플리케이션 세트에 따라서 다르기는 하겠지만 아마도 한 대의 물리적인 서버에 VDI 세션보다 더 많은 수의 터미널 서버 세션을 밀어 넣을 수 있을 것이다. 한편, VDI 환경에서는 간단하게 데스크톱 가상머신의 자원을 정의하기만 하면, 어떤 사용자 세션의 자원에 대해서도 신속하고 확실한 제한을 둘 수 있다.

 

VDI 실행 환경에서는 서버가 전체 운영체제가 아니라 하이퍼바이저를 구동하고 있으며, 몇 개의 데스크톱 가상머신을 호스팅하고 있다. 그 결과, 각 방법이 여러 개의 데스크톱 세션을 동일한 서버에 두기는 하지만, 그런 세션들의 관리성은 크게 다르다.

 

예를 들어, 터미널 서비스에서는 가상머신을 스냅샷(Snapshot)하듯이 세션을 스냅샷할 수 있는 방법이 없으며, 활성 세션을 한 서버에서 다른 서버로 이전시킬 수 있는 방법도 전혀 없다. 이는 유지보수를 위해서 해당 서버를 다운시키기 위해서는, 모든 사용자가 반드시 로그오프 해야만 함을 의미한다.

 

관리성에서 확연한 차이 보이는 VDI

VDI에서는 해당 서버 성의 모든 활성 데스크톱 세션을 서버 팜의 다른 서버로 중단 없이 이전시킬 수 있다. 통상 이 모든 VM을 호스팅 하는 서버는 누구도 알아차리지 못하게 유지보수를 위해 다운시킬 수 있다.

 

실제로, 어떤 고급 가상화 인프라에 대해서도, 단 한 개의 애플리케이션을 오프라인으로 만들거나 단 한 명의 사용자도 방해하지 않은 채, 전체 물리 서버 기반 구조를 완전히 재구축할 수도 있다.

 

더 나가서, 제대로 구현된 VDI 솔루션에서는 부하 분산도 기본적으로 제공된다. 한 개 이상의 데스크톱 VM이 한 호스트 시스템 상의 자원을 많이 사용하고 있다면, 그 시스템의 다른 VM들을 순식간에 다른 물리 호스트로 이전해서, 모든 데스크톱이 돌아가기 위해서 충분한 자원을 확실하게 가질 수 있게 할 수 있다. 기존 터미널 서버 환경에서는 이것이 불가능하다. 한 개의 대형 사용자 세션이 어떤 자동 해결 방안도 없이 동일 서버 상의 다른 세션에 부정적인 영향을 줄 수 있다.

 

하지만, 터미널 서비스도 한 가지 커다란 관리 상의 장점이 있다. 호스트 서버에 대한 변경 사항을 모든 사용자 세션에서 사용할 수 있다. 애플리케이션 설치가 상당히 간단해지고 글로벌한 수정 작업도 상대적으로 쉽다.

 

VDI에서는 항상 그렇지는 못하다. 데스크톱 가상머신의 배포 방식에 따라, 업데이트나 변경을 위해서 각각을 일일이 수작업으로 해야만 하거나, 서드파티 관리 도구를 사용하거나,  또는 데스크톱 가상머신 템플릿을 작동시켜서 수정 작업을 한 다음에, 템플릿을 저장해야 할 필요가 있을 수 있다. 마스터 템플릿에 연결된 데스크톱 가상머신은 사용자가 다음에 로그인할 때 변경 사항이 반영된다.

 

그렇기는 하지만, 터미널 서비스에 비해 VID의 애플리케이션 처리는 커다란 장점 중 한가지로 작용한다. 많은 애플리케이션이 터미널 서비스 환경에서는 동작을 무조건 거부한다. 다른 애플리케이션은 제한된 기능만을 제공하거나 터미널 서버 환경에서는 해당 애플리케이션 공급업체의 지원을 받지 못할 수도 있다. 이는 어떤 터미널 서버 기반의 인프라에서도 실질적인 문제로 대두되고 있지만, VDI에서는 문제가 아니다.

 

VDI는 사용자 별로 한 개의 전용 데스크톱 인스턴스를 구현해서, 운영체제 수준에서 실제 데스크톱과 분간할 수 없다. 팻 클라이언트 상에서 구동되는 어떤 애플리케이션도 VDI VM 상에서 구동된다 (비디오나 그래픽 성능에 대해서는 약간의 예외를 두고). 바로 이것이 일부 조직이 터미널 서버 대신에 VDI를 밀고 있는 중요한 이유이다.

원문 : http://itworld.co.kr/news/62797/%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%86%B1+%EA%B0%80%EC%83%81%ED%99%94+:+VDI%EB%A1%9C+%EB%8F%84%EC%95%BD%ED%95%98%EA%B8%B0 

Posted by 사랑줍는거지
,