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

Niladri
Niladri is a CSAT Solutions / Support Engineer at MayaData. He works with Kubernetes, Docker, and the rest of the stack down below.
Kumar Indrajeet
Kumar has 10 years' experience in the design, implementation, management of enterprise distributed systems, and highly available clustered solutions. Expert in Architecting Cloud infrastructure, migration to containers, cost optimization, security enhancements, and predictive monitoring. Certified Professional with expertise in AWS, Openstack, Linux, and DevOps concepts. Persuasive communicator with good analytical, logical, and multitasking skills. Adroit at analyzing and understanding organizational requirements.
Paul Burt
Prior to working with MayaData, Paul has worked with NetApp & Red Hat in senior positions. He’s upvoting your /r/kubernetes threads. Paul has a knack for and demystifying infrastructure, and making gnarly, complex topics approachable. He enjoys home brewing beer, reading independent comics, and yelling at his computer when it doesn’t do what he wants.