Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Platform's CLI (command-line interface) is installed by default on the Platform server and supports common administrative tasks.

Table of Contents
maxLevel2

Rebooting a Cluster

There are two CLI options for rebooting a cluster: full versus rolling.

  • Full reboot notifies every chassis in the cluster to reboot itself at the same time, meaning that the entire cluster will temporarily be offline as the chassis reboot.

    Full reboot

    Code Block
    languagebashtitleFull reboot
    platform restart storagecluster --full
  • Rolling reboot is a long-running process that keeps the cluster operational by rebooting the cluster one chassis at a time, until the entire cluster has been rebooted. A rolling reboot includes several options, such as to limit the reboot to one or more chassis:

    Rolling reboot

    Code Block
    languagebashtitleRolling reboot
    platform restart storagecluster --rolling 	
    	[--chassis <comma-separated system IDs>]
    	[--skipConnectionTest]
    	[--skipUptimeTest]
    	[--continueWithOfflineChassis]
    	[--stopOnNodeError]
    Info
    titleRequirements

    Before a rolling reboot can begin, these conditions must be met:

    1. All chassis targeted for rebooting must be running and reachable. If you have offline chassis, be sure to set a flag to have them ignored:
      • To skip the connection check altogether, add the flag --skipConnectionTest
      • To have the reboot process ignore currently offline chassis, add the flag --continueWithOfflineChassis
    2. All chassis must have an uptime greater than 30 minutes. To skip this requirement, add the flag --skipUptimeTest

...

You have 10 seconds to cancel a rolling reboot before it begins. Once a rolling reboot has started, it will stop and report an error if any of these occur:

  1. A chassis is offline when it is selected for reboot. To have the reboot process ignore currently offline chassis, add the flag --continueWithOfflineChassis.

  2. The reboot process will continue if the volumes come up but a node goes into an error state. To have the reboot process stop, add the flag --stopOnNodeError.

  3. If the chassis boots with a number of volumes that doesn't match the number present before the chassis was rebooted. A volume is considered up if it has a state of: ok, retiring, retired, or unavailable

  4. The chassis does not come back online after 3 hours has passed.

If a rolling reboot has stopped due to an error, you can resume the reboot using the resume command below after you have resolved the error.

Status check —  To retrieve the status of a rolling reboot task, use the following commands for reboots remaining and reboots completed:

Rolling reboots remaining
Code Block
languagebashtitleRolling reboots remaining
platform status rollingreboot
Rolling reboots completed
Code Block
title
languagebashRolling reboots completed
platform status rollingreboot --completed

Global states — When viewing the status for a rolling reboot, a rolling reboot task can have the following global states:

  • in-progress: The rolling reboot is currently running.

  • paused: The rolling reboot has been paused (using the pause command).

  • completed: The rolling reboot finished successfully.

  • cancelled: The rolling reboot was caused per a user request.

  • error: The reboot has been stopped due to an error of some kind.

Chassis states — The status listing will also show the status for each chassis that is processed by the rolling reboot task. Each chassis can have one of the following states:

  • pending: The rolling reboot task has yet to process the chassis.

  • in-progress: The rolling reboot task is in the process of rebooting the chassis.

  • completed: The chassis was successfully rebooted.

  • removed: The chassis was removed from the list of chassis to process after the rolling reboot was started (using the delete rolling reboot command).

  • error: The chassis encountered an error of some kind.

  • abandoned: The chassis was currently being processed when a user cancelled the rolling reboot.

  • dropped: The rolling reboot was in the process of waiting for the chassis to reboot when a user request was made to move to the next chassis (using the --skip flag).

  • offline: The chassis was already offline when the reboot task attempted to reboot the chassis.

Cancel reboot — To cancel (not pause) an active rolling reboot, issue the delete command, which the reboot process at the earliest moment and thus cannot be restarted later.

...

Example: Increase Swarm processes

title
Info

Swarm 10

Swarm Storage 10 has a single-process architecture, so the configuration setting chassis.processes is no longer used and cannot be increased.

...

There may be times when you need to release a chassis from the Swarm cluster, either for temporary maintenance or for permanent removal.

title
Info

Important

To ensure a clean shut down, power off the chassis through the UI or SNMP before you run release commands.

Temporary release — Temporary release of a chassis assumes that the chassis will be added back into the cluster at a later time. Releasing a chassis lets you unallocate deallocate its cluster resources, such as IP Addresses, or wipe and reset its configuration.

Once the chassis is powered off, you can release the chassis from the Swarm cluster:

