...
Table of Contents | ||
---|---|---|
|
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 language bash title Full 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 language bash title Rolling reboot platform restart storagecluster --rolling [--chassis <comma-separated system IDs>] [--skipConnectionTest] [--skipUptimeTest] [--continueWithOfflineChassis] [--stopOnNodeError]
Info title Requirements Before a rolling reboot can begin, these conditions must be met:
- 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
- To skip the connection check altogether, add the flag
- All chassis must have an uptime greater than 30 minutes. To skip this requirement, add the flag
--skipUptimeTest
- 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:
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 | ||
---|---|---|
| ||
platform resume rollingreboot --skip |
Adding a Chassis
Which version of Swarm a given node uses is set at the time of provisioning.
...
Create a node.cfg file and add any node-specific Swarm settings to apply, or leave it blank to accept all current settings.
Get a list of chassis that are available for deployment by using the following command:
Code Block language bash platform list nodes --state New
Choose a System ID to deploy a single chassis using a command like the following:
Code Block language bash 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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
Swarm Storage 10 has a single-process architecture, so the configuration setting |
...
Add the configuration change directly:
Code Block language text 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 | ||||
---|---|---|---|---|
| ||||
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 | ||||
---|---|---|---|---|
| ||||
platform delete allclusterconfig |
Managing Subclusters
After all the chassis have been deployed and are running, you can assign chassis to subclusters.
...
Info | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
Changing the password for the "snmp" user requires a full cluster reboot for the change to take effect. |
Adding or Updating Users
Info | ||
---|---|---|
| ||
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 | ||||
---|---|---|---|---|
| ||||
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 | ||
---|---|---|
| ||
cat password.txt | platform add adminuser --askpassword --username admin --update |
Info | ||
---|---|---|
| ||
If you are just updating the password for an existing user, be sure to use the --update flag. |
Code Block | ||||
---|---|---|---|---|
| ||||
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.
...
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 language bash 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 title Note 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 calledstorage-{version}-x86_64.zip
. This is the zip file to use for the command above.Get a full listing of all of the nodes and their IPs, MAC addresses, and system IDs:
Code Block language bash platform list nodes --state Deployed
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 language bash platform deploy storage --upgrade -v 9.2.1 -y <system-id> platform restart storagenode -y <system-id>
If you did not restart each node individually, restart the cluster now, either full or rolling:
Code Block language bash 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 | ||
---|---|---|
| ||
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.
...
Edit
/etc/bind/named.conf.options
and add the following line after the "listen-on-v6
" lineCode Block forwarders {172.30.0.202;};
Run the following command to restart bind9 on the Platform Server:
Code Block language bash 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.
...
Edit
/etc/bind/named.conf.local
and add the following line at this location:Code Block language bash // slave other local zones include "/etc/bind/named.conf.slaves";
Create a new file called
/etc/bind/named.conf.slaves
and add your settings in this format:Code Block language bash // local slave zones zone "example.com" in { type slave; masters {172.30.0.100; }; file "/var/cache/bind/slave/zone-example.com"; };
Run the following command to restart bind9 on the Platform Server:
Code Block language bash 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:
...