Is the px / px-fuse kernel module required on compute-only (storageless) nodes in a disaggregated cluster?

We’re running Portworx Enterprise 3.6.0 on Kubernetes (installed via the Portworx Operator) and want to confirm our understanding of the architecture before finalizing a disaggregated design — dedicated storage nodes plus separate compute-only nodes.

Could you confirm, explicitly:

1. Components per node type: Which Portworx components run on a storage node versus a storageless / compute-only node? Does a storageless node run the full Portworx engine and the CSI node driver, or only a subset?

2. Kernel module scope: Is the Portworx kernel module (px / px-fuse / `pxd` / `px.ko`) required on every node where Portworx runs — including storageless/compute nodes — or only on storage nodes?

3. Mounting requirement: For an application pod scheduled on a compute-only node to mount and use a Portworx volume (replicas living on the storage nodes), what must be present on that compute node — the engine, the CSI node driver, and the kernel module?

4. Custom kernel / air-gapped: If the node’s running kernel is not available on `mirrors.portworx.com` and the environment is air-gapped, what is the supported way to provide the kernel module on each node (e.g. building it from the `px-fuse` source against the kernel headers)? Does this requirement apply to compute/storageless nodes as well?

A clear written confirmation on points 2 and 3 specifically would help us a lot. Thanks!

Hello,

See my responses below

  1. The components that run on storage and storageless nodes are exactly the same. So yes the full Portworx engine does run on storage less nodes as well.
  2. Yes Portworx kernel module is required on every node.
  3. On the storage less (compute) nodes, Portworx needs to attach and mount the PVC’s block device for a stateful pod. The kernel module and the whole Portworx engine deployed on that node facilitates it.
  4. We do have a way to install kernel modules in an airgapped system when you dont have access to Portworx mirrors. Here is the doc that covers it where you can use the pxfslibs container deployment to get the module locally. However if a module is not present for the kernel/OS distribution on Portworx mirrors then the it wont be available in pxfslibs container as well. Please reach out to us over a support case, and we can see how we can help with enabling that kernel / OS distro