Versions Compared

Key

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

...

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.

    Code Block
    languagebash
    titleFull 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:

    Code Block
    languagebash
    titleRolling 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


Managing Rolling Reboots

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:

...

Code Block
languagebash
platform resume rollingreboot --skip

Adding a Chassis

Which version of Swarm a given node uses is set at the time of provisioning.

...

  1. Create a node.cfg file and add any node-specific Swarm settings to apply, or leave it blank to accept all current settings.

  2. Get a list of chassis that are available for deployment by using the following command:

    Code Block
    languagebash
    platform list nodes --state New


  3. Choose a System ID to deploy a single chassis using a command like the following:

    Code Block
    languagebash
    platform deploy storage -y 4y3h7p -v 9.2.1


Service Proxy

If the Service Proxy is running on the Platform Server when you add or remove chassis, be sure to restart the service so that it can pick up the new chassis list:

Code Block
languagebash
platform restart proxy

Reconfiguring the Cluster

You can modify your cluster-wide Swarm configuration at anytime using the CLI and a configuration file. The reconfiguration process is additive: all existing settings that are not referenced in your file are preserved. That is, if you define only two settings, Platform overwrites or adds only those two settings.

...

If Swarm was running during the upload, Platform Server attempts to communicate the new configuration to Swarm. Any settings that cannot be communicated to Swarm will require a reboot of the Swarm cluster in order to take effect. For each setting contained in the file, the CLI will indicate if the setting was communicated to the Storage cluster and if a reboot is required. The Swarm UI also indicates which settings require rebooting.

Example: Increase Swarm processes

Info
titleSwarm 10

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

...

  1. Add the configuration change directly:

    Code Block
    languagetext
    platform add config --name "chassis.processes" --value 6


Reconfiguring a Chassis

You can modify the node-specific settings for a single chassis by the same process, but you need to specify the MAC address of any valid NIC on that chassis.

...

The CLI will parse the uploaded configuration file for changes to make to that chassis.

Releasing a Chassis

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

...

Code Block
languagebash
titlePermanent removal
platform release storagechassis -y <system-id> --remove

Resetting to Defaults

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.

...

Code Block
languagebash
titleDelete All Cluster Settings
platform delete allclusterconfig

Managing Subclusters

After all the chassis have been deployed and are running, you can assign chassis to subclusters.

...

Info
titleImportant
Reboot the chassis for the subcluster removal to take effect.

Changing the Default Gateway

By default, the Platform Server configures Swarm Storage to use the Platform Server as its 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
titleImportant
Changing the password for the "snmp" user requires a full cluster reboot for the change to take effect.

Adding or Updating Users

Info
titleImportant

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

Code Block
languagebash
titleAdd admin user
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
titleImportant
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:
Code Block
languagebash
titleDelete admin user
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.

...

  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>]


Managing Service Proxy

Status — To check the status of the Service Proxy, use this command:

...

Info
titleNote

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


Configuring DNS

You may need to have the Storage nodes resolve names for outside resources, such as Elasticsearch or Syslog. To do so, configure the DNS server on the Platform Server to communicate with outside domains. 

Option 1: Simple forwarding

A Slave/Backup DNS zone is a read-only copy of the DNS records; it can only receive updates from the Master zone of the DNS server.

...

  1. Edit /etc/bind/named.conf.options and add the following line after the "listen-on-v6" line

    Code Block
    forwarders {172.30.0.202;};


  2. Run the following command to restart bind9 on the Platform Server:

    Code Block
    languagebash
    sudo systemctl restart bind9


Option 2: Configuring a Slave DNS Zone

If you have an external DNS Zone configured, you can have the Platform Server become a slave DNS of that zone; the reverse can be done to allow other systems to resolve names for servers managed by the Platform server.

...

  1. Edit /etc/bind/named.conf.local and add the following line at this location:

    Code Block
    languagebash
    // slave other local zones
    include "/etc/bind/named.conf.slaves";


  2. Create a new file called /etc/bind/named.conf.slaves and add your settings in this format:

    Code Block
    languagebash
    // local slave zones
    zone "example.com" in {
        type slave;
        masters {172.30.0.100; };
        file "/var/cache/bind/slave/zone-example.com";
    };


  3. Run the following command to restart bind9 on the Platform Server:

    Code Block
    languagebash
    sudo systemctl restart bind9


Configuring Docker Bridge

To configure or modify the network information that is used by the default Docker (docker0) bridge, edit the file /etc/docker/daemon.json. You can add networking properties as properties to the root JSON object in the file:

...