docs: KubeVirt with DRA - #473
Conversation
e9d4fe5 to
3cc4d7c
Compare
Documentation preview |
3cc4d7c to
8bfe69e
Compare
| #. On the host, list the Fabric Manager partitions and their status: | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| $ /run/nvidia/fmpm \ | ||
| --unix-domain-socket /run/nvidia-fabricmanager/socket \ | ||
| -l | ||
|
|
||
| Confirm that the partition selected for the claim reports ``isActive: 1``. |
There was a problem hiding this comment.
This does not exist.
You may use this example but : https://github.com/NVIDIA/go-nvfm/blob/main/examples/list-partitions/main.go
The steps are:
git clone https://github.com/NVIDIA/go-nvfm && cd go-nvfm
make example-list-partitions
kubectl cp ./list-partitions -n gpu-operator <driver-pod>:/run/nvidia/list-partitions
kubectl exec -n gpu-operator <driver-pod> -- bash -c "NVFM_UNIX_SOCKET_PATH=/run/nvidia-fabricmanager/socket /run/nvidia/list-partitions"
But I don't think we should include this validation step. cc: @shivamerla
There was a problem hiding this comment.
@varunrsekar this could be useful for savvy admins who want to check that the partitions are activated. Anyway the repo is public, they will report if any issues with it. We cannot use this directly? https://github.com/NVIDIA/Fabric-Manager-Client
There was a problem hiding this comment.
Very grateful to you both for the review and letting me know the client isn't automatically installed. (Why?)
I revised to group the two verification/informational commands under an optional step that mentions "requires additional software." It's honest, hopefully prevents surprise, and still helps a determined admin gain more knowledge. Well, imo.
If it's still problematic, plmk and thanks again!
There was a problem hiding this comment.
We cannot use this directly? https://github.com/NVIDIA/Fabric-Manager-Client
No there's a couple of issues with it:
- A bug that prevents it from working with unix socket
- Building the binary require installing
jsoncppand the FM SDK
The go-nvfm examples have no dependeicies so would be easier to build.
this could be useful for savvy admins who want to check that the partitions are activated
And yeah its good if they know what they're doing. We're injecting a binary into the driver container and running something inside it so I was skeptical. Maybe we should come up with instructions using a debug container?
There was a problem hiding this comment.
@mikemckiernan FYI The verification steps require the client to be run inside the driver container to work.
| "featureGates":{ | ||
| "PassthroughSupport":true, | ||
| "DeviceMetadata":true, | ||
| "FabricManagerPartitioning":true # For NVLink 5 or later systems with NVSwitch-managed fabric. |
There was a problem hiding this comment.
This looks like a command to copy and paste... but I think the comment would break it?
There was a problem hiding this comment.
I believe it does, but I was willing to include it because:
A) I didn't want two copy-paste commands that are identical except for one line--confusing, imo.
B) If I add "For NVLink5 or later...add the "FabricManagerPartitioning":true feature gate" above or below the code block, I fear it'll get missed. Conversely, if I put a "If you host isn't, remove..." above or below, also might not get read and I'm unsure if that was tested or could cause a problem.
My thinking is that nearly cut-n-paste that is clear and has the added bonus of failing-command-attention-getting behavior was the right choice.
If you have a suggestion, please share.
| * Host services and workloads must release open handles to a GPU before it can be bound to ``vfio-pci``. | ||
| * KubeVirt supports exactly one allocated device for each named request. | ||
| Use one named request for each GPU, as shown in this procedure. | ||
| * Do not mix DRA and device-plugin GPU entries in the same virtual machine. |
There was a problem hiding this comment.
I think we need another warning here, perhaps with input from engineering, about our race condition between GPU and VFIO allocation
There was a problem hiding this comment.
@shivamerla, @varunrsekar, plmk if you agree with Babak's concern. I believe Babak is referring to the second bullet from the KubeVirt VFIO limitations and considerations in the DRA driver docs.
There was a problem hiding this comment.
Yes Mike, better to highlight that limitation here as well as mixed workloads are allowed now by default with DRA.
Signed-off-by: Mike McKiernan <mmckiernan@nvidia.com>
Signed-off-by: Mike McKiernan <mmckiernan@nvidia.com>
Signed-off-by: Mike McKiernan <mmckiernan@nvidia.com>
Signed-off-by: Mike McKiernan <mmckiernan@nvidia.com>
6ca7e58 to
8f4ab98
Compare
Review HTML: https://nvidia.github.io/cloud-native-docs/review/pr-473/gpu-operator/latest/gpu-operator-kubevirt-dra.html