VMware View 가상데스크탑을 사용하면서 자주 접하는 상황중의 하나는 뷰 클라이언트에서 화면 해상도를 어디까지 지원하는가? 하는 이슈입니다. 화면 해상도와 관련하여, 우선 쉽게 떠 오르는 것이 비디오 메모리인데 과연 가상머신의 비디오 메모리는 얼머나 영향을 줄 수 있고 또 얼마까지 설정이 가능할까요? vSphere 5.x가 되면서 가상머신의 비디오 메모리를 512 MB까지 설정할 수 있다고 되어 있습니다. 그럼 과연 512 MB를 전부 할당하면 화면 해상도에서 최대한의 결과를 얻을 수 있을 까요?
이 이슈에 대해 여러 가지 배경 지식들에 대해 알아보는 것이 실제 운용 환경에서 도움이 될것으로 생각합니다.
가상머신의 비디오 메모리는?
가상머신의 비디오 메모리는 흔히 알고 있는 것과 같이 물리적 환경의 VGA RAM과 같은 크기로 할당되는 것이 아닙니다. 가상머신의 메모리가 1GB로 설정되었다고해서 1GB의 메모리가 가상머신이 Power-On될때 모두 할당되는 것이 아닌것처럼(Reservation을 지정하지 않은 경우), 비디오 메모리도 필요한 모든 메모리가 할당되는 것이 아닙니다. 다만, 가상머신의 모니터 수와 해상도에 따라 ESX/ESXi가 부담해야할 Overhead 메모리가 가상머신이 Power-On될 때 Reserve됩니다. 모니터 수와 해상도에 따라 요구되는 Overhead메모리의 크기는 아래 표와 같습니다.
PCoIP Client Display Overhead | |||||
Display Resolution Standard | Width, in Pixels | Height, in Pixels | 1-Monitor Overhead | 2-Monitor Overhead | 4-Monitor Overhead |
VGA | 640 | 480 | 2.34MB | 4.69MB | 9.38MB |
SVGA | 800 | 600 | 3.66MB | 7.32MB | 14.65MB |
720p | 1280 | 720 | 7.03MB | 14.65MB | 28.13MB |
UXGA | 1600 | 1200 | 14.65MB | 29.30MB | 58.59MB |
1080p | 1920 | 1080 | 15.82MB | 31.64MB | 63.28MB |
WUXGA | 1920 | 1200 | 17.58MB | 35.16MB | 70.31MB |
QXGA | 2048 | 1536 | 24.00MB | 48.00MB | 96.00MB |
WQXGA | 2560 | 1600 | 31.25MB | 62.50MB | 125.00MB |
그럼,
VMware View에서 가상 데스크탑이 지원하는 화면 해상도와 모니터는 어떻게 될까요?
여러가지 요인에 의해 화면 해상도와 모니터 수가 결정됩니다. 우선, 생각해 볼 수 있는 것이 View에서 Pool을 생성할 때 지정하는 Pool Setting에 관련된 부분입니다.
Remote Display Protocol영역을 보면 크게 5가지 설정 옵션이 있음을 알 수 있습니다.
- Default Display Protocol
- Allow users to choose protocol
- Windows 7 3D Rendering
- Max number of monitors
- Max resolution of any one display
하나씩 살펴보면,
- Default Display Protocol은 View 가상 데스크탑에 사용자가 연결할 때 기본 디스플레이 프로토콜을 지정하는 옵션입니다. PCoIP와 RDP중에서 선택할 수 있습니다.
- Allow users to choose protocol 은 사용자가 기본 디스플레이 프로토콜을 변경할 수 있도록 허용하는지 여부를 지정합니다.
- Windows 7 3D Rendering은 기본 디스플레이 프로토콜이 PCoIP로 설정되고, 사용자가 기본 디스플레이 프로토콜을 변경할 수 없도록 지정한 경우에 설정할 수 있습니다. Windows 7 3D Rendering을 사용하는 경우 가상머신의 비디오 메모리를 64MB에서 128MB사이에서 지정해야 합니다. Windows 7 3D Rendering은 View 5.0이상에서 지원되는 기능입니다. Windows 7 3D Rendering이 활성화되면 1920x1200해상도에서 2개 모니터까지 지원됩니다. Pivot 모니터는 지원되지만, stacked 모니터는 지원하지 않습니다.
- Windows 7 3D Rendering을 사용하지 않는 경우, 가상머신의 비디오 메모리는 최대 모니터 수(Max number of monitors)와 모니터의 최대 해상도(Max resolution of any one display)에 의해 결정됩니다. 최대 모니터 수는 1,2,3 그리고 4중에서 설정할 수 있습니다. 모니터의 최대 해상도는 1680x1050, 1920x1200 그리고 2560x1600에서 설정할 수 있습니다.
예를 들어, 최대 모니터 수를 2로 하고 해상도를 1680x1050으로 설정을 하면 이 Pool에서 Provisioning되는 가상머신의 구성 파일에서 svga.ramsize, svga.maxwidth, 그리고 svga.maxheight는 자동으로 이 설정에 맞추어 지정됩니다. Svga.ramsize = 28246016 (26.9MB), svga.maxwidth = 3360 (1680 x 2), 그리고 svga.maxheight = 2100 (1050 x 2)로 지정됩니다. 여기서 svga.ramsize는 26.9MB로 ESX/ESXi가 가상머신의 디스플레이를 위해 reserve하는 오버헤드 메모리의 크기입니다.
최대 모니터 수를 2로 하고 해상도를 2560 x1600으로 설정하면Svga.ramsize = 65636000 (62.5MB), svga.maxwidth = 5120 (2560 x 2), 그리고 svga.maxheight = 3200 (1600 x 2)이 지정됩니다. Reserve되는 비디오 메모리의 크기가 위의 오버헤드 메모리 표에서 보여지는 것과 같습니다.
그럼,
가상머신이 2560x1600의 해상도를 지원하도록 구성되었다고 PCoIP 클라이언트에서 이 해상도를 표현할 수 있을까요?
먼저 메모리 부분을 살펴보면, 20MB + (24 * (# monitors) * (monitor width) * (monitor height))의 공식에 의해 계산된 메모리가 클라이언트에 필요합니다. 계산을 해 보면,
20MB + ( 24 x 2 x 2560 x 1600) = 207.5MB 정도의 메모리가 클라인언트에 필요합니다.
제로 클라이언트라면 어떨까요? 제로 클라이언트는 128MB의 메모리를 가진 Firmware 2.0이상에서 2 개의 2560x1600@30Hz 해상도 디스플레이를 지원한다고 합니다. Refresh Rate이 30Hz인 것을 주목하십시오. DVI single link의 pixel clock rate 제한값인 165MHz에 의해 2560x1600해상도에서는 30Hz의 refresh rate을 지원합니다. 모든 모니터가 30Hz의 refresh rate를 지원하지 않습니다.
(출처:http://techsupport.teradici.com/ics/support/default.asp?deptID=15164&task=knowledge&questionID=255).
DVI 규격에 의해 표시 가능한 해상도가 제한을 받지만, View 환경에서 고려해야할 또 다른 요인은 네트워크 대역폭입니다. 모든 디스플레이 데이터가 네트워크를 통해 통신하기 때문에 해상도와 모니터 수가 증가하면 비례하여 네트워크 사용량도 증가합니다. 따라서, 네트워크 대력폭이 지원되지 않으면 원하는 결과를 얻지 못할 수도 있습니다.
결론적으로, View 환경에서 가상 데스크탑이 표시할 수 있는 화면의 해상도는
(1) 기본 디스플레이 프로토콜
(2) Windows 7 3D rendering의 사용 여부
(3) View 클라이언트의 메모리 요구량
(4) DVI 규격과 사용된 케이블
(5) 가상 데스크탑과 View 클라이언트 사이의 네트워크 대역폭에 의해 결정된다고 하겠습니다.
가상머신의 비디오 메모리의 경우 최대 모니터 수와 최대 해상도에 의해 결정되고 오버헤드 메모리만이 가상머신 Power-On될 때 reserve되기 때문에 View 클라이언트의 표시 가능 해상도에 직접적인 제한을 하지는 않는다 할 수 있습니다. 언제나 그렇듯 화면 해상도의 경우에도 View 클라이언트가 표시할 수 있는 물리적 최대 해상도에 더 큰 영향을 받는다고 할 수 있습니다.
결론적으로, vSphere 5.x가 512MB의 비디오 메모리를 지원하고, View에서 Windows 7 3D Rendering을 사용하는 경우 128MB로 비디오 메모리를 제한하지만 - Windows 7 3D Rendering을 사용하지 않는 경우는 모니터 수 x 최대해상도 에 의해 자동 설정-, 사용자가 원하는 화면 해상도의 지원 여부는 클라이언트의 메모리, 모니터의 지원 여부, 모니터를 연결할 때 사용한 케이블의 종류, 그리고 네트워크 대역폭이 종합적으로 고려되어야 합니다.