Overview

Learn how to configure local storage for your Operations Management on IBM Cloud™ Private size0 deployment with the createStorageAllNodes.sh script.

The createStorageAllNodes.sh script is provided to facilitate the creation
of persistent storage volumes (PVs). The script generates PVs using local storage. The PVs are
mapped volumes, which are mapped to directories off the root file system on the parent node. The
script also generates example SSH scripts that create the directories on the local file system of
the node. The SSH scripts create directories on the local hard disk associated with the virtual
machine and are suitable for proof of concept or development work only. For production systems,
consult with your systems administrator about a file system with the required performance, scale,
and redundancy requirements.

The default file storage class for Cloud Native Event Analytics is local storage. The
createStorageAllNodes.sh script creates persistent volumes and storage class
types for each microservice with the following formats:

  • Storage class type format: local-storage-microservice
  • Persistent volume format:
    [back|data]-local-storage-microservice-instancenumber-node IP

Configure Cloud Native Event Analytics to claim the local volume types generated by the createStorageAllNodes.sh script.

Procedure

  1. Edit the global:persistance:storageClassOption section in the values.yaml file and specify a storage class name for each microservice as in the following example:
    persistence:
    storageClassOption:
        cassandradata: "local-storage-cassandra"
        cassandrabak:  "local-storage-cassandra-bak"
        zookeeperdata: "local-storage-zookeeper"
        kafkadata:     "local-storage-kafka"
        couchdbdata:   "local-storage-couchdb"
  2. Create persistent volumes. Log on to the cluster and run createStorageAllNodes.sh to create the required storage types and volumes. The createStorageAllNodes.sh script is a wrapper for the create_PVs_2.1.0.3.sh script, which creates individual volumes. Running the command with the -a parameter creates persistent volumes on each available node. Running the command with the -f parameter generates a script that you can use to create the directories on each node.
    cloudctl login -a  <ICP cluster manager end point> [--skip-ssl-validation]
       ./createStorageAllNodes.sh -a  -f sshscript.sh

    Run the script output in the previous step to set up directories on each target node.

    Note: If you want to generate volumes on a specific node, specify -n NODE-IP-ADDRESS instead of -a. If you want to generate more than one volume on a node, specify -v N>, where <N> is the number of volumes to create. This parameter is useful if you have a large number of CPUs and memory available on a node and want to run multiple Cassandra instances. It is also useful if you want to install more than one chart into the same namespace.

    Run the script with -h for a list of all parameters:

    • -a generates persistent volumes on every node on the Kubernetes cluster that
      you are currently logged in to
    • -f generates SSH scripts to create the local directories on each node and
      outputs them to a file
    • -n generates persistent volumes on a specific node
    • -r defines the release that the storage is labeled with, default value:
      ibmeventanalytics
    • -s outputs sample SSH scripts to generate the volumes on each node only and
      does not setup volumes
    • -v generates a number of volumes
    • -c, -k, and -z specify the storage size allocated to each persistent volume for Cassandra, Kafka, and Zookeeper. Allow sufficient storage on the file system that these volumes are mapped to.

    The deleteStorageAllNodes.sh script is also generated from the createStorageAllNodes.sh script, which deletes the volumes after deleting the release.

  3. Set up directories on each target node by running the script that is generated in the previous step, ./sshscript.sh. You are prompted for the root SSH password of each node. Review the volumes that are created, as in the following example:

    [kubectl get pvc -o wide
    NAME                              STATUS    VOLUME                                             CAPACITY   ACCESS MODES   STORAGECLASS                  AGE
    back-precise-indri-cassandra-0    Bound     back-local-storage-cassandra-1-1-9.1.2.3.4         100Gi      RWO            local-storage-cassandra-bak   43s
    data-precise-indri-cassandra-0    Bound     local-storage-cassandra-1-1-9.1.2.3.4              100Gi      RWO            local-storage-cassandra       43s
    data-precise-indri-kafka-0        Bound     data-local-storage-kafka-1-1-9.1.2.4.5             5Gi        RWO            local-storage-kafka           43s
    data-precise-indri-zookeeper-0    Bound     data-local-storage-kafka-zookeeper-1-1-9.1.2.4.5   5Gi        RWO            local-storage-zookeeper       43s
    precise-indri-sparkslave-status   Bound     precise-indri-sparkslave-status                    20Gi       RWX                                          44s

    The persistent volume claims (PVCs) are in a bound state after installing the release.

    You can also review the pods and check that the services are running against volumes with their local IP address, as in the following example:

    $ kubectl get pods -o wide
    NAME                                                             READY     STATUS             RESTARTS   AGE       IP 
    $ kubectl get pods -o wide
    NAME                                                          READY     STATUS     RESTARTS   AGE       IP             NODE
    precise-indri-aggregationcollaterservice-7fb444c986-thqhb     0/1       Init:1/2   0          1m        10.1.2.3       9.1.2.4.5
    precise-indri-aggregationdedupservice-85fd45dbcd-f6pq4        0/1       Init:1/2   0          1m        10.1.2.4       9.1.2.3.5
    precise-indri-aggregationdedupservice-85fd45dbcd-jrmjv        0/1       Init:1/2   0          1m        10.1.2.5       9.1.2.3.4X
    precise-indri-aggregationdedupservice-85fd45dbcd-xr9hd        0/1       Init:1/2   0          1m        10.1.2.6       9.1.2.4.5
    precise-indri-aggregationnormalizerservice-85d495b645-hmmfh   0/1       Init:0/1   0          1m        10.1.2.7       9.1.2.3.5
    ...

Reference the following documentation for more information:

Download

Released: 28 Jun 2019
Version: N/A
Cost: No Charge
Support: Not Supported
Download License: L-JROZ-72S5LA

Resources

Requirements

  • IBM Netcool Operations Insights on IBM Cloud Private V1.6

Support

This package is subject to the License terms included, along with those displayed upon download.

To report a problem with deploying this entry, entitled customers may contact the country specific IBM support channel, reference the IBM Worldwide Directory.

Join The Discussion

Your email address will not be published. Required fields are marked *