2010. 2. 19. 14:23
Microsoft VDI(Virtual Desktop Infrastructure) 개요 Virtualization2010. 2. 19. 14:23
Microsoft VDI(Virtual Desktop Infrastructure) 개요
윈도우 서버 이전 버전에서 터미널 서비스는 다중의, 그리고 동시에 사용자 세션을 호스트 하는 용도로 사용되었다. Windows Server 2008 R2가 되면서 터미널 서비스는 원격 데스크톱 서비스라는 이름으로 변경되었다.
시나리오
개인용 가상 데스크톱 – 관리자에 의해 사용자에게 영구적으로 지정된 가상 머신. 이러한 구성은 ADDS(Active Directory Domain Services)에 저장된다. 개인 가상 데스크톱은 사용자가 관리자 권한이 필요한 전용 가상 머신을 필요로 할 때 사용한다. (예: 응용 프로그램 설치)
가상 데스크톱 풀 – 동일하게 구성된 가상 머신들의 그룹. 이 가상 머신들은 Microsoft VID 시스템에 의해 사용자에게 임시로 할당된다. 관리자가 풀의 가상 머신을 구성한다.
Microsoft VDI 배포에 필요한 역할 서비스 및 기술
원격 데스크톱 연결 브로커 (RD Connection Broker)
이 역할 서비스의 주 목적은 아래와 같은 사용자 접속을 적절한 목적지(예: 전용 가상 머신)로 연결(Broker)시켜주는 역할을 한다.
- 사용자가 원격 접속을 하려고 하는 가상 머신의 식별
- 원격 데스크톱 가상화 호스트 서버와 통신해 원격 접속을 위한 가상 머신 준비
(예: 저장된 상태에 있는 가상 머신의 시작)
- 원격 데스크톱 가상화 호스트 서버와 통신해 가상 머신의 IP 주소 쿼리. 이 IP 주소는 리디렉션 모드로 실행 중인 원격 데스크톱 세션 호스트 서버로 반환된다.
- 가상 데스크톱 풀 시나리오에서 사용자 세션 모니터링. 풀에 기존 세션이 있는 사용자는 해당 가상 머신으로 리디렉션 된다.
리디렉션 모드로 실행 중인 원격 데스크톱 세션 호스트 (RD Session Host) 서버
리디렉션 모드로 실행 중인 원격 데스크톱 세션 호스트 서버는 RDP 클라이언트의 접속을 가상 머신으로 안전하게 리디렉션하는 역할을 한다. 리디렉션 모드로 실행 중인 원격 데스크톱 세션 호스트 서버는 사용자가 /admin 스위치를 통해 관리자 세션 연결을 요구하지 않는 이상 대화형 사용자 세션을 허용하지 않는다.
사용자가 가상 머신을 요청하면, 리디렉션 모드로 실행 중인 원격 데스크톱 세션 호스트 서버는 원격 데스크톱 연결 브로커 서버를 쿼리 한다. 원격 데스크톱 연결 브로커 서버는 사용자에 대한 가상 머신을 검색하고 해당 가상 머신의 IP 주소를 리디렉션 모드로 실행 중인 원격 데스크톱 세션 호스트 서버에 돌려준다. 그러면, 리디렉션 모드로 실행 중인 원격 데스크톱 세션 서버는 RDP 클라이언트의 접속을 가상 머신의 IP 주소를 이용해 리디렉션 한다.
원격 데스크톱 연결 브로커 역할 서비스와 리디렉션 모드의 원격 데스크톱 세션 호스트 서버를 그림에서와 같이 물리적으로 동일한 컴퓨터에 두는 것을 권장한다. 그러나, 리디렉션 모드로 실행 중인 원격 데스크톱 세션 호스트 서버와 원격 데스크톱 연결 브로커 역할 서비스를 분리하여 운용하는 방법 또한 지원된다.
원격 데스크톱 가상화 호스트 (RD Virtualization Host)
원격 데스크톱 가상화 호스트는 Windows Server 2008 R2에서 포함된 원격 데스크톱 서비스 역할이다. 원격 데스크톱 가상화 호스트는 개인용 가상 데스크톱이나 가상 데스크톱 풀에 사용되는 가상 머신들을 제공하기 위한 Hyper-V 역할과 통합된다.
원격 데스크톱 가상화 호스트 서버는 다음과 같은 기능을 가진다.
- 가상 머신의 세션을 모니터링하고 이 세션들을 원격 데스크톱 연결 브로커 서버로 전달
- 원격 데스크톱 연결 브로커 서버 요청 시 가상 머신에 대한 원격 데스크톱 접속 준비
원격 데스크톱 가상화 호스트 서버가 위 기능들을 수행하기 위해서는 게스트 운영체제에 원격 데스크톱 가상화 호스트 서버에게 권한을 주는 설정이 되어 있어야 한다. 아래 내용을 참고하여 가상 머신을 준비한다.
[참고] 원격 데스크톱 서비스를 위한 게스트 운영체제(가상 머신) 준비 절차
1. IP 설정 및 도메인 참가
2. 원격 데스크톱 연결 활성화
① 시스템 속성 -> 원격 탭으로 이동
② 네트워크 수준 인증을 사용하여 원격 데스크톱을 실행하는 컴퓨터에서만 연결 허용 선택 -> 확인
3. 로컬 원격 데스크톱 사용자 그룹에 가상 머신을 사용할 사용자 계정 추가
① 컴퓨터 관리 -> 로컬 사용자 및 그룹 -> 그룹
② Remote Desktop Users -> 속성 -> 추가 -> 도메인 사용자 계정 추가
4. 원격 데스크톱 서비스에 대한 원격 RPC 허용
① 시작 -> 실행 -> REGEDIT(레지스트리 편집기)
② HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer 이동
③ AllowRemoteRPC -> 편집 -> 1 로 수정 -> 확인
5. 원격 서비스 관리 방화벽 예외 설정
① 시작 -> 제어판 -> Windows 방화벽
② Windows 방화벽을 통해 프로그램 또는 기능 허용
③ 원격 서비스 관리 체크 -> 확인
6. 가상 머신에 RDP 권한 추가
원격 데스크톱 가상화 호스트 서버 컴퓨터 계정에 가상 머신에 대한 RDP 권한을 부여한 후 원격 데스크톱 서비스를 다시 시작한다. 이는 원격 데스크톱 가상화 호스트 서버의 컴퓨터 계정이 가상 데스크톱 풀의 각 가상 머신에 대해 다음 권한들이 필요하기 때문이다. WINSTATION_QUERY, WINSTATION_LOGOFF, WINSTATION_DISCONNECT
① 관리자 권한으로 명령 프롬프트 실행
② 다음 명령을 순차적으로 실행
• wmic /node:localhost RDPERMISSIONS where TerminalName="RDP-Tcp" CALL AddAccount "<도메인>\\<원격 데스크톱 가상화 호스트 서버 컴퓨터 계정>$",1
• wmic /node:localhost RDACCOUNT where "(TerminalName='RDP-Tcp' or TerminalName='Console') and AccountName='<도메인>\\<원격 데스크톱 가상화 호스트 서버 컴퓨터 계정>$'" CALL ModifyPermissions 0,1
• wmic /node:localhost RDACCOUNT where "(TerminalName='RDP-Tcp' or TerminalName='Console') and AccountName='<도메인>\\<원격 데스크톱 가상화 호스트 서버 컴퓨터 계정>$'" CALL ModifyPermissions 2,1
• wmic /node:localhost RDACCOUNT where "(TerminalName='RDP-Tcp' or TerminalName='Console') and AccountName='<도메인>\\<원격 데스크톱 가상화 호스트 서버 컴퓨터 계정>$'" CALL ModifyPermissions 9,1
• Net stop termservice
• Net start termservice
③ 가상 머신 로그 오프
원격 데스크톱 웹 액세스 (RD Web Access)
원격 데스크톱 웹 액세스는 사용자가 웹 브라우저를 통해 원격 응용 프로그램과 원격 데스크톱 연결을 통합해 볼 수 있도록 한다. 원격 데스크톱 웹 액세스를 사용하면 사용자는 자신에게 개시되어 있는 모든 원격 응용 프로그램과 가상 데스크톱(개인용 가상 데스크톱 및 가상 데스크톱 풀)을 볼 수 있다. Windows 7 클라이언트의 경우 VDI 가상 머신을 시작 메뉴에서 RADC(RemoteApp 및 데스크톱 연결) 기능을 통해 접근할 수도 있다.
[RemoteApp]
[RADC]
원격 데스크톱 게이트웨이(RD Gateway)
원격 데스크톱 게이트웨이는 VDI 배포에 있어 선택적인 역할 서비스이다. 주 목적은 인터넷 환경에서 RDP 클라이언트가 방화벽을 통해 RDP 접속을 할 수 있도록 안전하게 라우팅하는 것이며, 인터넷에 위치하는 원격 사용자와 내부 네트워크 자원의 보안 및 암호화 연결을 위해 RDP over HTTPS(TCP 443)를 사용한다.