KubeVirt 환경에서 PCoIP를 활용, GPU 가속 원격 그래픽 환경 구축

by DD
4개월 전
조회수 25

KubeVirt 환경에서 GPU Passthrough를 통해 구축된 VM에 PCoIP(PC-over-IP)를 연동하여 원격 그래픽 환경을 구축

XRDP의 성능 한계를 극복하고, HP Anyware PCoIP Graphics Agent를 선택하여 GPU 렌더링 성능 극대화를 목표로 함

Air-Gap 환경을 고려하여 오프라인 라이선스 서버를 구축하고, GPU 인코딩 설정 최적화를 통해 60FPS 고품질 스트리밍 환경 구현

PCoIP Graphics Agent 설치, 오프라인 라이선스 서버 구성, GPU 가속 설정 등 전체 과정을 단계별로 상세히 설명

GPU 가속오프라인 라이선스 인증을 통해 KubeVirt 기반 GPU VM에서 클라우드형 워크스테이션 수준의 사용자 경험 제공

PCoIP Graphics Agent 아키텍처 및 동작 원리

PCoIP(PC-over-IP)는 HP Anyware에서 개발한 원격 접속 프로토콜로, GPU 인코딩(NVENC/NVDEC)을 활용하여 고품질의 그래픽 스트리밍을 제공한다. 본문에서는 Graphics Agent를 사용하여 NVIDIA GPU의 하드웨어 인코딩을 활용, XRDP의 성능 저하 문제를 해결했다. PCoIP는 UDP 기반 프로토콜을 사용하며, 화면 픽셀 데이터를 압축 및 전송하여 낮은 대역폭에서도 고품질의 화면을 제공한다. 특히, Ultra 모드를 활성화하여 GPU 인코더를 사용하고, 최대 프레임 레이트(Maximum Frame Rate)를 60FPS로 설정하여 부드러운 화면을 구현했다.

오프라인 라이선스 서버 구축의 기술적 배경

본 구축 환경은 Air-Gap(Data Isolation Architecture) 환경이므로, 클라우드 라이선스 서버를 직접 사용할 수 없었다. 따라서 RHEL 8.10 기반의 오프라인 라이선스 서버를 구축하고, HP Anyware Cloud Portal에서 라이선스를 오프라인 용도로 차감 후 로컬 서버에 매핑하는 방식을 사용했다. 오프라인 라이선스 서버는 Java 17 OpenJDK를 필요로 하며, PCoIP License Server RPM을 설치하여 구성한다. 이 방식은 인터넷 연결 없이도 라이선스 인증을 가능하게 하여, 보안(Security)이 중요한 환경에서 GPU 가속 환경을 구축하는 데 필수적이다.

GPU 최적화 설정 및 성능 개선

GPU 가속과 네트워크 품질을 극대화하기 위해 `/etc/pcoip-agent/pcoip-agent.conf` 설정을 세밀하게 조정했다. `pcoip.ultra_enable = gpu_offload` 설정을 통해 GPU NVENC 인코더를 사용하고, `pcoip.enable_hardware_encoder = true``pcoip.enable_hardware_decoder = true` 설정을 통해 하드웨어 인코딩 및 디코딩을 활성화했다. 또한, `pcoip.maximum_frame_rate = 60`으로 최대 프레임 레이트를 설정하고, `pcoip.max_link_rate = 900000`으로 최대 전송 대역폭을 설정하여 60FPS 고품질 스트리밍 환경을 구축했다. `pcoip.device_bandwidth_floor = 5000``pcoip.minimum_image_quality = 50` 설정을 통해 최소한의 품질을 보장했다.

PCoIP Client 연결 및 라이선스 유효성 검사

PCoIP Client를 통해 원격 호스트에 접속하여 GPU 가속 환경이 정상적으로 동작하는지 확인하는 과정은 매우 중요하다. PCoIP Client를 설치하고, 호스트 정보를 입력한 후 연결을 시도한다. 오프라인 라이선스 서버를 사용하기 위해서는 `/etc/pcoip-agent/pcoip-agent.conf` 파일에 라이선스 서버 주소를 설정해야 한다. 설정 후, `pcoip-validate-license` 명령어를 통해 라이선스 유효성을 검사한다. 이 과정을 통해 오프라인 환경에서도 라이선스 인증이 정상적으로 이루어지는지 확인하고, GPU 가속 환경의 안정적인 운영을 보장한다.

KubeVirt 환경에서의 GPU 가상화 기술

본 글은 KubeVirt 환경에서 GPU VM을 구축하는 과정을 다루며, GPU Passthrough 기술을 활용하여 VM에 GPU를 직접 할당한다. KubeVirt는 쿠버네티스(Kubernetes) 기반의 가상화 솔루션으로, 컨테이너(Container)와 VM(Virtual Machine)을 통합 관리할 수 있다. GPU Passthrough를 통해 VM은 GPU의 성능을 거의 네이티브(Native) 수준으로 활용할 수 있으며, 3D 모델링, 시각화 렌더링 등 그래픽 집약적인 작업을 수행할 수 있다. 이러한 기술은 클라우드 환경에서 GPU 자원을 효율적으로 활용하고, 유연한 자원 관리를 가능하게 한다.

KubeVirt로 구현하는 GPU VM (3) - PCoIP 연동 및 오프라인 라이센스 서버 설치