Local PV LVM VAC Parameters
Overview
VolumeAttributesClass (VAC) parameters allow you to define Quality of Service (QoS) policies for Local PV LVM volumes.
These parameters control IOPS and bandwidth limits for filesystem and block-mode volumes provisioned through Local PV LVM. QoS policies are enforced at the node level using Linux cgroup v2 controls.
Supported VAC Parameters
The following VAC parameters are supported for Local PV LVM volumes.
| Parameter | Description |
|---|---|
qosIopsLimit | Maximum total IOPS limit |
qosIopsReadLimit | Maximum read IOPS limit |
qosIopsWriteLimit | Maximum write IOPS limit |
qosBandwithPerSec | Maximum total bandwidth per second |
qosBandwithReadPerSec | Maximum read bandwidth per second |
qosBandwithWritePerSec | Maximum write bandwidth per second |
Example VAC Configuration
The following example configures total IOPS and bandwidth limits using a VAC.
apiVersion: storage.k8s.io/v1
kind: VolumeAttributesClass
metadata:
name: lvm-qos-high
driverName: local.csi.openebs.io
parameters:
qosIopsLimit: "50000"
qosBandwithPerSec: "5000000"
Example Directional QoS Configuration
The following example configures separate read and write QoS limits.
apiVersion: storage.k8s.io/v1
kind: VolumeAttributesClass
metadata:
name: lvm-qos-directional
driverName: local.csi.openebs.io
parameters:
qosIopsReadLimit: "100"
qosIopsWriteLimit: "200"
qosBandwithReadPerSec: "7000Mi"
qosBandwithWritePerSec: "8000Mi"
Update VAC QoS Parameters
You can modify the QoS policy applied to a PVC by updating the volumeAttributesClassName field to reference a different VAC.
Example Updated VAC
apiVersion: storage.k8s.io/v1
kind: VolumeAttributesClass
metadata:
name: lvm-qos-low
driverName: local.csi.openebs.io
parameters:
qosIopsLimit: "20"
qosBandwithPerSec: "20000"
Example Updated PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: lvm-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: openebs-lvm
volumeAttributesClassName: lvm-qos-low
resources:
requests:
storage: 5Gi
Apply the updated PVC configuration:
kubectl apply -f pvc.yaml
After the PVC is updated, OpenEBS Local PV LVM automatically reconciles and applies the new QoS settings associated with the updated VolumeAttributesClass.
Invalid VAC Parameter Example
Conflicting QoS Parameters
The following example uses conflicting QoS parameter values.
apiVersion: storage.k8s.io/v1
kind: VolumeAttributesClass
metadata:
name: lvm-qos-conflict
driverName: local.csi.openebs.io
parameters:
qosIopsLimit: "max"
qosIopsReadLimit: "1000"
Verify VAC QoS Configuration
Use the following command to verify the PVC configuration.
kubectl describe pvc <pvc-name>
Expected Results
- The PVC references the updated VAC
- Updated QoS parameters are applied to the Local PV LVM volume
- QoS reconciliation completes automatically on supported Kubernetes versions
Support
If you encounter issues or have a question, file a Github issue, or talk to us on the #openebs channel on the Kubernetes Slack server.