Configuring storage options in Kadalu

In Kadalu, the term "storage pool options" refers to the configuration parameters that are set for a Kadalu Storage Pool. A pool in Kadalu represents a collection of directories or partitions from one or more nodes.

Storage Pool options allow you to customize the behavior and characteristics of a Kadalu Storage Pool according to your specific requirements by altering the volfiles used by mount process (or client), storage units and self heal daemon processes.. These options can be set during the creation of a pool or modified later to alter the pool's behavior.

How storage options are configured by Kadalu

When user configures a option to a Storage Pool, the server regenerates the volfiles of storage-unit, SHD and clients according to type of option passed. Then it notifies the participating nodes of that pool to use newly generated volfiles by sending SIGHUP on running brick/storage-unit & SHD processes.

The applications using the mounted pool will not have any downtime during this process, since the client processes need not be restarted for configured options changes to be applied. The mounted client process will pick up this new behaviour of the pool on the fly.

Few advantages/optimizations storage-options configurations in Kadalu v/s GlusterFS:

  • Kadalu's volgen is granular, uses template-based generation instead of code in GlusterFS. Enabling higher degree of customization, i.e can configure using xlator name, name from volfile etc.
    Example: If in a 3 x replica3 setup, in order to check for logs in higher detail by setting LOG_LEVEL=DEBUG without flooding the logging space in all nodes,
    can set LOG_LEVEL to DEBUG in a particular node which is not possible in GlusterFS.

  • GlusterFS uses mesh networking. So in order for GlusterD to set new volfile options, it has to conduct handshakes with all nodes in connected network even though it is not part of the volume, get the list of participating nodes, sync and notifies through RPC that volfile has changed. This is a network & computitive overhead when nodes are high in number say 100. Also if few nodes are slower when compared to rest, the entire process becomes slower.

    But Kadalu maintains the config file of all participating nodes and other details in a single place, so it only notifies the Storage Unit processes in those participating nodes which becomes faster.
    There are also multiple ways to enusre high availablity of Kadalu Manager Server node. One of them is by using periodic Config Snapshots.

Configuring Pool Options in Kadalu for K8's

Through Kubectl Kadalu CLI:

To add/set Storage Pool Options, 'option-set' subcommand can be used. It expects name of Storage Pool to be configured and Option key(s) and value(s).

$ kubectl kadalu option-set storage-pool1 \
    performance.quick-read off performance.write-behind on

To remove/reset Storage Pool Options, 'option-reset' subcommand can be used. It expects name of Storage Pool to be configured and Option key(s) to be removed.

$ kubectl kadalu option-reset storage-pool1 \
    performance.quick-read performance.write-behind

Additionally all of configured options for a Storage Pool can be removed with '--all' flag.

Through YAML:

apiVersion: kadalu-operator.storage/v1alpha1
kind: KadaluStorage
metadata:
# This will be used as name of PV Hosting Volume
  name: storage1
spec:
  type: Replica1
  options:
    - key: "performance.quick-read"
      value: "off"
    - key: "performance.write-behind"
      value: "on"
  storage:
    - node: kube1
      device: /dev/vdc

Configuring Pool Options in Kadalu Storage:

Set pool options:

kadalu pool set pool1 performance.write-behind on performance.quick-read off

Kadalu also supports granular level of setting options:
Example: To set LOG-LEVEL to DEBUG for a particular storage unit,

kadalu pool set pool1 /exports/vol1/s1.log-level DEBUG

Reset pool options:

kadalu pool reset pool1 performance.write-behind performance.quick-read

For more documentation please refer Kadalu Documentation.

For any queries please feel free to contact:
Mail: hello@kadalu.tech
Or raise any issues at Kadalu Storage Manager Upstream & Kadalu Storage K8's Upstream.