Temporary removal
Code Block
title
languagebashTemporary removal
platform release storagechassis -y <system-id>

...

Once the chassis is powered off, you can remove the chassis from Platform Server management permanently:

Permanent removal
Code Block
title
languagebashPermanent removal
platform release storagechassis -y <system-id> --remove

...

If you would like to clear out all existing setting customizations from a given chassis or the entire cluster, you can issue the following commands.

titlecode
Info

Note

These commands require a cluster reboot because the reset is not communicated to the Storage network dynamically.

Delete All Default Chassis Settings
Code Block
languagebashtitleDelete All Default Chassis Settings
platform delete allchassisconfig
Delete All Cluster Settings
Code Block
languagebashtitleDelete All Cluster Settings
platform delete allclusterconfig

...

To see the current subcluster assignments, use the list command:

List subclusters
Code Block
languagebashtitleList subclusters
platform subcluster list

To assign a chassis to a subcluster, use the assign command:

Add to subcluster
Code Block
languagebash
titleAdd to subcluster
platform subcluster assign -y <system-id> --subcluster <subcluster-name>
Info
title

Note

Reassignment is not immediate. Allow time for every node on the chassis to be migrated to the new subcluster.

To remove a chassis from a subcluster, use the unassign command:

Remove from subcluster
Code Block
languagebashtitleRemove from subcluster
platform subcluster unassign -y <system-id>
title
Info

Important

Reboot the chassis for the subcluster removal to take effect.

Changing the Default Gateway

...

Code Block
languagebash
platform add config --name "network.gateway" --value "<ip-of-gateway>"

Managing Administrators

With one exception, modifying the admin users for the Storage cluster requires the Storage cluster to be up and running before the operations can be done. The one exception to this is the "snmp" user which which can have its password set while the cluster is down or before the cluster has been booted for the first time.

Info

...

Important

Changing the password for the "snmp" user requires a full cluster reboot for the change to take effect.

Adding or Updating Users

Info

...

Important

Modifying passwords for the admin user will require you to restart the Service Proxy, if you have it installed. It could also require updates to Gateway configuration.

To add a new admin user, use the following CLI command

Add admin user
Code Block
languagebash

...

platform add adminuser 	
	[--askpassword]
	[--username <username>]
	[--password <user password>]
	[--update]

The --askpassword flag lets you avoid specifying a password via the command line by providing the password via stdin. When this flag is used, you'll be prompted to enter a new/updated password for the user. You can also use the Linux pipe functionality:

Code Block
languagebash
cat password.txt | platform add adminuser --askpassword --username admin --update
Info

...

Important

If you are just updating the password for an existing user, be sure to use the --update flag. 

To delete an admin user from the cluster, use the following CLI command:

Delete admin user
Code Block
languagebash

...

platform delete adminuser --username <username>

Upgrading Swarm Storage

To upgrade Swarm Storage in a live cluster, you can use the CLI to upload the version and then take steps to deploy it to your running nodes, either by restarting the entire cluster or each chassis in turn.

Info
title

Note

The deploy storage --upgrade command is used for both upgrades and downgrades of Storage versions.

  1. Upload the new version of the Swarm Storage software to Platform server, making sure that the <version-name> matches the version of Swarm Storage being uploaded:

    Code Block
    languagebash
    platform upload storageimages -i <path-to-zip> -v <version-name>
    
    platform upload storageimages -i ./storage-9.6.0-x86_64.zip -v 9.6
    Info
    titleNote

    The zip file to use above is contained with the Swarm-{version}-{date}.zip file that was downloaded. Inside this zip, there is a folder called Storage which contains a file called storage-{version}-x86_64.zip. This is the zip file to use for the command above.

  2. Get a full listing of all of the nodes and their IPs, MAC addresses, and system IDs:

    Code Block
    languagebash
    platform list nodes --state Deployed 
  3. Using the list of system IDs, deploy the upgrade on each of the nodes. If you want to restart the node immediately after upgrade, run that command as well:

    Code Block
    languagebash
    platform deploy storage --upgrade -v 9.2.1 -y <system-id>
    platform restart storagenode -y <system-id>
  4. If you did not restart each node individually, restart the cluster now, either full or rolling:

    Code Block
    languagebash
    platform restart storagecluster --full
    or
    platform restart storagecluster --rolling [<options>]

...

Code Block
languagebash
platform deploy proxy -b <path-to-zip> --upgrade
title
Info

Note

After a Service Proxy upgrade, it will take several minutes for the UI to come back up.

...