Create cStorPool using OpenEBS Director

OpenEBS is the most popular open source storage software and contains different types of data engines suitable for different workload requirements. The supported engines are Jiva, cStor, Dynamic Local PV, and soon-to-be-releasing-and-very-fast Mayastor. The below image shows a feature-based comparison of the storage engines.

Comparison of the storage engines

cStor data engine is popular for workloads needing efficient capacity management, replicas, point in time snapshots, incremental backups, etc. A new schema of cStor pool cStorPoolCluster(CSPC) allows you to create and manage your cStor pools in an easy way. Starting with release 1.9 OpenEBS Director and Data agility operators make this process seamless, and at the same time, keeps the User Experience relatively easy. OpenEBS Director is the management and visualization tool for your OpenEBS storage.

This feature requires 3 prerequisites:

  1. You need to connect your cluster to OpenEBS Director.
  2. This feature is supported for OpenEBS version >= 1.9. Make sure you have installed OpenEBS 1.9 using OpenEBS Director. If you installed an older version of OpenEBS using OpenEBS Director, then upgrade your OpenEBS version to 1.9. If OpenEBS is already installed manually, then upgrade it to 1.9 and install the cspc-operator.
  3. Unformatted disks are required to provision the cStor pool. Make sure you have attached some unformatted disks in your data/storage node(s).

Steps to provision a cStor pool

  1. In the OpenEBS Director, go to the Block Devices section, which is inside the Management section of your selected Cluster, and verify your block devices.
    NOTE:- Only unclaimed, active, and unmounted block devices will be used to create a cStor pool. 
    Fig 1
  2. Inside the Storage Pool section of the Management section, you will find an option to create a new pool. Click on that button and then select the CStor storage pool option and Continue.
    Fig 2
  3. Provide a name for your CSPC and select the RAID type. The supported RAID types are stripe, mirror, raidz, raidz2. The pros and cons of each type are listed for better understanding as shown in the below image.
    Fig 3
  4. Once you’ve provided the name for your CSPC and selected the RAID type, you need to select the device group. A Device Group represents a group of eligible block devices having similar characteristics like type and physical block size. For instance, if you have some block devices of type HDD and block size 4k and 16k, then it will give you 2 group options - HDD-4096, HDD-16384. Select HDD-4096, if you want to create a cStor pool using HDD block devices of block size 4k, & select HDD-16384 if you want to create a cStor pool using HDD block devices of block size 16k.
  5. Once you select a device group, our recommendation engine will give you two kinds of recommendations.
    1. Based on available Block Devices and RAID type, it will suggest that you can create a minimum of MIN_SIZE pool and a maximum of MAX_SIZE pool.
      Fig 4
    2. Once you provide the capacity for the cStor pool, it tells you that it found N possible instance configurations for requested capacity. Based on the requirement of replication, you can select X number of instances out of N instances. For example, in the below image, 3 nodes have the needed block devices to create instances of 107 GB. You can select any number between 1 to 3 based on your replication requirements.
      Fig 5
  6. After selecting instances for your cStor pool, generate the configuration by clicking on Generate Cluster Config. Once it is generated, verify it and apply the configuration in your cluster by clicking on the Create button.
    Fig 6
  7. Verify the status of your CStorPool creation. After the creation process is successful, you can click on the View created pool button to see the pool details.
    Fig 7Fig 8
  8. Once a CSPC is created, follow the steps here to create a Storage Class and PVs. We will soon be adding Storage Class provisioning support in Director.

Important Links

Access Director online - https://director.mayadata.io

For help - https://help.mayadata.io

Join OpenEBS community — https://slack.openebs.io

Brian Matheson
Brian Matheson has spent twenty years doing things like supporting developers, tuning networks, and writing tools. A serial entrepreneur with an intense customer focus, Brian has helped a number of startups in a technical capacity. He is currently immersed in k8s as a Developer Advocate at MayaData. He and his wife, Judy, live in NY with their two very small dogs.
Evan Powell
Founding CEO of a few companies including StackStorm (BRCD) and Nexenta — and CEO & Chairman of OpenEBS/MayaData. ML and DevOps and Python, oh my!
Sai Chaithanya
A developer whos is always eager to learn, loves algorithms, maths, Kubernetes, and programming, Passionate towards Data Science. Enjoys playing kabaddi and traveling.