Recommended success criteria for an OpenNebula Proof of Concept.
Each OpenNebula deployment is different but they all have to provide a basic set of functionalities that form a complete solution. We have assembled them in functional groups to make navigation through PoC easy and ordered. Upon completion of all tests, we can announce success and move on to the next phase. Sometimes a special requirement is needed and we add them to our plan during the Information Gathering Call.
Configure a host so that a physical GPU can be assigned directly to a virtual machine. Validate that the GPU is exposed by the hypervisor and available for PCI passthrough.
Create or update a VM template with a GPU device, instantiate the VM successfully, and verify that the guest operating system detects and can use the assigned GPU.
Partition a MIG-capable GPU and assign separate MIG instances to independent workloads. Validate that each workload sees only its allocated MIG resources.
Submit a pod that requests GPU resources and verify that Kubernetes schedules it onto an appropriate GPU node and that the GPU is visible inside the container.
Deploy or validate the NVIDIA GPU Operator and confirm that GPU drivers, device plugins and related components are healthy and advertise GPU resources to Kubernetes.
Manually add GPU worker capacity to a Kubernetes cluster when additional resources are required and verify that the new capacity becomes available to workloads. Then remove the additional GPU worker capacity when demand decrease.
Validate Advanced GPU Scheduling with Run:ai (if required)
Submit GPU workloads through Run:ai and validate project allocation, quotas and scheduling policies against the OpenNebula-provisioned Kubernetes infrastructure.
Provide independent access to inference services for different tenants and verify that each tenant can access only its authorized endpoints and resources.
Record input and output token consumption per tenant, project or API consumer so that usage can be attributed for operational, showback or billing purposes.
Manually add compute capacity in response to queued workload demand and verify that the new nodes are provisioned, join the Slurm cluster, execute the workload, and can be manually released when no longer required.