Managing S3 object service instance

Use the CLI or the API to manage your S3 object service instance.

You must have the following details before you can create an S3 object service instance.
  • Set up the high availability option, the range of 3 IP addresses and the number of IBM Storage Scale DAS labeled nodes on which the noobaa endpoints can scale to.
  • The name of the storage class to configure a database for the S3 service. If you do not specify this parameter, the default storage class is used.
    Note: The dbStorageClass parameter is optional. The IBM Storage Scale DAS operator selects the storage classes defined on the OCP cluster by using spectrumscale.csi.ibm.com, if there is only one such storage class. If there are more than one storage classes defined on the OCP cluster using spectrumscale.csi.ibm.com as the provisioner, the DAS operator cannot automatically select one of those to configure the S3 service with. In such a scenario, you need to specify which of those storage classes must be used to configure the S3 service.
  • The name of the IBM Storage Scale file system that acts as the data backend for access by using the S3 object service interface. If it is not specified, the default file system that is mounted on the IBM Storage Scale container native pods would be automatically detected and used.

Use the following information to create, list, delete, or update your S3 object service instance.

  • Create an IBM Storage Scale DAS S3 object service instance as follows:
    • CLI
      mmdas service create s3 --acceptLicense --ipRange "192.0.2.12-192.0.2.14" --scaleFactor 1
      Note: If we need to increase the number of noobaa endpoints (for example, scaleFactor), ensure to have sufficient memory on the system (for example, memory on DAN nodes).
      A sample output is as follows:
      Create request for Spectrum Scale Data Access Service: 's3' is accepted
      In these command examples, the following parameters are specified:
      • License acceptance
        Note: The --acceptLicense flag is mandatory to create the S3 service. Using this flag is required to register the acceptance to the IBM Storage Scale Data Access Services (DAS) license before you deploy the service. Before deploying the service, carefully read the terms and conditions of the license. For more information, see terms and conditions of the license.
      • Range of IP addresses for high availability configuration
        Note: The IP range can be set up only at the service creation time. Use the IP range to enable the S3 service access over the specified range of IP addresses. These IP addresses can be configured with an external DNS whose domain name can be used by the S3 client applications to access the storage over S3 protocol by using that DNS URL.
        Range of IP addresses has the following requirements:
        • It must be in the format: x.x.x.x-x.x.x.x
        • It must be in a sequence. For example, 192.0.2.12-192.0.2.14
        • It must match the number of OCP nodes which are labeled for IBM Storage Scale usage; nodes that have the scale=true label. You can check the number of nodes that have the scale=true label by issuing the following command:
          oc get nodes --show-labels | grep scale=true
      • Number of nodes on which the noobaa endpoints can scale to.
        Note: Select a scaleFactor according to your requirements at the time of creating the service because the scaleFactor must not be changed during active I/O.
    • REST API
      curl -k -X POST -k -H "Content-Type: application/json" -H "Authorization: Basic czMtYWRtaW46UGFzc3cwcmQ=" https://<ibm-spectrumscale_host>/scalemgmt/v2/das/services/ 
      -d '{"name":"s3","enable":true,"acceptLicense":true,
      "ipRange":"192.0.2.12-192.0.2.14",
      "scaleFactor":1}'
      A sample output is as follows:
      {"message":"Create request for Spectrum Scale Data Access Service: 's3' is accepted"}
      Note: The variable <ibm-spectrumscale_host> in the request URL must be replaced with the route host. Obtain the route host by using the following command from a node that is configured to work with the Red Hat OpenShift Container Platform (OCP) cluster:
      oc get route ibm-spectrum-scale-gui -n <IBM Storage Scale namespace> -o json | jq .spec.host
      For example,
      oc get route ibm-spectrum-scale-gui -n ibm-spectrum-scale -o json | jq .spec.host
      A sample output is as follows:
      
      "ibm-spectrum-scale-gui-ibm-spectrum-scale.example.com"
  • List the information of the IBM Storage Scale DAS service instance as follows:
    • CLI
      mmdas service list
      A sample output is as follows:
      Name   Enable  Phase 
      -----  -----   ------ 
      s3     true    Ready 
      • The Enable column shows whether the S3 service instance is enabled or disabled.
      • The deployment phase of the service instance shown in the Phase column can be one of the following values:
        • Ready: The service instance is ready to be used for S3 account creation or export creation.
        • Configuring: The service instance configuration is in progress.
        • Connecting: The service instance is trying to establish communication between the S3 endpoints and the S3 database.
        • Failed: The service instance configuration has failed.
        Attention: Once you issue the service creation command, for a brief period of time, the Phase column might be empty.
      To list the detailed information for the IBM Storage Scale DAS S3 object service instance, issue the following command:
      mmdas service list s3
      A sample output is as follows:
      Name   AcceptLicense   DbStorageClass                  Enable  EnableMD5
      -----  -----           --------------                  ------
      s3     true            ibm-spectrum-scale-sample       true    true
      
      ScaleDataBackend       Phase   S3Endpoints
      -----                  -----   --------------
      [/mnt/remote-sample]   Ready   [https://192.0.2.12 https://192.0.2.13 https://192.0.2.14]
      
      IpRange                EnableAutoHA    ScaleFactor
      -----                  -----           --------------
      192.0.2.12-192.0.2.14    true            1
    • REST API
      curl -k -X GET -H "accept: application/json" https://<ibm-spectrumscale_host>/scalemgmt/v2/das/services/s3
      A sample output is as follows:
      {
      "acceptLicense" : true,
      "dbStorageClass" : "ibm-spectrum-scale-sample",
      "enable" : true,
      "enableAutoHA" : false,
      "enableMD5" : false,
      "ipRange" : "192.0.2.12-192.0.2.14",
      "name" : "s3",
      "phase" : "Ready",
      "s3Endpoints" : [ "https://192.0.2.12", "https://192.0.2.13", "https://192.0.2.14" ],
      "scaleDataBackend" : [ "/mnt/remote-sample" ],
      "scaleFactor" : 1
      }
  • Update the IBM Storage Scale DAS service instance as follows:
    • CLI
      mmdas service update s3 --enableMD5 --disableAutoHA --scaleFactor 2
      This command enables md5sum calculation, disables automatic IP address failover and failback, and changes the scaleFactor to 2. A sample output is as follows:
      Update request for Spectrum Scale Data Access Service: 's3' is accepted
    • REST API
      curl -X PUT -H "Content-Type: application/json" -H "Authorization: Basic czMtYWRtaW46UGFzc3cwcmQ=" https://<ibm-spectrumscale_host>/scalemgmt/v2/das/services/
      -d '{"name":"s3","enableMD5":true,"enableAutoHA":false,"scaleFactor":2}'
      A sample output is as follows:
      {"message":"Update request for Spectrum Scale Data Access Service: 's3' is accepted"} 
    Note: You must not change the scaleFactor during active I/O, otherwise I/O failure might occur. Change the scaleFactor during a maintenance window when there is no active I/O. For more information, see Changing scaleFactor might result in I/O failure.
  • Delete the IBM Storage Scale DAS service instance as follows:
    • CLI
      mmdas service delete s3
      A sample output is as follows:
      Delete request for Spectrum Scale Data Access Service: 's3' is accepted
    • REST API
      curl -k -X DELETE -H "Authorization: Basic czMtYWRtaW46UGFzc3cwcmQ=" https://<ibm-spectrumscale_host>/scalemgmt/v2/das/services/s3
      A sample output is as follows:
      {"message":"Delete request for Spectrum Scale Data Access Service: 's3' is accepted"}