essrun command

Runs the IBM Elastic Storage® System (ESS) deployment command to create and deploy a working ESS cluster.

Synopsis


essrun { -N NODE-LIST | NODE-GROUP } [--offline] [-v] [-h]
       { config | healthcheck | update | timeset | firewall 
       | security | selinux | sudo | admincentral | network | cluster 
       | filesystem | vdisk | gui | cesvm }

Availability

Available with IBM Storage Scale System. [Only available in the management container]

Description

The essrun command runs the ESS deployment to create and deploy a working ESS cluster. It can be used to run the following Ansible® roles in ESS.
  • config: Configure requirements for ESS
  • healthcheck: General health check status of the node(s)
  • update: Update node to the latest ESS packages
  • Start of changetimeset: Time check option for ESS 5000End of change
  • firewall: Firewall security option for ESS
  • security: Security option for ESS
  • selinux: SELinux security option for ESS
  • sudo: Sudo security option for ESS
  • admincentral: AdminCentral security option for ESS
  • network: Create a high-speed network in ESS
  • cluster: Create an ESS cluster
  • filesystem: Create a file system on ESS
  • vdisk: Create a vdiskset on ESS
  • gui: Configure or modify GUI setup for ESS Legacy
  • cesvm: Manage CES VM in ESS.

Parameters

-N NODE-LIST | NODE-GROUP
Specifies hosts with host names separated by comma or the name of the node group.
--offline
Run program on all nodes specified with the -N option.
-v | -V
Shows verbose output.
-h | --help
Displays usage information about this script and exits.

To display usage information for the roles available with essrun, use -h or --help with the role name. For example, to display usage information for the firewall role, use essrun firewall --help.

Subcommand help

config
Shows general health check status of the node(s).
Usage:Start of change
essrun config [-h] [-p]  { load }
End of change
-p
Prompts for password used for root login to node(s).
load
Detects the node type of specified nodes, and configures passwordless SSH, creates node definitions, and creates VPD files.
-h | --help
Displays usage information about this subcommand and exits.
healthcheck
Shows general health check status of the node(s).
Usage:
essrun healthcheck [-h]
-h | --help
Displays usage information about this subcommand and exits.
update
Updates nodes to the latest ESS packages.
Usage:
essrun update [-h] [--precheck | --offline | --serial { n | all }] [--include-firmwares | --ofed-only] [--silent]
--precheck
Dry-run of an update. It executes primary checks for the nodes defined in -N and has to be run before actual update.
--offline
Run the update on all nodes specified with the -N option in the offline mode. If --offline is not specified, the command is run in the online mode (default behavior).
--ofed-only
Updates the OFED only. These updates are only done offline. This command option forces the reinstall of OFED.
--include-firmwares
Tries to update a storage enclosure and all drive firmware on I/O nodes (mmchfirmware).
-s | --silent
Run the update silently.
--serial { n | all }
Provides number for defining how many hosts Ansible should manage at a single time during online update. The default value is 1.
-h | --help
Displays usage information about this subcommand and exits.
Start of changetimesetEnd of change
Start of changeTime check option for ESS 5000.
Usage:
essrun timeset [-h] [--server-ip 192.168.1.1]
                   [--server-network 192.168.1.0/24]
                   {client,server}
--server-ip 192.168.1.1
Provides NTP Server IP address. It is needed for client option.
--server-network 192.168.1.0/24
Provides NTP Server network. It is needed for server option.
-h | --help
Displays usage information about this subcommand and exits.
End of change
firewall
Configures firewall security options for ESS.
Usage:
essrun firewall [-h] { enable | disable }
enable
Enables the firewall.
disable
Disables the firewall.
-h | --help
Displays usage information about this subcommand and exits.
security
Configures security options for ESS.
Usage:
essrun -N NODE-LIST security [-h] { enable | disable | verify }
enable
Enables security.
disable
Disables security.
verify
Verifies the security status.
-h | --help
Displays usage information about this subcommand and exits.
selinux
Configures SELinux security options for ESS.
Usage:
essrun -N NODE-LIST security [-h] { permissive | enable | disable }
permissive
Enables SELinux security in the permissive mode.
enable
Enables SELinux security in the enforcing mode.
disable
Disables SELinux security.
-h | --help
Displays usage information about this subcommand and exits.
Start of changesudoEnd of change
Start of changeConfigures SUDO security options for ESS.
Usage:
essrun sudo [-h] [--user SUDO_USER] [--group SUDO_GROUP] [--sudo-password ]
            { enable | disable | disable_root | enable_root}
