Managing Storage for Virtual Machine Images

The software event broker machine image provides a 10 GB partition for storage, which is only enough space for modestly sized storage-elements suitable for use in proof-of-concept deployments.

For production deployments, you must provide additional storage by assigning the event broker's storage-elements to external block devices.

The software event broker requires storage with medium to high bandwidth/IOPS and low latency. The virtual machine image uses settings for the widest compatibility; these settings are not tuned for performance. For information about getting the best storage performance, consult the best practices documentation for your platform.

Remapping Storage-Elements to External Storage

In virtual machine images, the storage-elements are mapped to volumes. To provide sufficient space for storage-elements in a production environment, you must remap the volumes to external block devices. You can do this using:

  • cloud-init at boot time
  • solacectl at runtime

Mapping Volumes with cloud-init

You can assign persistent storage volumes to external storage devices with cloud-init using the solace moduleʼs storage directive. The solace module, shown with its associated configuration_keys and storage directives, has the following syntax within #cloud-config.

#cloud-config
solace:
  configuration_keys:
    <CONFIGURATION_KEY>: <VALUE>
    <CONFIGURATION_KEY>: <VALUE>
  storage:
    <VOLUME>:
      device: <DEVICE>

For more information, see Initializing a Machine Image using cloud-init.

Mapping Volumes with solacectl

To set up a storage volume that the Solace PubSub+ application uses as an existing block device, enter the following commands from the Linux Host shell as root:

solacectl service stop
solacectl storage configure [-p] -e <device> <volumes>

Where:

-p (or --partition) the partition to setup if there are more than one. Normally this option is not needed.

-e (or --existing) specifies to setup a volume as an existing software event broker block device.

device is the destination device on which to store the volumes.

volumes is a space-separated list of volume names.

Once volumes have been externalized once, you cannot move them or increase their size using solacectl again.

For more information, see Managing Storage Volumes.