Managing services with storpool_ctl

storpool_ctl is a helper tool providing an easy way to perform an action for all installed services on a StorPool node. You can use it to start, stop, or restart services, or enable/disable starting them on boot. For more information about the services themselves, see StorPool services.

Nodes in a StorPool cluster might have different sets of services installed, depending on the environment, or whether the node is client, a server, hyperconverged node (both) or if services are added or removed. Using storpool_ctl you can set the services needed for each node as needed. Here are some typical use cases:

  • Querying for the status of all services installed on a node.

  • Starting and enabling all services. This usually happens right after a new installation.

  • The opposite case, where all services have to be disabled/stopped when a node is being uninstalled or moved to a different location.

  • When a client-only node is promoted to a server (often referred to as a converged node). In this case after initializing all the drives on this node the tool will take care to start/enable all required additional services.

The storpool_ctl tool is available in StorPool starting with the 19.2 revision 19.01.1991.f5ec6de23 release.

Supported actions

To list all supported actions use:

# storpool_ctl --help
usage: storpool_ctl [-h] {disable,start,status,stop,restart,enable} ...

       Tool that controls all StorPool services on a node, taking care of
       service dependencies, required checks before executing an action and
       others.

positional arguments:
{disable,start,status,stop,restart,enable}
                        action

optional arguments:
-h, --help            show this help message and exit

Getting status

List the status of all services installed on this node:

# storpool_ctl status
storpool_nvmed          not_running
storpool_mgmt           not_running
storpool_reaffirm       not_running
storpool_flushwbc       not_running
storpool_stat           not_running
storpool_abrtsync       not_running
storpool_block          not_running
storpool_kdump          not_running
storpool_hugepages      not_running
storpool_bridge         not_running
storpool_beacon         not_running
storpool_cgmove         not_running
storpool_iscsi          not_running
storpool_server         not_running
storpool_controller     not_running

The status is always one of:

  • not_running when the service is disabled or stopped

  • not_enabled when the service is running but is not yet enabled

  • running when the service is running and enabled

Note

The tool always prints the status after any selected action was applied.

You can also use storpool_ctl status --problems, which shows only services that are not in running state. Note that in this mode the utility exits with non-zero exit status in case there are any installed services in not_running or not_enabled state.

# storpool_ctl status --problems
storpool_mgmt           not_running
storpool_server         not_enabled
# echo $?
1

Starting services

To start all services:

# storpool_ctl start
cgconfig                running
storpool_abrtsync       not_enabled
storpool_cgmove         not_enabled
storpool_block          not_enabled
storpool_mgmt           not_enabled
storpool_flushwbc       not_enabled
storpool_server         not_enabled
storpool_hugepages      not_enabled
storpool_stat           not_enabled
storpool_controller     not_enabled
storpool_beacon         not_enabled
storpool_kdump          not_enabled
storpool_reaffirm       not_enabled
storpool_bridge         not_enabled
storpool_iscsi          not_enabled

Enabling services

Note

The services should be enabled after the configuration of cgroups is completed and the services started at least once, due to the possibility that the start of the services might crash the node and then make it unbootable.

To enable all services:

# storpool_ctl enable
Created symlink from /etc/systemd/system/multi-user.target.wants/storpool_cgmove.service to /usr/lib/systemd/system/storpool_cgmove.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/storpool_bridge.service to /usr/lib/systemd/system/storpool_bridge.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/storpool_block.service to /usr/lib/systemd/system/storpool_block.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/storpool_reaffirm.service to /usr/lib/systemd/system/storpool_reaffirm.service.
Created symlink from /etc/systemd/system/storpool_beacon.service.wants/storpool_reaffirm.service to /usr/lib/systemd/system/storpool_reaffirm.service.
Created symlink from /etc/systemd/system/storpool_block.service.wants/storpool_reaffirm.service to /usr/lib/systemd/system/storpool_reaffirm.service.
Created symlink from /etc/systemd/system/storpool_mgmt.service.wants/storpool_reaffirm.service to /usr/lib/systemd/system/storpool_reaffirm.service.
Created symlink from /etc/systemd/system/storpool_server.service.wants/storpool_reaffirm.service to /usr/lib/systemd/system/storpool_reaffirm.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/storpool_controller.service to /usr/lib/systemd/system/storpool_controller.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/storpool_beacon.service to /usr/lib/systemd/system/storpool_beacon.service.
Created symlink from /etc/systemd/system/storpool_server.service.wants/storpool_beacon.service to /usr/lib/systemd/system/storpool_beacon.service.
Created symlink from /etc/systemd/system/storpool_block.service.wants/storpool_beacon.service to /usr/lib/systemd/system/storpool_beacon.service.
Created symlink from /etc/systemd/system/storpool_mgmt.service.wants/storpool_beacon.service to /usr/lib/systemd/system/storpool_beacon.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/storpool_kdump.service to /usr/lib/systemd/system/storpool_kdump.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/storpool_abrtsync.service to /usr/lib/systemd/system/storpool_abrtsync.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/storpool_mgmt.service to /usr/lib/systemd/system/storpool_mgmt.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/storpool_server.service to /usr/lib/systemd/system/storpool_server.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/storpool_flushwbc.service to /usr/lib/systemd/system/storpool_flushwbc.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/storpool_stat.service to /usr/lib/systemd/system/storpool_stat.service.
Created symlink from /etc/systemd/system/sysinit.target.wants/storpool_hugepages.service to /usr/lib/systemd/system/storpool_hugepages.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/storpool_iscsi.service to /usr/lib/systemd/system/storpool_iscsi.service.
storpool_cgmove         running
storpool_bridge         running
storpool_block          running
storpool_reaffirm       running
storpool_controller     running
storpool_beacon         running
storpool_kdump          running
storpool_abrtsync       running
storpool_mgmt           running
storpool_server         running
storpool_flushwbc       running
storpool_stat           running
storpool_hugepages      running
storpool_iscsi          running

Disabling services

To disable all services (without stopping them):

# storpool_ctl disable
Removed symlink /etc/systemd/system/multi-user.target.wants/storpool_cgmove.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/storpool_bridge.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/storpool_block.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/storpool_reaffirm.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/storpool_controller.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/storpool_beacon.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/storpool_kdump.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/storpool_abrtsync.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/storpool_mgmt.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/storpool_server.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/storpool_flushwbc.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/storpool_stat.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/storpool_iscsi.service.
Removed symlink /etc/systemd/system/sysinit.target.wants/storpool_hugepages.service.
Removed symlink /etc/systemd/system/storpool_beacon.service.wants/storpool_reaffirm.service.
Removed symlink /etc/systemd/system/storpool_block.service.wants/storpool_reaffirm.service.
Removed symlink /etc/systemd/system/storpool_block.service.wants/storpool_beacon.service.
Removed symlink /etc/systemd/system/storpool_mgmt.service.wants/storpool_reaffirm.service.
Removed symlink /etc/systemd/system/storpool_mgmt.service.wants/storpool_beacon.service.
Removed symlink /etc/systemd/system/storpool_server.service.wants/storpool_reaffirm.service.
Removed symlink /etc/systemd/system/storpool_server.service.wants/storpool_beacon.service.
storpool_kdump          not_enabled
storpool_hugepages      not_enabled
storpool_bridge         not_enabled
storpool_controller     not_enabled
storpool_beacon         not_enabled
storpool_cgmove         not_enabled
storpool_block          not_enabled
storpool_mgmt           not_enabled
storpool_stat           not_enabled
storpool_reaffirm       not_enabled
storpool_server         not_enabled
storpool_flushwbc       not_enabled
storpool_abrtsync       not_enabled
storpool_iscsi          not_enabled

Stopping services

To stop all services:

# storpool_ctl stop
storpool_server         not_running
storpool_iscsi          not_running
storpool_controller     not_running
storpool_mgmt           not_running
storpool_cgmove         not_running
storpool_kdump          not_running
storpool_reaffirm       not_running
storpool_stat           not_running
storpool_beacon         not_running
storpool_hugepages      not_running
storpool_flushwbc       not_running
storpool_block          not_running
storpool_bridge         not_running
storpool_abrtsync       not_running
Module storpool_pci    version 6D0D7D6E357D24CBDF2D1BA
Module storpool_disk   version D92BDA6C929615392EEAA7E
Module storpool_bd     version C6EB4EEF1E0ABF1A4774788
Module storpool_rdma   version 4F1FB67DF4617ECD6C472C4

The stop action features the options:

--servers

Stop just the server instances.

--expose-nvme

Expose any configured NVMe devices attached to the selected SP_NVME_PCI_DRIVER back to the nvme driver.

More information

You can check the state of all services using the CLI, for details see Services.