--user SUDO_USER
Specifies the SUDO user name.
--group SUDO_GROUP
Specifies the SUDO group name.
--sudo-password
Provides the sudo password for the node (s).
enable
Enables SUDO.
disable
Disables SUDO.
disable_root
This option is required for SUDO disable_root.
enable_root
This option is required for SUDO enable_root.
-h | --help
Displays usage information about this subcommand and exits.
End of change
admincentral
Configures Admin Central related security options for ESS.
Usage:
essrun admincentral [-h] { enable | disable }
enable
Enables Admin Central mode.
disable
Disables Admin Central mode.
-h | --help
Displays usage information about this subcommand and exits.
network
Creates a high-speed network for ESS.
Usage:
essrun network [-h] --suffix=SUFFIX
--suffix=SUFFIX
Specifies the suffix of the high-speed network. You must add it separated by "=" and with no blank spaces.
-h | --help
Displays usage information about this subcommand and exits.
cluster
Creates an ESS cluster.
Usage:
essrun cluster [-h] [--name CLUSTER-NAME] [--suffix=SUFFIX]
               [--add-ems EMS-NODE | --add-nodes NODE-LIST]
--name CLUSTER-NAME
Specifies the cluster name. The default cluster name is test01.
--suffix=SUFFIX
Specifies the suffix of the high-speed network. You must add it separated by "=" and no blank spaces. For example, --suffix=-hs.
--add-ems EMS-NODE
Specifies the name of the ESS Management Server (EMS) node to be added.
--add-nodes NODE-LIST
Specifies the names of the ESS I/O nodes in a comma-separated list.
-h | --help
Displays usage information about this subcommand and exits.
filesystem
Creates a file system on ESS.
Usage:
essrun filesystem [-h] [--name FS_NAME] [--code RaidCode]
                       [--bs BlockSize]
                       [--size {n% | n | nK | nM | nG | nT}] 
                       --suffix=SUFFIX [--rg-only | --ces]
--name FS-NAME
Specifies the file system name. The default file system name is fs5k. The default file system name for CES is cesSharedRoot.
--code RaidCode
Specifies the RAID code. The default RAID code is 8+2p.
--bs BlockSize
Specifies the block size. The default block size is 16M.
--size {n% | n | nK | nM | nG | nT}
Specifies the vdiskset size. The default vdiskset size is 100%.
--suffix=SUFFIX
Specifies the suffix of the high-speed network. You must add it separated by "=" and with no blank spaces. For example, --suffix=-hs.
Start of change--rg-onlyEnd of change
Start of changeUse this flag if you want to create recovery groups only.End of change
--ces
Use this flag if you want to create a CES file system.
-h | --help
Displays usage information about this subcommand and exits.
vdisk
Creates a vdiskset on ESS.
Usage:
essrun vdisk [-h] [--name VS_NAME] [--code RaidCode] [--bs BlockSize]
                  [--size {n% | n | nK | nM | nG | nT}] --suffix=SUFFIX
                  [--extra-vars "mmvdisk vdisk define options"]
--name VS-NAME
Specifies the vdiskset name. The default vdiskset name is 5k.
--code RaidCode
Specifies the RAID code. The default RAID code is 8+2p.
--bs BlockSize
Specifies the block size. The default block size is 16M.
--size {n% | n | nK | nM | nG | nT}
Specifies the vdiskset size. The default vdiskset size is 100%.
--suffix=SUFFIX
Specifies the suffix of the high-speed network. You must add it separated by "=" and with no blank spaces. For example, --suffix=-hs.
--extra-vars "mmvdisk vdisk define options"
Provide "mmvdisk vdisk define" options in quotation marks. For example,
--extra-vars  "--DA DA1 --nsd-usage dataAndMetadata --storage-pool system"
.
-h | --help
Displays usage information about this subcommand and exits.
Start of changeguiEnd of change
Start of changeConfigure the GUI for ESS.
Usage:
essrun gui [-h] {--configure | --add-to-host} 
-h | --help
Displays usage information about this subcommand and exits.
--configure
Performs all initial configuration for GUI setup.
--add-to-hosts
Adds node(s) to the hosts.yml file for GUI setup in EMS.
End of change
cesvm
Create a virtual machine (VM) on ESS.
Usage:
essrun cesvm [-h] (--create | --delete) [--vm-name VNAME] 
                      --number-of-mellanox-device-passthru {1,2}
-h | --help
Displays usage information about this subcommand and exits.
--create
Creates CES VM on I/O node.
--delete
Deletes CES VM on I/O node.
-vm-name VNAME
Shows user-defined VM name. Default name is <Node Name>-essvm.
--number-of-mellanox-device-passthru {1,2}
Specifies the number of Mellanox cards that want to pass inside VM with a minimum of one and maximum of two cards. Second and third cards are passed to the VM with respective number of card value.

Exit status

0
Successful completion.
nonzero
A failure has occurred.

Security

You must have root authority to run this command.

Examples

essrun config
  • Fix SSH keys between essio1 and essio2 nodes (Every node that you define with the -N flag). It also creates or fixes the inventory to run an online update.
    # essrun -N essio1,essio2 config load -p 

    The example given below shows config load prompt for password input.

    ESS UNIFIED v6.2.0.0 CONTAINER root@cems0:/ # essrun -N essio3 config load -p
    [INFO]	2023-02-21T04:35:31.613625	Going to ask for the node password. All the nodes must have the same password
    [INFO]	2023-02-21T04:35:31.613655	Be aware that the password will not be prompted into the screen and you will not see it on it
    Password: 
