2010년 8월 6일 금요일

마이크로소프트의 가상화 솔루션

 클라우드(Cloud)에서 가상화 기술은 필수적입니다. 다음은 각종 마이크로소프트 가상화 기술에 대한 전반적인 정리 내용입니다. 마이크로소프트는 데스크톱(일반 사용자)에서부터 데이터센터(서버)를 모두 커버할 수 있는 다음과 같은 가상화 기술을 제공하고 있습니다. 

  • 서버 가상화(Server Virtualization)
  • 프리젠테이션 가상화(Presentation Virtualization)
  • 응용 프로그램 가상화(Application Virtualization)
  • 데스크톱 가상화(Desktop Virtualization) 

     

    서버 가상화

    서버 가상화는 1대의 물리적인 서버를 여러 대의 가상 머신으로 나눠쓰는 것을 의미하며, Hyper-V가 있습니다. 서버 가상화는 데스크톱 기능(USB, 그래픽 가속, 오디오)들을 은 대부분 제공하지 않습니다. 서버 가상화 환경에선 현재 지원중인 서버 운영 체제, 클라이언트 운영 체제가 모두 설치 및 동작 가능합니다.  

    프리젠테이션 가상화

    프리젠테이션, 즉 화면에 보여주는 부분에 대한 가상화입니다. 원격 데스크톱 서비스가 여기에 해당됩니다. 컴퓨팅 자원으로 다른 곳에 존재하는 서버의 자원을 사용하는 것입니다. 사용하는 컴퓨터에서는 입력을 위한 마우스, 키보드, USB, 출력을 위한 모니터, 사운드 정도만 처리합니다. 큰 서버에 여러명의 사용자가 접속해서 서버의 자원을 쓰는 방식입니다. 원격 데스크톱 연결(Remote Desktop Connection)이 클라이언트로, 원격 데스크톱 서비스가 서버 모듈 역할을 합니다. 사용하는 클라이언트 컴퓨터의 하드웨어는 고사양이 아니어도 상관없습니다. 모든 하드웨어 자원은 서버의 것을 사용하므로, 클라이언트의 하드웨어 사양에 따라 Thin Client, Ultra-Thin Client, Kiosk라고 부르기도 합니다.

    프리젠테이션 가상화에 포함된 기술중 하나는 바로 RemoteApp이라는 기술입니다. RemoteApp는 개인의 데스크톱에서 서버에서 실행중인 특정 응용 프로그램을 보여주기만 하는 것입니다. 원격 데스크톱 클라이언트가 서버의 데스크톱 전체를 다 보여주는 것이 아니라, 실행하는 프로그램의 화면만 보여주는 것입니다. 모든 자원을 서버의 것을 이용하므로, 중앙 관리라는 장점도 있지만, 단점도 존재합니다. 대표적인 것이 바로 그래픽 처리에 대한 부분입니다. 보통 서버의 그래픽 리소스는 좋은 것을 사용하지 않습니다. 때문에 3D 동영상, Windows Aero UI 등 프리젠테이션 가상화를 위한 그래픽에 대한 다양한 지원이 미비합니다.  

    이러한 부분을 개선하고자, Windows Vista, Windows 7의 프리젠테이션 가상화에서는 서버 접근시, 그래픽에 대한 처리를 서버 자원을 사용하지 않고, 클라이언트의 자원을 사용하는 기술이 탑재되었습니다. 해당 기술은 프리젠테이션 가상화를 접근하는 프로토콜인 RDP(Remote Desktop Protocol)의 향상으로 가능해졌습니다.  

    그래픽에 대한 클라이언트의 처리로 인해 클라이언트가 높은 수준의 사용자 경험(UX)를 가질 수 있게 됨은 반가운 일이나, 여전히 제약사항이 있었습니다. Thin Client나 NetBook과 같은 저사양의 그래픽 하드웨어 장치를 사용할 경우, 그리고 Windows Vista, Windows 7이 아닌, Windows XP인 경우에는 프리젠테이션 가상화를 통해 모든 사용자의 요구 사항을 처리할 수가 없습니다. 그래서 RemoteFX라는 기술은 서버에 고사양의 그래픽 카드를 설치하고, 접근하는 클라이언트에서 서버의 그래픽 자원을 나눠쓰는 기술입니다. 서버 기술과 RDP의 향상으로 가능해진 기술로, 이제 서버의 자원만으로도, 모든 클라이언트의 요구 사항을 다 처리해줄 수 있게 되었습니다.

     

    데스크톱 가상화

    서버 가상화와 유사한 기술입니다. 서버 가상화는 서버 하드웨어에서 가상화 모듈을 사용한다고 생각한다면, 데스크톱 가상화는 일반 사용자 컴퓨터에서 가상화 기술을 동작시키는 것입니다. Microsoft에서는 이를 Virtual PC, VMWare에서는 Workstation이란 제품으로 내놓고 있습니다. 모든 자원은 클라이언트의 컴퓨터에서 사용되며, 한대의 컴퓨터를 여러대로 나눠쓰는 것은 서버 가상화와 동일합니다.(기반 기술의 아키텍쳐적 차이는 있겠지만, 사용자가 보기엔 동일해보입니다.) Windows 7을 사용하면서, 호환성 때문에 Windows XP나 타 운영 체제를 개인 컴퓨터에서 사용하는 것은 모두 데스크톱 가상화라고 부를 수 있습니다. 데스크톱 가상화나 서버 가상화나 동작중인 가상 머신들간, 또는 가상 머신과 물리적인 머신간은 논리적으로 고립되어져 있기에, 정상적인 컴퓨터의 교신 방법(네트워킹)을 제외하곤 상호 교신할 수 없습니다.(이를 가상화의 주요 원칙인 보안 고립이라고 부릅니다.)

    데스크톱 가상화 사용시, 클라이언트에 사용하는 가상 머신의 이미지, 또는 설정을 중앙에서 통제합니다. 데스크톱 가상화의 중앙 관리를 위한 솔루션이 바로 Microsoft Enterprise Desktop Virtualization(MED-V)이며, MED-V는 EA/SA 고객분들의 혜택인 MDOP 글에 포함되어져 있습니다. MED-V를 사용하면 사용자가 데스크톱 가상화를 사용할 때, 사용하는 이미지에 대한 중앙 관리, 설정에 대한 반영 등을 정책화하여 관리가 가능해집니다.

     

    응용 프로그램 가상화

    응용 프로그램 가상화 - 가상화의 또다른 측면 포스팅 글에서 언급된 것처럼 가장 개념을 잡기 어렵다고, 그리고 타 가상화와 혼돈되는 것이 바로 응용 프로그램 가상화입니다. 응용 프로그램 가상화는 응용 프로그램과 운영 체제를 분리해놓았다고 생각하면 됩니다. 지금까지의 모든 응용 프로그램은 사용을 위해서는 실제 컴퓨터(물리적 데스크톱이던, 가상 머신이던)에 직접 설치를 해야 합니다. 이 설치시 관련된 파일이 하드 디스크에 저장되고, 프로그램 관련 정보가 운영 체제에 기록되게 됩니다.(레지스트리가 대표적) 응용 프로그램의 파일만 슬쩍 다른 컴퓨터로 복사한다고 응용 프로그램이 동작하지 않는 것도 여기에 해당됩니다.  

    Microsoft의 응용 프로그램 가상화인 Microsoft Application Virtualization(MAV)는 데스크톱 가상화의 MED-V와 마찬가지로, MDOP 패키지에 포함되어져 있습니다. MAV는 크게 3가지의 모듈로 구성되어져 있습니다. 서버, 클라이언트, 그리고 시퀀서(Sequencer)…  

      

    응용 프로그램이 아무 컴퓨터에서나 정상적으로 동작하려면, 응용 프로그램 실행 및 설치와 관련된 정보를 모두 가지고 있어야 합니다. 응용 프로그램 가상화에서 사용할 응용 프로그램의 정보를 수집하는 프로그램을 바로 시퀀서라고 합니다. 응용 프로그램 가상화 기술을 통해, 응용 프로그램을 사용하기 전, IT 관리자는 사용자들이 사용하고 있는 운영 체제가 설치된 컴퓨터(물리적 데스크톱이던, 가상 머신이던)에서 해당 응용 프로그램을 한번 설치하는 작업을 해봐야 합니다. 설치 작업을 모니터링하는 역할을 하는 것이 바로 시퀀서입니다.

    시퀀싱을 할 경우, 응용 프로그램 설치 파일이 행하는 모든 작업(파일 복사, 레지스트리, 서비스 등록, 기타 등등)을 모두 모니터링하여, 하나의 배포 가능한 패키지형태로 만들어줍니다.  

    위의 그림은 Office 2010 32비트 버전에 대해서 Windows 7용으로 시퀀싱한 결과 파일입니다. 확장자가 OSD인 파일은 각 응용 프로그램에 대한 위치 및 버전 정보등이 담겨있으며, 앞서 설명드린, 파일 및 레지스트리, 각종 프로그램 정보는 용량이 큰 SFT 파일로 저장되게 됩니다. 각각의 시퀀싱된 프로그램은 MAV 서버에 등록되고, 등록시 부여한 권한이 있는 사용자만, 사용할 수 있습니다. 

     

    권한이 있는 클라이언트가 MAV Server에 접근을 하게 되면, 앞서 보신 SFT 파일이 다 내려오는 것이 아니라, 사용자의 권한 여부에 따라 OSD 파일을 확인해서, 마치 프로그램이 설치된 것처럼, 아이콘을 로컬에 만들어주게 됩니다. MAV Client에는 응용 프로그램에 대한 정보가 아닌, MAV Server의 이름만 입력하면 됩니다.



  • 클라이언트가 해당 프로그램을 클릭하게 되면, 그제서야 SFT 파일이 클라이언트로 내려오게 됩니다. (이 내려오는 과정을 스트리밍(Streaming)한다고 표현합니다. 이에 응용 프로그램 가상화를 스트리밍 방식이라고 이야기하죠) 많이들 물어오시는 것이, 저 큰 파일이 다내려가면, 최초 실행시 너무 오래걸리는 것 아니냐라는.. 그러한 이슈를 해결하기 위해 FB(Feature Block)이라는 컨셉을 가지고 있습니다. 시퀀싱시, 프로그램을 한두번정도 실행후 많이 사용하는 기능들을 사용해보라는 권장사항이 있습니다. 이는 최초 실행과 사용 기능에 대한 필요 부분을 미리 파악하여, 그부분을 먼저 클라이언트로 스트리밍하여, 프로그램을 실행한 후, 나머지 부분을 백그라운드에서 스트리밍하게 됩니다.



    MAV Client를 설치하게 되면, 안보이던 Q드라이브가 나오고, 접근도 불가능한 것을 볼 수 있습니다. 응용 프로그램 가상화 모듈이 사용하는 것으로써, SFT 파일을 스트리밍받아, 이를 담아두는 드라이브라고 생각하면 됩니다. 사용한 SFT 파일은 응용 프로그램 종료시, 로컬에 캐시해둘 수도 있고, 사용시마다, 다운로드받게 할 수 있습니다. 당연히 중앙에서 관리하기에 응용 프로그램이 업그레이드된 경우엔 중앙에서 새로운 SFT 파일을 만들거나, 업그레이드 파일을 추가하여, 새 버전으로 업데이트시킬 수 있습니다. 그렇다면 응용 프로그램 시퀀싱 패키지는 하나로 모든 운영 체제를 다 커버할 수 있을까요? 그렇진 않습니다. 이미 언급드린 것처럼, 시퀀싱용 데스크톱에서 해당 운영 체제에 맞게 만들어 놓은 것이므로, 개별 운영 체제별로 별도의 시퀀싱 절차를 밟아야 합니다.

     

    [출처: TechNet Blogs > 꼬알라의 하얀집... 그 두번째 이야기~ > Microsoft Virtualization 101]
  • 댓글 없음:

    댓글 쓰기

    이 블로그 검색

    팔로어

    블로그 보관함