Internal KVDB for Portworx CSI
The built-in internal KVDB is enabled by default when you install Portworx CSI through Portworx Central. Portworx CSI automatically deploys the internal KVDB cluster and manages the internal key-value store cluster. The internal KVDB is installed on a set of three nodes in your cluster, and it removes the requirement for an external KVDB.
Prerequisites
Internal KVDB requires a dedicated drive to store its data. You can choose to have either a KVDB drive or a metadata drive.
KVDB drive:
- For FlashArray installations, a 32G KVDB drive will be automatically created on the FlashArray across the three KVDB nodes.
For FlashBlade only installations, you must manually provision a drive on each of the three nodes designated for KVDB. Ensure that each drive delivers a minimum of 450 IOPS.
(Optional) Label the nodes before installing Portworx CSI
If you want to control where KVDB is placed, you can use the following command to label nodes in Kubernetes. This command will designate them for the internal KVDB cluster:
kubectl label nodes <list-of-node-names> px/metadata-node=true
Here are a few scenarios based on the labels and their values:
- If a node is labeled
px/metadata-node=true
, it becomes part of the internal KVDB cluster. - If a node is labeled
px/metadata-node=false
, it will not be part of the internal KVDB cluster. - If no node labels are found, all storage nodes have the potential to run the internal KVDB
- If an incorrect label is present on the node, such as
px/metadata-node=blah
, Portworx will not start KVDB on that node. - If no node is labeled as
px/metadata-node=true
, but one node is labeled aspx/metadata-node=false
, that specific node will never be part of the KVDB cluster, whereas the remaining nodes are potential internal KVDB nodes.