Upgrade Procedures

In this section you'll find a set of procedures needed for upgrading Solace PubSub+ software event brokers to version 9.3.1.

Note:  Downgrading a software event broker using these procedures is not supported.

Before you begin

Note:   Certain subscriptions and ACLs may cause an upgrade to fail to complete. Of concern: MQTT subscriptions or ACL exceptions beginning with $ or #; and SMF subscriptions or ACL exceptions beginning with #. If you do not use any such subscriptions or ACLs, there is no concern.

What's your image type?

There are different upgrade procedures depending on whether you are upgrading a Machine or Docker Image. To determine which type is running on your host, do the following:

  1. Login to the host.
  2. Enter the following command: cat /etc/solace-release.
  3. If the file exists, it's a Machine Image; otherwise it's a Docker Image.

Do you have enough free space?

You need to verify there's enough free space on all event brokers that you're going to upgrade.

During a Docker image upgrade, installing the new PubSub+ software event broker will not succeed if sufficient thin pool minimum free space is not available. Executing the docker info command in the Docker host will show both Space Available and Thin Pool Minimum Free Space. Refer to Docker documentation for more information on managing available space in Docker.

Upgrades crossing versions 8.6.0 and 8.7.0 (that is, from version 8.6.0 or older, and to version 8.7.0 or newer) require at least 2.2GB of free message-spool space. In this upgrade path, the upgrade will not be blocked from proceeding if there is not enough space available.

To free up disk space, consider the following options:

  • Unspool some spooled messages

  • Delete some spooled messages (messages cannot be recovered once deleted)

  • Migrate to a larger message-spool

To check the amount of free space available, perform one of the following procedures:

To check free space using the CLI or SEMP:

  1. Issue the following CLI command: show storage-element *
  2. Verify that the spool storage-element reports at least 2.2 Mi in the available column.

    solace> show storage-element *
    Last Refreshed   : Dec 04 2017 21:50:15
    Storage Element    1K-blocks    Used         Available    Use% 
    ------------------ ------------ ------------ ------------ -----
    root                 6.0 Mi     939.9 Ki       5.1 Mi     15%
    spool                9.8 Mi       1.6 Mi       8.2 Mi     16%
    var                  9.8 Mi       1.6 Mi       8.2 Mi     16%
    jail                 9.8 Mi       1.6 Mi       8.2 Mi     16%
    diagnostics          9.8 Mi       1.6 Mi       8.2 Mi     16%
    adb-backup           9.8 Mi       1.6 Mi       8.2 Mi     16%
    adb                  9.8 Mi       1.6 Mi       8.2 Mi     16%

To check free space using solacectl (available in machine images only):

  1. Issue the following command: sudo solacectl storage ls. This command requires root level access. The sysadmin user has been granted sudo access for this command. All other users require root credentials to execute the command.
  2. Verify that the internalSpool storage volume reports at least 2.2G in the available column.

    [sysadmin@solace ~]# sudo solacectl storage ls
    Block Devices:
    Name                                              Size      Note
    vda                                               30.0G     Main device
    └─vda1                                            0.2G
    └─vda2                                            29.8G
    vdb                                               29.3G
    └─vdb1                                            29.3G
    Storage Volumes:
    Name                                              Size      Used      Available Path
    /dev/mapper/vg01-root                             9.8G      1.2G      8.6G      /
    /dev/mapper/vg01-solace                           9.8G      2.5G      7.4G      /var/lib/docker/volumes
    ├─adb                                             9.8G      2.0G      7.4G      /var/lib/docker/volumes/adb/_data
    ├─adbBackup                                       9.8G      0         7.4G      /var/lib/docker/volumes/adbBackup/_data
    ├─etc                                             9.8G      8.0K      7.4G      /etc/solace/solace-container.d
    ├─internalSpool                                   9.8G      391M      7.4G      /var/lib/docker/volumes/internalSpool/_data
    └─var                                             9.8G      25M       7.4G      /var/lib/docker/volumes/var/_data
    /dev/vdb1                                         30G       45M       30G       /mnt/vmr
    ├─diagnostics                                     30G       0         30G       /mnt/vmr/diagnostics
    └─jail                                            30G       13M       30G       /mnt/vmr/jail
    Image Pool:
    Name                                              Size      Used      Available
    Image pool                                        8.905GB   1.26GB    7.645GB