Skip to content

Verify RDS devices in an NPU Pod

RDS (Rebellions Direct Storage) is supported only on Rebel100™. Verify the RDS device file inside a Pod with an allocated NPU.

Use RDS in Helm Configuration Examples. If the Operator is not installed, follow Installing the NPU Operator.

Before starting this tutorial, follow the RDS Support guide to select the NVMe device and enable RDS on the target node.

1. Create the NPU Pod

Create the npu-tutorial namespace and request one NPU on a node configured for RDS.

kubectl create namespace npu-tutorial --dry-run=client -o yaml | kubectl apply -f -
kubectl apply -f - <<'EOF'
apiVersion: resource.k8s.io/v1
kind: ResourceClaimTemplate
metadata:
  name: rds-npu
  namespace: npu-tutorial
spec:
  spec:
    devices:
      requests:
      - name: npu
        exactly:
          deviceClassName: npu.rebellions.ai
          count: 1
---
apiVersion: v1
kind: Pod
metadata:
  name: npu-rds
  namespace: npu-tutorial
spec:
  nodeSelector:
    rebellions.ai/npu.family: rebel100
    rebellions.ai/rds.present: "true"
  containers:
  - name: ubuntu
    image: ubuntu:22.04
    command: ["sleep", "infinity"]
    resources:
      claims:
      - name: npu
  resourceClaims:
  - name: npu
    resourceClaimTemplateName: rds-npu
EOF

2. Verify the NPU and RDS device

Wait for the Pod, then check its node, the NPU and the RDS device file.

Pod placement and NPU
$ kubectl wait -n npu-tutorial --for=condition=Ready pod/npu-rds --timeout=180s
pod/npu-rds condition met

$ kubectl get pod -n npu-tutorial npu-rds \
  -o 'custom-columns=NAME:.metadata.name,NODE:.spec.nodeName,PHASE:.status.phase'
NAME      NODE            PHASE
npu-rds   node-rebel100   Running

$ kubectl exec -n npu-tutorial npu-rds -- rbln-smi -L
NPU 0 : RBLN-CR13 (UUID: NPU-34428712-d887-840b-a7b9-1c9e05807fc3)

List RDS device names matching rblnfsN in the container's /dev directory, where N is the device number.

RDS device check
$ kubectl exec -n npu-tutorial npu-rds -- sh -c 'ls -1 /dev | grep -E "^rblnfs[0-9]+$"'
rblnfs0

The check passes when one NPU and an RDS device matching rblnfsN are listed.

Clean up

Delete the Pod and ResourceClaimTemplate. The generated claim is deleted automatically.

kubectl delete pod -n npu-tutorial npu-rds
kubectl delete resourceclaimtemplate -n npu-tutorial rds-npu