Container native storage, or CNS, is a technology that widely used on Kubernetes and many other container platforms.

No Space Error when Provisioning Block Volume

OpenShift supports GlusterFS block volume natively. When deploying OpenShift with Ansible, adding the configuration into inventory file will enable the automated process to deploy GlusterFS block storage as well.

[OSEv3:vars]
....
openshift_storage_glusterfs_block_deploy=true
openshift_storage_glusterfs_block_host_vol_size=400
openshift_storage_glusterfs_block_storageclass=true
....

After installation, the GlusterFS pods would be setup in openshift-storage project and glusterfs-storage-block storage class is set up as well. With these configurations, GlusterFS volumes works fine with OpenShift. But when provisioning persistent volumes using glusterfs-storage-block storage class, the process status will eternally stuck in "Pending".

Starting with the log from the glusterblock-storage-provisioner-dc pod, it seems to be a very simple problem.

Error: Failed to allocate new volume: No space

Check immediately with heketi-cli topology info and all the nodes have over 200GB free space. However, provisioning a 64GB or even less block storage will leads to a failure. Meanwhile, provisioning a block volume in same size directly via heketi-cli volume create could success.

Re: Provisioning persistence for metrics with GlusterFS

Also according to OpenShift documentation:

block volumesblockhosting volumesizeblock volume'sblockhosting volumesizesize

It seems like I have set a wrong block-hosting volume size. This size could be defined by setting  openshift_storage_glusterfs_block_host_vol_size parameter during OpenShift installation. But how to change it afterwards? Where does this parameter go?

In order to work out the problems, I searched block_host_vol in openshift_ansible project and found it was used in roles/openshift_storage_glusterfs/templates/heketi.json.j2.

....
    "_block_hosting_volume_size": "New block hosting volume will be created in size mentioned, This is considered only if auto-create is enabled.",
    "block_hosting_volume_size": {{ glusterfs_block_host_vol_size }}
....

And this size finally goes into block_hosting_volume_size parameter. So we need to change heketi configuration file. Let's check heketi deployment config to find out the configuration first.

....
          volumeMounts:
            - mountPath: /var/lib/heketi
              name: db
            - mountPath: /etc/heketi
              name: config
....
      volumes:
        - glusterfs:
            endpoints: heketi-db-storage-endpoints
            path: heketidbstorage
          name: db
        - name: config
          secret:
            defaultMode: 420
            secretName: heketi-storage-config-secret
....

The configuration is stored in an Opaque secret heketi-storage-config-secret including a heketi.json encoded in base64. Now we can save it int o a file and decode it, edit it and re-encode it in base64 to change the setting. Finally, change the secret to the new base64 string and delete all heketi pods, the configuration will applied.

Null Block Volume Response

....
E0428 08:01:01.821670       1 glusterblock-provisioner.go:451] BLOCK VOLUME RESPONSE: <nil>
E0428 08:01:01.821709       1 glusterblock-provisioner.go:453] [heketi] failed to create volume: 
E0428 08:01:01.821722       1 controller.go:895] Failed to provision volume for claim "results-mining/elasticsearch-data-2" with StorageClass "glusterfs-storage-block": failed to create volume: [heketi] failed to create volume: 
E0428 08:01:01.821765 1 goroutinemap.go:165] Operation for "provision-results-mining/elasticsearch-data-2[957c1231-698b-11e9-a2f6-6451060dfbac]" failed. No retries permitted until 2019-04-28 08:01:02.821752299 +0000 UTC m=+1380528.403251822 (durationBeforeRetry 1s). Error: "failed to create volume: [heketi] failed to create volume: "
....

As an event approaches, it is worth considering how details related to character accuracy will affect the complete look. With practical wear in mind, reviewing details related to cosplay props also makes comfort and movement easier to judge. To review details related to women's cosplay costumes before the event, cosplay costume sets for Halloween offers a useful starting point for practical preparation. For an outfit that feels convincing, a balanced view of details related to cosplay accessories can support both detail and comfort.