...
SCS’s CLI (command-line interface) is installed by default on the SCS server and supports common administrative tasks.
Getting Help
Every command within the CLI offers help. Some examples:
...
scsctl help
...
scsctl init dhcp help
...
In any of the examples, any time an instance ID is used, an instance name may also be used (if one had previously been defined for the instance).
Info |
---|
Important: In the below examples, values that require user-provided values are wrapped in curly braces ( |
Getting Help
Every command within the CLI offers help. Some examples:
scsctl help
scsctl init dhcp help
scsctl repo component add help
Listing Components
...
List the instances within a given the default group of a component (most common usage):
Code Block |
---|
scsctl {component} instance list -d |
List the instances within a specific group of a component:
Code Block |
---|
scsctl {component} instance list --group "{group name}" |
List the nodes in the Swarm Storage cluster (-d
is used to refer to the default group rather than referring to it by name):
...
Info |
---|
This listing will also include instances that SCS knows about that are currently offline. If any of these instances will remain offline (such as decommissioned hardware, etc), then consider removing them from SCS. |
Assuming an Old Instance Identity
Any time Whenever the identity of an instance identity changes (typically when a storage node has a change to its networking cards), it will appear to SCS SCS will recognize it as an entirely new instance, even if nothing really substantial has changed. Also, the the change is not substantial. The former identity still exists in SCS, but will never be used ( including any instance-specific setting or template overrides). There However, there is a way method to tell instruct SCS to associate the former identity with the new instance ID, clearing which will also clear out the old identity in the process.
Note |
---|
CautionAt the time As of this writing, there is a bug in the CLI contains a bug when issuing this command to the API. Instead, use the curl command provided below to access the API directly." |
Code Block |
---|
scsctl {component} instance rename "{new instance ID}" "{former instance ID}" --force |
...
If SCS ever needs to “forget” about an instance, use the following command to fully remove it from SCS. The example below uses the default group, but you can use the -g {group name}
form of the command as needed.
Note | ||
---|---|---|
CautionRemoving an instance removes deletes all associated custom configuration (settings), configuration file templates, and static files associated with that instance. Use this command with caution!
|
Defining the Storage Cluster
...
Each node forms a de-facto subcluster if no explicit subcluster assignments are made in the Swarm Storage configuration. The Swarm Storage component (storage
) provides the node.subcluster
setting as a free-form name that may can be assigned to one or more nodes.
The storage process looks at all names assigned to the different nodes and forms them into groups, which can then be used to determine how groups nodes based on their assigned names, which are then used to manage object replica distribution and protection are handled. The nodes may be . Nodes that are grouped using subclusters can be configured in any way needed necessary to achieve the desired replica/fail-over paradigm.Update the subcluster for a storage node-over strategy.
Update the subcluster for a storage node:
Code Block |
---|
scsctl storage config set -d --instance "{instance ID}" "node.subcluster={subcluster name}" |
Updating a Cluster Setting
Update a cluster setting for Swarm Storage:
Code Block |
---|
scsctl storage config set -d "{setting name}={setting value}" |
Some specific examples:
Code Block |
---|
scsctl storage config set -d "policy.versioning=allowed"
scsctl storage config set -d "policy.eCEncoding=4:2" |
Updating a Storage Node Setting
Update a cluster setting for Swarm Storage:
Code Block |
---|
scsctl storage config set -d --instance "{instance ID}" "{setting name}={setting value}" |
Some specific examples:
Code Block |
---|
scsctl storage config set -d --instance "{instance ID}" "ec.protectionLevel=node"
scsctl storage config set -d --instance "{instance ID}" "feeds.maxMem=500000" |
Resetting a Setting
Removing a setting override means that the value for the setting is inherited from a higher scope. Removing an instance-level override means that the value for the setting is obtained from either the group (if a group-level override exists) or the component level. Removing a group-level override does not affect any existing instance-level overrides within that group.
Instance Level
Reset an instance-level override. Either the default-group or specific-group form of the command may be used:
Code Block |
---|
scsctl {component} config unset -d --instance "{instance ID}" "{setting name}" |
or
Code Block |
---|
scsctl {component} config unset --group "{group name}" --instance "{instance ID}" "{setting name}" |
Group Level
Reset a group-level override. Either the default-group or specific-group form of the command may be used:
Code Block |
---|
scsctl {component} config unset -d "{setting name}" |
or
Code Block |
---|
scsctl {component} config unset --group "{group name}" "{setting name}" |
Updating Network Settings
Shared network settings, such as DNS information and NTP time sources, can be updated as per requirement.
DNS Servers
Update the list of DNS servers (specified as comma- or space-delimited list).
Code Block |
---|
scsctl network_boot config set -d "network.dnsServers={new DNS servers}" |
The example output is:
Code Block |
---|
scsctl storagenetwork_boot config setshow -d --instance "{instance name/ID}" "node.subcluster={subcluster name}" |
Updating a Cluster Setting
...
network.dnsServers
['10.166.2.18'] |
This also requires updating the DHCP server so the setting can be made available to booting Storage nodes. See Configure DHCP.
Code Block |
---|
scsctl storageinit configdhcp set -d "{setting name}={setting value}" |
Some specific examples:
Code Block |
---|
scsctl storage config set -d "policy.versioning=allowed"
scsctl storage config set -d "policy.eCEncoding=4:2" |
Updating a Storage Node Setting
...
{reserved ranges} |
It is recommended to check the bash history on the SCS to view the prior command and its settings. Run the below command on the SCS to view the last DHCP setting command used.
Code Block |
---|
history | grep "scsctl init dhcp" | tail -1 |
DNS Domain
Update the DNS domain (specified as comma- or space-delimited list):
Code Block |
---|
scsctl storageplatform config set -d --instance "{instance name/ID}" "{setting name}={setting value}" |
...
network.dnsDomain={new DNS domain}" |
The example output is:
Code Block |
---|
scsctl storageplatform config setshow -d --instance "{instance name/ID}" "ec.protectionLevel=node" scsctl storage config set -d --instance "{instance name/ID}" "feeds.maxMem=500000" |
Resetting a Setting
Removing a setting override means that the value for the setting is inherited from a higher scope. Removing an instance-level override means that the value for the setting is obtained from either the group (if a group-level override has been set) or component level. Removing a group-level override has no influence on any existing instance-level overrides that may exist within that group.
Instance Level
Reset an instance-level override:
Code Block |
---|
scsctl {component} config unset --group "{group name}" --instance "{instance name/ID}" "{setting name}" |
Group Level
Reset a group-level override:
Code Block |
---|
scsctl {component} config unset --group "{group name}" "{setting name}" |
Updating Network Settings
Shared network settings, such as DNS information and NTP time sources, may be updated as the need arises.
DNS Servers
Update the list of DNS servers (specified as comma- or space-delimited list):
Code Block |
---|
scsctl network_boot config set -d "network.dnsServers={new DNS servers}" |
This also requires that the DHCP server be updated so the setting can be made available to booting Storage nodes.
Code Block |
---|
scsctl init dhcp {reserved ranges} |
NTP Servers
Update the list of NTP servers (specified as comma- or space-delimited list):
Code Block |
---|
scsctl platform config set -d "network.ntpServers={new NTP servers}" |
...
network.dnsDomain
certlab.local |
This also requires updating the DHCP server so the setting can be made available to booting Storage nodes. See Configure DHCP.
Code Block |
---|
scsctl init dhcp {reserved ranges} |
It is recommended to check the bash history on the SCS to view the prior command and its settings. Run the below command on the SCS to view the last DHCP setting command used.
Code Block |
---|
history | grep "scsctl init dhcp" | tail -1 |
NTP Servers
Update the list of NTP servers (specified as comma- or space-delimited list):
Code Block |
---|
scsctl platform config set -d "network.ntpServers={new NTP servers}" |
This also requires updating the DHCP server so the setting can be made available to booting Storage nodes. See Configure DHCP.
Code Block |
---|
scsctl init dhcp {reserved ranges} |
It is recommended to check the bash history on the SCS to view the prior command and its settings. Run the below command on the SCS to view the last DHCP setting command used.
Code Block |
---|
history | grep "scsctl init dhcp" | tail -1 |
Swarm (Internal) Network MTU
Network MTU for the entire Swarm storage cluster is governed by the MTU set on the internal network interface of SCS. This value is put into DHCP configuration during the init dhcp
process, and served to all storage nodes on boot.
Note |
---|
CautionIt is important that this is done after the |
Update the MTU on the internal network interface.
List the interface details on the SCS to ensure that the change is correct.
Re-initialize DHCP to apply to changes to any future booting storage nodes:
Code Block scsctl init dhcp {reserved ranges}
Swarm (Internal) Network
...
Gateway
The network gateway for the entire Swarm storage cluster is governed by the MTU set on cluster is governed by a setting available in SCS as of version 1.5. The setting is provided by the network_boot
component, and is called network.gateway
. By default, this setting points to the IP address of the internal network interface of SCS, but may be overridden by normal means using the CLI. This value is put into DHCP configuration during the init dhcp
process , and served to all storage nodes on boot.
Note |
---|
CautionIt is important Verify that this is done after AFTER the |
Update the MTU on the internal network interface.
List the interface details on the SCS to ensure that the change is correct.
Re-initialize DHCP to apply to changes to any future booting storage nodes:
Code Block scsctl init dhcp {reserved ranges}
Swarm (Internal) Network Gateway
The network gateway for the entire Swarm storage cluster is governed by a setting available in SCS as of version 1.5. The setting is provided by the network_boot
component, and is called network.gateway
. By default, this setting points to the IP address of the internal network interface of SCS, but may be overridden by normal means using the CLI. This value is put into DHCP configuration during the init dhcp
process, and served to all storage nodes on boot.
Note |
---|
CautionIt is important that this is done AFTER the |
...
Update the network.gateway
setting.
Code Block |
---|
scsctl network_boot config set -d "network.gateway={gateway_ip_address}" |
Re-initialize DHCP to apply to changes to any future booting storage nodes:
...
. |
Update the
network.gateway
setting.Code Block scsctl network_boot config set -d "network.gateway={gateway IP address}"
Re-initialize DHCP to apply changes to any future booting storage nodes. See Configure DHCP.
Code Block scsctl init dhcp {reserved ranges}
It is recommended to check the bash history on the SCS to view the prior command and its settings. Run the below command on the SCS to view the last DHCP setting command used.
Code Block history | grep "scsctl init dhcp" | tail -1
Updating Network Bonding in Swarm Storage
...
Code Block |
---|
scsctl platform config set -d "admin.password={new password}" |
Updating CLI Credentials
The CLI requires knowing the administrative credentials to perform operations against the SCS server. To set these credentials:
Code Block |
---|
scsctl auth login --user "{administrative user name}" |
The CLI then securely prompts for the administrative password and proceeds with authentication.
Upgrading Swarm Storage
Note |
---|
WarningSCS may need to be upgraded before Swarm Storage. Verify the Swarm Storage version and SCS version are compatible before upgrading Swarm Storage. See Upgrading to the Latest SCS Version for CentOS 7 for more details. |
Obtain the component bundle for the desired version from DataCore Downloads to upgrade the Swarm Storage software of a running cluster. Transfer the bundle to the SCS server and run the following commands to register it with SCS.
Replace new-version with the version being installed:
Code Block |
---|
unzip Swarm-new-version.zip |
Navigate to the Storage directory and run the following:
Code Block |
---|
cd Swarm-new-version/Storage/
scsctl repo component add -f swarm-scs-storage-new-version.tgz |
...
config set -d "admin.password={new password}" |
Updating CLI Credentials
The CLI requires knowing the administrative credentials to perform operations against the SCS server. To set these credentials:
Code Block |
---|
scsctl auth login --user "{administrative user name}" |
The CLI then securely prompts for the administrative password and proceeds with authentication.
Upgrading Swarm Storage
Note |
---|
WarningSCS may need to be upgraded before Swarm Storage. Verify the Swarm Storage version and SCS version are compatible before upgrading Swarm Storage. See Upgrading to the Latest SCS Version for CentOS 7 for more details. |
Obtain the component bundle for the latest version from DataCore Downloads to upgrade the Swarm Storage software of a running cluster. Transfer the bundle to the SCS server and run the following commands to register it with SCS:
Use the command below to get the list of Storage software versions that have been registered with SCS.
Code Block scsctl storage software list
...
Info |
---|
ImportantIt should be automatically marked as active if this is the first time Swarm Storage software has been registered with SCS. The following step may be skipped otherwise proceed with activation if so. |
It has been successfully registered if the new version is in the list. It is not used for booting nodes and the current active version is used. Mark it as active to complete the upgrade:
Code Block |
---|
scsctl storage software activate "new-version (new-version)"
activated |
...
If the desired version already present in the list, continue with step 5 when ready to boot Swarm Storage nodes to the desired version.
Unpack the downloaded Swarm Storage software bundle
Navigate to the Storage directory within that bundle and run the following command to register the Swarm storage software with SCS (please insert the correct version string where needed).
Code Block cd Swarm-{desired version}/Storage/ scsctl repo component add -f swarm-scs-storage-{desired version}.tgz
Verify the desired version is present in the list of available versions.
Code Block scsctl storage software list
...
Info |
---|
The software has been successfully registered if the latest version appears in the list. It will not be used for booting nodes unless it is also marked as |
Note |
---|
CautionActivating a version means that any nodes that reboot will use the binaries for the new activated version. Do not complete this proceed with the next step until ready for storage nodes to proceed with the upgradeboot with the changed version. |
Activate this desired version to complete the upgrade.
Code Block scsctl storage software activate
Choose the desired version in the menu. The activated version will be used the next time that storage nodes reboot.
Removing an Installed Version of Swarm Storage
...
Code Block |
---|
scsctl storage software list 14.0.1 (14.0.1) (active) 14.1.2 (14.1.2) |
Info |
---|
ImportantIf the version to be removed is currently the active version, it is strongly recommended that another version (if available) be marked active prior to removing the desired version. |
...
Remove the desired version, using the entire version string:
Info |
---|
ImportantIf the version being removed is the only installed version, or if another version cannot be activated for any reason, then the |
...