Provisioning storage

When you install the initial node, the first storage bucket, global_mbx, and the first variant, 00, are created by default. The global_mbx bucket, along with other configuration information, is copied to the shared storage path specified for other data centers after installing the initial Global Mailbox node. You can replace the default bucket or configure other buckets by running the storageConfigurator script.

Important: Make any changes to the configuration before deploying the system. This includes enabling encryption of the storage data at rest. If the configuration must be changed, a new storage bucket variant must be provisioned. This operation must be conducted during a maintenance mode when there are no transactions occurring. Do not remove or delete the storage bucket named global_mbx, or the one named 1st_provisioned, or any other directories created by the system.

To enable encryption of the storage data at rest, you must provision the storage by using the advanced options in the storageConfigurator script. All data centers must be shut down before the configuration files are copied to them. Changing encryption settings requires replacing the storage buckets with new variants. To avoid lost data and possible corruption, enable encryption with the storageConfigurator script and copy the files to all other data centers before starting use of your system.

Set the passphrase for the shared storage. For more information about setting the passphrase, see Creating a storage passphrase.

You can provision storage only by using the command line. You cannot provision storage by using an API.

To provision storage from the command line:

  1. Create the bucket base file path.
  2. Open the /MailboxUtilities/admin/bin directory.
  3. Provision storage.
    1. To provision storage with fewer options, type ./storageConfigurator.sh -provision.
    2. To provision storage with advanced options, type ./storageConfigurator.sh -provision -a.
  4. Enter values in response to the questions. You can accept the default values, or change them to suit your needs.
    1. Enter storage bucket name (global_mbx).
      A descriptive name for the bucket. The first storage bucket, which is created during installation, is named global_mbx_var00.
    2. Enter a new variant ID (01)
      Enter an identifier that is a number 01 - 63 for this configuration of the bucket. The first variant that is created is zero. Each subsequent variant must be unique.
    3. Does this new variant supersede one or more earlier variants? [y|n] (n)
      Indicates whether the new variant replaces any previous variants. The following values are valid:
      • y - true, type the identifiers of the variants you want to retire, separating them by commas.
      • n - false (Default)
      Important: If the configuration must be changed, a new variant provisioned. This operation must be conducted during a maintenance mode when there are no transactions occurring.
    4. Enter base file path for this storage variant
      The first time that you provision a storage bucket, enter a base file path for the file system. This path is the path on all servers where shared storage is installed. The base file path must be a path that can be accessed by the storage component. The path can point to one of the following locations:
      • NFS mount
      • GPFS mount
      • CIFS share
      • Local file system
    5. Always store MD5 message digest with each blob? [y|n] (y)
      Indicates whether a hash value is stored in metadata when not specified in the header. The following values are valid:
      • y - true (Default)
      • n - false
    6. Enter maximum lifespan for blobs, in days (30)
      Accept the default value. For Global Mailbox storage, this value determines how files are placed in directories within the storage bucket. This value does not determine how files are purged or deleted from the system.
    7. Store blobs encrypted? [y|n] (n)
      Encryption of data blobs is enabled or disabled based on this flag. Files must be encrypted while in storage to keep sensitive data secure. In certain circumstances, such as testing or handling files that do not require security, you can disable encryption. The following values are valid:
      • y - true
      • n - false (default)
    8. (If you entered y for the previous prompt) Choose storage cryptography specification.
      Select a number next to the possible listed algorithms. The following values are valid:
      • 0. AES/CBC/PKCS5Padding KeyLength=128 (default)
      • 1. TripleDES/CBC/PKCS5Padding KeyLength=112
      • 2. TripleDES/CBC/PKCS5Padding KeyLength=168
    9. (If you are using the -a option) Enter buffer size, in bytes (32768)
      The size, in bytes, of the buffer for storage.
    10. (If you are using the -a option) Enter max number of async storage threads (10)
      The maximum number of threads that can be allocated for handling asynchronous input and output.
    11. (If you are using the -a option) Use synchronous writes to storage? [y|n] (n)
      Indicates whether to configure storage for synchronous writes. The following values are valid:
      • y - true - Each write of the data is synchronized on a single thread to the file system as part of the write.
      • n - false (Default) - Each write of the data is pipe-lined across multiple threads to the file system, which increases throughput.
    12. (If you are using the -a option) Choose how blob metadata must be stored
      Indicates how to store the blob metadata that accompanies the storage payload content. The following values are valid:
      • 0 - Store metadata as a header in the same internal file that holds the content. (Default)
      • 1 - Store metadata as extended attributes. This option can help performance when access to the extended attributes is faster than opening a file. This option also is more robust in cases where blob metadata is updated frequently or concurrently.
        Restriction: This option is not supported on NFS.
    13. (If you are using the -a option) Compress each storage blob? [y|n] (n)
      Indicates whether to compress each storage blob before it is written to the storage system. Compressing blobs saves storage space.
    14. (If you entered y for the previous prompt) Choose the Compression Level to use during compression
      The levels of compression for storage blobs that are compressed before they are written to the storage system. Storage uses the zlib compression algorithm. For more information about the compression levels, see http://www.zlib.net/manual.html. The following values are valid:
      • 0 - Default compression level (Default)
      • 1 - Best compression level
      • 2 - Fastest compression level
    15. (If you are using the -a option) Enter concurrent access lease acquisition wait time in milliseconds (0):
      The time a client session requesting a lock for writing to a blob must wait to detect other competing requests. The default value is 0. If the risk of having multiple sessions accessing a payload simultaneously is high, the value can be configured to a few milliseconds. The wait time adds a corresponding latency in the write operation.
    16. (If you are using the -a option)Enter concurrent access lease duration in milliseconds (60000):
      The time a lock is held. With continuous write, the lease is renewed periodically. When a session holding a lock fails or becomes idle, another session can acquire a lock only after the duration passes and the lease expires. The default value is 60000.
  5. Confirm that the values define the configuration correctly. If so, enter y for the following prompt:
    Accept configuration [y|n]:
    If the values do not define the configuration correctly, enter n to change the values.
    Restriction: This prompt does not have a default value. You must enter y or n.

If your Global Mailbox must support high volumes of transactions, you can increase the number of storage bucket variants to improve throughput. For more information, see Create multiple storage bucket variants and Copy storage configuration to other data centers.