essrun update
  • Run the update subcommand with the --offline option on the nodes ess3ka and ess3kb.
    # essrun -N ess3ka,ess3kb update --offline
  • Run an update (top nodes first, one by one, then bottom nodes, one by one). If only one building block is in the cluster, the result is same as doing an online update.
    # essrun -N essio1,essio2,essio3,essio4 update --serial 1
  • Run an online update and stop between the top group (first node) and the bottom group (second node).
    # essrun -N essio1,essio2 update
    A sample output is as follows:
    [INFO] '2021-05-05T22:08:41.664490' Will stop for manual health check.
    [INFO] '2021-05-05T22:08:41.664490' If you want to continue with next group type 'y'. 
    If you want to cancel update type 'n'.
    Update finished in group ess5k_group_A, do you want to continue? (y/n): y
    [INFO] '2021-05-05T22:08:41.664490' Continuing with next group...
  • Run an update on all nodes specified with -N.
    # essrun -N essio1,essio2 update --offline
  • Start of changeRun an update on all nodes specified with -N one by one.
    # essrun -N essio1,essio2 update --serial 1 --offline
    End of change
essrun timeset
  • Enable timeset from the container.
    # essrun -N NodeList timeset enable
  • Check the status of the Chrony timeset.
    # essrun -N NodeList timeset verify
  • Disable timeset from the container.
    # essrun -N NodeList timeset disable
essrun selinux
  • Enable SELinux on the ems1 node in the permissive mode.
    # essrun -N ems1 selinux permissive
    Note: Restart the node after this command completes for the changes to take effect.
  • Enable SELinux on the ems1 node in the enforcing mode.
    # essrun -N ems1 selinux enable
    Note: Restart the node after this command completes for the changes to take effect.
  • Disable SELinux on the ems1 node.
    # essrun -N ems1 selinux enable
    Note: Restart the node after this command completes for the changes to take effect.
essrun network
  • Create network bonds with name bond0. Infiniband or Ethernet, whichever is available is used. If both are available you are promoted for eth or ib.
    # essrun -N essio1,essio2 network --suffix=HighSpeedSuffix
  • Create network bonds with name bond0 with the specified netmask.
    # essrun -N essio1,essio2 network --suffix=HighSpeedSuffix --netmask {/24 | /25 | ...}
essrun filesystem
  • Create a file system with the management network. Your cluster must belong to that same net block for using this command.
    # essrun -N essio1,essio2 filesystem
  • Create a file system with the high-speed network. Your cluster must belong to that same net block for using this command.
    # essrun -N essio1,essio2 filesystem --suffix=HighSpeedSuffix
  • Create a file system with custom RAID code, block size, and size.
    # essrun -N essio1,essio2 filesystem --suffix=HighSpeedSuffix 
              --code { 8+2p | 8+3p | ... } --bs { 8M | 16M | ... } 
              --size { n% | n | nK | nM | nG | nT }
  • Create recovery groups only in the cluster. You need to create vdisk and add it manually to your desired file system.
    # essrun -N essio1,essio2 filesystem --suffix=HighSpeedSuffix --rg-onl
essrun vdisk
  • Create a vdisk of the specified name with the management network. Your cluster must belong to that same net block for using this command.
    # essrun -N essio1,essio2 vdisk --name VdiskName
  • Create a vdisk with the high-speed network. Your cluster must belong to that same net block for using this command.
    # essrun -N essio1,essio2 vdisk --suffix=HighSpeedSuffix
  • Create a vdisk with custom RAID code, block size, name, and size.
    # essrun -N essio1,essio2 vdisk --nameVdiskName 
              --suffix=HighSpeedSuffix 
              --code { 8+2p | 8+3p | ... } --bs { 8M | 16M | ... } 
              --size { n% | n | nK | nM | nG | nT }
  • Create a vdisk with default RAID code, block size, and size. This command creates vdisk with the defined NSD usage.
    # essrun -N essio1,essio2 vdisk --nameVdiskName 
              --suffix=HighSpeedSuffix
              --extra-vars “{--declustered-array / --nsd-usage / --storage-pool}”
essrun gui
  • Configure the GUI for the first time in a Power9 EMS and two I/O nodes. The nodes can be ESS 5000, ESS 3000, or ESS 3200 nodes.
    # essrun -N ems1,essio1,essio2 gui --configure
  • Configure or add the new nodes into GUI in a Power9 EMS. The nodes can be ESS 5000, ESS 3000, or ESS 3200 nodes.
    # essrun -N ess32001a,ess32001b gui --add-to-hosts
essrun cesvm
  • Create VM
    # essrun -N essio3,essio4 cesvm --create --number-of-mellanox-device-passthru 1
    
  • Delete VM
    # essrun -N essio3,essio4 cesvm –delete  --number-of-mellanox-device-passthru 1
    
Note: You can run the virsh command to do any kind of administration upon VM after creating or deleting the VM.

Location

Available only in the container at: /opt/ibm/ess/deploy/bin