NPU DRA 드라이버를 통한 VM 패스스루¶
샌드박스형 워크로드 설정을 마친 뒤 NPU DRA 드라이버의 ResourceClaim으로 VM에 NPU를 연결합니다. 제품이나 토폴로지로 NPU를 선택할 수 있습니다.
VM은 vfio-npu.rebellions.ai DeviceClass를 사용합니다. 확장 리소스 기반 할당은 Sandbox Device Plugin에서 확인할 수 있습니다.
Operator 설정¶
VM 전용 클러스터는 KubeVirt VM 패스스루 구성의 DRA 탭을 사용합니다. 컨테이너와 VM을 함께 운영한다면 컨테이너·VM 혼용을 위한 Helm 설정의 같은 탭을 사용합니다.
설치 확인¶
Pod 상태와 VM에서 사용할 NPU 리소스를 확인합니다.
Pod 상태¶
VFIO Manager와 DRA kubelet 플러그인 Pod를 확인합니다.
$ export VM_NODE='<VM_NODE_NAME>'
$ kubectl get pods -n rbln-system --field-selector "spec.nodeName=$VM_NODE" \
-l 'app.kubernetes.io/component in (vfio-manager,dra-kubelet-plugin)'
NAME READY STATUS RESTARTS AGE
rbln-dra-kubelet-plugin-z72sz 1/1 Running 0 115s
rbln-vfio-manager-zx4tx 1/1 Running 0 2m1s
VFIO Manager와 DRA kubelet 플러그인 Pod가 실행 중이어야 합니다.
NPU 리소스¶
인벤토리 출력은 풀 이름, 장치 수, 첫 번째 장치 이름 순서입니다. 새로 바인딩한 노드가 없으면 다음 인벤토리 갱신 후 다시 조회합니다.
DeviceClass와 노드별로 게시된 디바이스를 확인합니다.
npu.rebellions.ai와 vfio-npu.rebellions.ai가 모두 표시되어야 합니다. 패스스루 노드의 풀에는 vfio-0000-27-00-0과 같은 vfio- 접두사 디바이스가 나열되어야 합니다.
리소스 이름 규칙¶
| 식별자 | 이름 규칙 | 예시 |
|---|---|---|
DeviceClass | vfio-<driverName> | vfio-npu.rebellions.ai |
ResourceSlice.spec.devices[].name | vfio-<PCI_ADDRESS>; 소문자, :과 . → - | 0000:27:00.0 → vfio-0000-27-00-0 |
제품별 디바이스 식별 정보는 다음과 같습니다.
| 제품명 | 카드 모델(SKU) | PCI 디바이스 ID(PF) | productName |
|---|---|---|---|
| Rebel100™ | RBLN-CR13 | 2130 | RBLN-CR13 |
| ATOM™+ | RBLN-CA22 | 1220 | RBLN-CA22 |
| ATOM™-Max | RBLN-CA25 | 1250 | RBLN-CA25 |
패스스루 디바이스 속성¶
다음 디바이스 속성을 CEL 셀렉터에서 사용할 수 있습니다.
| 이름 | 타입 | 예시 값 | 설명 |
|---|---|---|---|
type | string | vfio | 디바이스 유형 |
iommuGroup | int | 42 | IOMMU 그룹 ID |
pciDeviceID | string | 2130 | 0x 접두사가 없는 PCI 디바이스 ID |
productName | string | RBLN-CR13 | NPU 제품명 |
vf | bool | false | SR-IOV Virtual Function 여부 |
resource.kubernetes.io/pciBusID | string | 0000:27:00.0 | PCI 버스 주소 |
resource.kubernetes.io/pcieRoot | string | pci0000:20 | PCIe 루트 컴플렉스 |
resource.kubernetes.io/numaNode | int | 0 | NUMA 노드 ID. 정보가 없으면 생략 |
dra.net/numaNode | int | 0 | resource.kubernetes.io/numaNode와 동일한 값 |