Skip to main content

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 as px/metadata-node=false, that specific node will never be part of the KVDB cluster, whereas the remaining nodes are potential internal KVDB nodes.