clmgr command
Purpose
The clmgr command provides a consistent, reliable interface for performing PowerHA® SystemMirror® for Linux cluster operations by using a terminal or script.Syntax
clmgr {[-c|-d <DELIMITER>] [-S] | [-x]}
[-v][-f][-T <#####>]
[-l {error|standard|low|med|high|max}][-a
{<ATTR#1>,<ATTR#2>,...}] <ACTION> <CLASS> [<NAME>]
[-h | <ATTR#1>=<VALUE#1> <ATTR#2>=<VALUE#2> <ATTR#n>=<VALUE#n>]
clmgr {[-c|-d <DELIMITER>] [-S] | [-x]}
[-v][-f] [-T <#####>]
[-l {error|standard|low|med|high|max}][-a {<ATTR#1>,<ATTR#2>,...}]
ACTION={add|modify|delete|query|online|offline|...}
CLASS={cluster|node|network|resource_group|...}
clmgr {-h|-?} [-v] [<ACTION>[ <CLASS>]]
clmgr [-v] help
clmgr <ACTION> <CLASS> [<NAME>] [<ATTRIBUTES...>] You can use the
built-in help option for the clmgr command from the command line interface. For
example, when you run the clmgr command without specifying any flags or
parameters, a list of the available ACTION flags are displayed. If you enter the clmgr
ACTION command without specifying the CLASS object, a list of all the available CLASS
objects for the specified ACTION flag is displayed. If you enter the clmgr ACTION
CLASS command without specifying any NAME or ATTRIBUTES options, different output is
displayed because few ACTION+CLASS combinations do not require any additional parameters. To display
help information in this scenario, you must explicitly append the -h flag to
the clmgr ACTION CLASS command. You cannot display help information from the
command line for individual attributes of the clmgr commands.Description
The clmgr command provides consistent syntax for easy use. In addition, the clmgr command provides consistent return codes for easier scripting. Several output formats are also provided for data queries to collect cluster information.
All clmgr command operations are logged in the clutils.log file, including the name of the command that was run, the commands start time and stop time, and the username that initiated the command.
Flags
- ACTION
-
Describes the operation to be performed.Note: The ACTION flag is not case-sensitive. All ACTION flags provide a shorter alias. For example,
rmis an alias fordeleteaction. Aliases are provided for convenience from the command line and must not be used in scripts.The following four ACTION flags are available on almost all the supported CLASS objects:- add (Alias: a, cr*, make, mk, bu*, bld)
- query (Alias: q*, ls, get, l, sh*)
- modify (Alias: mod, ch, set)
- delete (Alias: de*, rem*, rm , er*)
The following ACTION flags are typically supported only on a subset of the supported CLASS objects:- Cluster, node, resource group:
- start (Alias: online, on*)
- stop (Alias: offline, of*, dea*)
- Resource group:
- move (Alias: mov*, mv)
- Log:
- manage (Alias: ma, mg)
- Cluster:
- verify (Alias: ve)
- Log:
- view (Alias: vi)
- Smart_Assist:
- setup
- update
- Snapshot:
- manage (Alias: ma, mg)
- view (Alias: vi)
- Application, service_ip, file_system, resource_group:
- reset
- CLASS
-
The type of object upon which the value that you specified for the ACTION flag is performed.Note: The CLASS flag is not case-sensitive. All CLASS objects provide a shorter alias. For example,
clis an alias forCluster. Aliases are provided for convenience from the command line and must not be used in scripts.The complete list of supported CLASS objects follows:- cluster (Alias: cl*)
- node (Alias: no*, nd)
- interface (Alias: int*)
- network (Alias: ne*, nw)
- resource_group (resource_g*, rg)
- service_ip (se*, si)
- persistent_ip (Alias: pe*, pi)
- application (Alias: ac, app*, as)
- dependency (Alias: de*)
- file_collection (Alias: file_c*, fc)
- file_system (Alias: file_s*, fs)
- snapshot (Alias: sn*, ss, ba*)
- user (Alias: us*, ur)
- group (Alias: gr*, gp)
- equivalency (Alias: eq*)
- nfs_client (Alias: nfs, nfsc, nfs_c*)
- log (Alias: logs)
- smart_assist (Alias: sm*, sa)
- logical_volume(Alias: lv, logi*)
- NAME
- The specific object, of type CLASS, upon which the ACTION flag must be performed.
- ATTR=VALUE
- An optional flag that has attribute and value pairs that are specific to the
ACTION+CLASS combination. Use these pairs to specify configuration settings or to adjust
particular operations.When this flag is used with the query ACTION flag, the ATTR=VALUE specifications can be used to perform attribute-based searching and filtering. In which case, you can use simple wildcard characters. The asterisk (*) wildcard character searches for any characters. For example, if I use a search term of "HO*" the search results that are returned are "HOT", "HOST", and "HOSTNAME". The question mark (?) wildcard character searches for a single character. For example, if I use a search term of "HA?" the search result returned are "HAT", "HAM".Note: An ATTR attribute does not need to be fully typed. Only the number of leading characters that are required to uniquely identify the attribute from the set of available attributes for the specified operation must be specified.
- -a
- Displays only the specified attributes, and is valid only with the query, add, and modify ACTION flags. Attribute names are not case-sensitive, and can be used with the standard UNIX wildcard characters such as an asterisk (*) and question mark (?).
- -c
- Displays all data in colon-delimited format, and is valid only with the query, add, and modify ACTION flags.
- -d
- Valid only with the query, add, and modify ACTION flags, requests all data to be displayed in delimited format, by using the specified delimiter.
- -f
- Overrides any interactive prompts, forcing the current operation to be attempted (if forcing the operation is a possibility).
- -h
- Displays help information.
- -l
- Activates the following trace log values for serviceability:
- Error
- Updates the log file only if an error is detected.
- Standard
- Logs basic information for every
clmgroperation. - Low
- Performs basic entry and exit tracing for every function.
- Med
- Performs med tracing, adding function entry parameters, and function return values.
- High
- Performs high tracing, adding tracing to every line of execution, omitting routine, and utility functions.
- Max
- Performs maximum tracing, adding the routine function and utility function. Adds a time and date stamp to the function entry message and exit message.
Note: All trace data is written into the clutils.log file. This flag is used for troubleshooting problems. - -S
- Displays data without column headers, and is valid only with the query ACTION flag and the -c flag.
- -T
- A transaction ID is applied to all logged output to help group one or more activities into a single section of output that can be extracted from the log file for analysis. This flag is used for troubleshooting problems.
- -v
- Displays maximum verbosity in the output.Note: Displays all instances of the specified class, when this flag is used with the query ACTION flag and no specific object name. For example, if you run the
clmgr -v query nodecommand, all nodes and their attributes are displayed. This flag displays resulting attributes after the operation is complete (only if the operation was successful), when this flag is used with the add or modify ACTION. - -x
- Displays all data in a simple XML format, and is valid only with the query, add, and modify ACTION flags.
Syntax for clmgr operations
- Cluster
-
clmgr add cluster [ <cluster_label> ] [ NODES=<host>[,<host#2>,...] ] add => create, make, mk cluster => clclmgr modify cluster [ SPLIT_POLICY={manual|none|tiebreaker} ] [ TIEBREAKER={disk|nfs} ] [ DISK_WWID=<#DISK_WWID> ] [ NFS_SERVER=<#NFS_SERVER> ] [ NFS_SERVER_MOUNT_POINT=<NFS_SERVER_MOUNT_POINT_PATH> ] [ NFS_LOCAL_MOUNT_POINT=<NFS_LOCAL_MOUNT_POINT_PATH> ] [ NFS_FILE_NAME=<#NFS_FILE_NAME> ] modify => change, set cluster => clclmgr offline cluster [ STOP_RSCT={no|yes} ] offline => stop cluster => cl clmgr online cluster [ MANAGE={auto|manual} ] online => start cluster => cl clmgr query cluster [ ALL | {CORE,SPLIT} ] query => get, list, ls, show cluster => cl clmgr delete cluster [ NODES={ALL|<node#1>,<node#n>,...} ] delete => erase, remove, rm cluster => cl clmgr verify cluster verify => validate - Node
-
clmgr add node <node> [ START_ON_BOOT={TRUE|FALSE} ] add => create, make, mk node => no clmgr query node {<node>|LOCAL}[,<node#2>,...] clmgr -v query node query => get, list, ls, show node => no clmgr delete node {<node>[,<node#2>,<node#n>,...] | ALL} delete => erase, remove, rm node => no clmgr online node <node>[,<node#2>,<node#n>,...] [ MANAGE={auto|manual} ] [ WHEN={now|reboot|both} ] online => start node => no clmgr offline node <node>[,<node#2>,<node#n>,...] [ MANAGE={offline|move}] [ STOP_RSCT={no|yes}] [ WHEN={now|reboot|both} ] offline => stop node => no - Network
-
clmgr add network <network> [TYPE={ether|disk}] [PVID={#PVID}] [NODES=<node_P1>[,<node_P2>,...] add => create, make, mk network => ne, nw clmgr delete <network>[,<network#2>,<network#n>,...] delete => erase, remove, rm network => ne, nw clmgr query network <network>[,<network#2>,<network#n>,...] clmgr -v query network query => get, list, ls, show network => ne, nw clmgr modify network <network> [ node=<nodeA1[,nodeA2,...]> ] modify => change, set network => ne, nw - Interface
-
clmgr add interface NETWORK= <network> NODE=<node> INTERFACE=<interface> add => create, make, mk interface => in, if clmgr delete interface NETWORK= <network> NODE=<node> INTERFACE=<interface> delete => erase, remove, rm interface => in, if - Resource group
-
clmgr add resource_group <resource_group>[,<rg#2>,...] NODES=<node_P1>[,<node_P2>,...] [ STARTUP={OFAN|OAAN}] [ FALLOVER={FNPN|BO}] [ FALLBACK={NFB|FBHN}] [ SERVICE_LABEL=ser_ip#1[,ser_ip#2,... ]] [ APPLICATIONS=app#1[,app#2,...]] [ FILESYSTEM=fs#1[,fs#2,...]] [ PRIORITY=<0-200>] add => create, make, mk resource_group => rg STARTUP: OFAN ---- Online on First Available Node OAAN ---- Online on All Available Nodes (concurrent) FALLOVER: FNPN ---- Fallover to Next Priority Node (default value) BO ------ Bring Offline (On Error Node Only) FALLBACK: NFB ----- Never Fallback (default value) FBHN --- Fallback to Home Nodeclmgr modify resource_group <resource_group> [ NAME=<new_resource_group_label>] [ NODES=nodeA1[,nodeA2,...]] [ STARTUP={OFAN|OAAN}] [ FALLOVER={FNPN|BO}] [ FALLBACK={NFB|FBHN}] [ SERVICE_LABEL=service_ip#1[,service_ip#2,...]] [ APPLICATIONS=app#1[,app#2,...]] [ FILESYSTEM=fs#1[,fs#2,...]] [ PRIORITY= <0-200>] modify => change, set resource_group => rgclmgr query resource_group <resource_group>[,<rg#2>,<rg#n>,...] clmgr -v query resource_group query => get, list, ls, show resource_group => rg clmgr delete resource_group {<resource_group>[,<rg#2>,<rg#n>,...] | ALL} delete => erase, remove, rm resource_group => rg clmgr online resource_group { <resource_group>[,<rg#2>,<rg#n>,...] | ALL } online => start resource_group => rg clmgr offline resource_group { <resource_group>[,<rg#2>,<rg#n>,...] | ALL } offline => stop resource_group => rgNote: The ALL attribute attempts to bring all resource groups online or offline.clmgr move resource_group <resource_group>[,<rg#2>,<rg#n>,...] NODE=<node> move => mv resource_group => rg clmgr reset resource_group <resource_group> [NODE=<node_name>] resource_group => rg - Persistent IP/Label
-
clmgr add persistent_ip <persistent_label> NETWORK=<network> NODE=<node> [ NETMASK=<###.###.###.###> ] add => create, make, mk persistent_ip => pi clmgr delete persistent_ip {<persistent_label>[,<persistent_label#2>,<persistent_label#n>,...] | ALL} delete => erase, remove, rm persistent_ip => pi clmgr modify persistent_ip <persistent_label> [ NAME=<new_persistent_label> ] [ NETWORK=<new_network> ] [ NETMASK=<###.###.###.###> ] modify => change, set persistent_ip => pi clmgr query persistent_ip [<persistent_label>[,<persistent_label#2>,<persistent_label#n>,...] ] clmgr -v query persistent_ip query => get, list, ls, show persistent_ip => piNote: The alias for the persistent_ip is pi. - Service IP/Label
-
clmgr add service_ip <service_ip_label> NETWORK=<network> [ NETMASK=<###.###.###.###>] add => create, make, mk service_ip => si clmgr modify service_ip <service_label> [ NAME=<new_service_label> ] [ NETWORK=<new_network> ] [ NETMASK=<###.###.###.###> ] modify => change, set service_ip => si clmgr query service_ip <sLabel#1>[,<sLabel#2>,<sLabel#n>,...] clmgr -v query service_ip query => get, list, ls, show service_ip => si clmgr delete service_ip {<sLabe#l>[,<Label#2>,<Label#n>,...] | ALL} delete => erase, remove, rm service_ip => si clmgr reset service_ip <service_ip> [NODE=<node_name>] service_ip => si - Application
-
clmgr add application <application> TYPE=Process STARTSCRIPT="/path/to/start/script" STOPSCRIPT="/path/to/stop/script" PROCESS="/process/to/monitor" [OWNER="<owner_name>"] [RESOURCETYPE=“1,2” ] [STARTCOMMANDTIMEOUT=""] [STOPCOMMANDTIMEOUT=""] [CLEANUPMETHOD="</script/to/cleanup>" ] [PROTECTIONMODE="0,1" ] clmgr add application <application> TYPE=Custom STARTSCRIPT="/path/to/start/script" STOPSCRIPT="/path/to/stop/script" MONITORMETHOD="/program/to/monitor" [OWNER="<owner_name>" ] [RESOURCETYPE=“1,2” ] [STARTCOMMANDTIMEOUT=""] [STOPCOMMANDTIMEOUT=""] [MONITORCOMMANDTIMEOUT=""] [MONITORINTERVAL="1 .. 1024" ] [CLEANUPMETHOD="</script/to/cleanup>" ] [PROTECTIONMODE="0,1" ] add => create, make, mk application => app clmgr modify application <application name> [ NAME=<new_label> ] [ TYPE={Process|Custom} ] [ STARTSCRIPT="/path/to/start/script" ] [ STOPSCRIPT="/path/to/stop/script" ] [ OWNER="<owner_name>" ] [ STARTCOMMANDTIMEOUT="" ] [ STOPCOMMANDTIMEOUT="" ] [ PROTECTIONMODE="0,1 ] PROCESS="process_name" [ CLEANUPMETHOD="</script/to/cleanup>" ] MONITORMETHOD="/program/to/monitor" [ MONITORINTERVAL="1 .. 1024" ] [ MONITORCOMMANDTIMEOUT="" ] [ CLEANUPMETHOD="</script/to/cleanup>" ] modify => change, set application => app clmgr query application <application>[,<app#2>,<app#n>,...] clmgr -v query application query => get, list, ls, show application => app clmgr delete application {<app>[,<app#2>,<app#n>,...] ALL} delete => erase, remove, rm application => app clmgr reset application <application> [NODE=<node_name>]Note: The app value is an abbreviation for application. Aliases for application are ac and app. - Dependency
-
clmgr add dependency <dependency_name> TYPE={[<DEPENDSON|DEPENDSONANY|STARTAFTER|STOPAFTER|COLLOCATED|ANTICOLLOCATED|FORCEDDOWNBY|ISSTARTABLE]} SOURCE="<rg#1>" TARGET="<rg#2>[,<rg#3>,...,<rg#n>]" add => create, make, mk dependency => de clmgr delete dependency {<dependency>[,<dep#2>,<dep#n>,...] | ALL} delete => erase, remove, rm dependency => de clmgr query dependency <depname>[,<dep#2>,<dep#n>,...] clmgr -v query dependency query => get, list, ls, show dependency => de clmgr modify dependency <dependency_name> [NAME="<new_label>" ] [TYPE={[<DEPENDSON|DEPENDSONANY|STARTAFTER|STOPAFTER| COLLOCATED|ANTICOLLOCATED|FORCEDDOWNBY|ISSTARTABLE]} [TARGET="<rg#1>[,<rg#2>,...,<rg#n>]" ] modify => change, set dependency => de - File collection
-
clmgr add file_collection <file_collection> [ FILES="/path/to/file1,/path/to/file2,..." ] [ SYNC_WHEN_CHANGED={no|yes} ] [ DESCRIPTION="<file_collection_description>" ] add => create, make, mk file_collection => fi, fc clmgr delete file_collection {<file_collection>[,<fc#2>,<fc#n>,...] | ALL } delete => erase, remove, rm file_collection => fi, fc clmgr modify file_collection <file_collection> [ NAME="<new_file_collection_label>" ] [ ADD="/path/to/file1,/path/to/file2,..."] [ DELETE={"/path/to/file1,/path/to/file2,..."}] [ SYNC_WHEN_CHANGED={no|yes} ] [ DESCRIPTION="<file_collection_description>"] modify => change, set file_collection => fi, fc clmgr query file_collection <file_collection>[,<fc#2>,<fc#n>,...] clmgr -v query file_collection query => get, list, ls, show file_collection => fi, fc clmgr sync file_collection <file_collection> clmgr update file_collection [ SYNC_INTERVAL="10 .. 1440" ] clmgr update file_collection filecollection => fi, fc - Snapshot
-
clmgr add snapshots <snapshot> [ DESCRIPTION="<snapshot_description>" ] add => create, make, mk snapshot => sn, ss clmgr delete snapshot {<snapshot>[,<snapshot#2>,<snapshot#n>,...] | ALL} delete => erase, remove, rm snapshot => sn, ss clmgr manage snapshot restore <snapshot> manage => mg snapshot => sn, ss clmgr modify snapshot <snapshot> [ NAME="<new_snapshot_label>" ] [ DESCRIPTION="<snapshot_description>" ] modify => change, set snapshot => sn, ss clmgr query snapshot <snapshot>[,<snapshot#2>,...] clmgr -v query snapshot query => get, list, ls, show snapshot => sn, ss clmgr view snapshot <snapshot> [ TAIL=<number_of_trailing_lines> ] [ HEAD=<number_of_leading_lines> ] view => cat snapshot => sn, ss - Log
-
clmgr modify log {<log>} [ TRACE_LEVEL={default|medium|max} ] modify => change, set clmgr query log <log>[,<log#2>,<log#n>] clmgr query -v log query => get, list, ls, show clmgr view log [ {<log>} ] [ TAIL=<number_of_trailing_lines> ] [ HEAD=<number_of_leading_lines> ] view => cat clmgr manage logs collect [ DIRECTORY="<directory_for_collection>" ] \ [ NODES=<node>[,<node#2>,<node#n>,...] ] manage => mg - User
-
clmgr add user <user_name> [ ID=<###|upto 4294967294> ] [ ADMINISTRATIVE={false|true} ] [ CHANGE_ON_NEXT_LOGIN={true|false} ] [ PRIMARY=<group> ] [ GROUPS=<group#1>[,<group#2>,...] ] [ ROLES=<role> ] [ Registry={local}] [ HOME=<full_directory_path> ] [ SHELL=<defined_in_/etc/shells> ] [ EXPIRATION=<days from epoch | YYYY-MM-DD> ] [ LOCKED={false|true} ] [ DAYS_TO_WARN={#|0} ] [ LOCKOUT_DELAY=<days_btwn_expiration_and_lockout> ] [ MAX_PASSWORD_AGE=<in days> ] [ MIN_PASSWORD_AGE=<in days> ] clmgr add user <user_name> [ ID=<###|upto 4294967294> ] [ ADMINISTRATIVE={false|true} ] [ CHANGE_ON_NEXT_LOGIN={true|false} ] [ PRIMARY=<group> ] [ GROUPS=<group#1>[,<group#2>,...] ] [ ROLES=<role> ] [ Registry={ldap}] [ DN=<Distinguished_name>] [ LDAP_PASSWORD={ldap_password} ] [ HOME=<full_directory_path> ] [ SHELL=<defined_in_/etc/shells> ] [ EXPIRATION=<days from epoch | YYYY-MM-DD> ] [ LOCKED={false|true} ] [ DAYS_TO_WARN={#|0} ] [ LOCKOUT_DELAY=<days_btwn_expiration_and_lockout> ] [ MAX_PASSWORD_AGE=<in days> ] [ MIN_PASSWORD_AGE=<in days> ] add => create, make, mk user => ur clmgr delete user {<user_name>[,<user_name#2>,<user_name#n>,...] [ Registry={local}]} clmgr delete user {<user_name>[,<user_name#2>,<user_name#n>,...] [ Registry={ldap}] [ DN=<Distinguished_name>] [ LDAP_PASSWORD={ldap_password} ] } delete => erase, remove, rm user => ur clmgr modify user <user_name> [ ID=<###|upto 4294967294> ] [ ADMINISTRATIVE={false|true} ] [ CHANGE_ON_NEXT_LOGIN={true|false} ] [ PRIMARY=<group> ] [ GROUPS=<group#1>[,<group#2>,...] ] [ ROLES=<role> ] [ Registry={local}] [ HOME=<full_directory_path> ] [ SHELL=<defined_in_/etc/shells> ] [ EXPIRATION=<days from epoch | YYYY-MM-DD> ] [ LOCKED={false|true} ] [ DAYS_TO_WARN={#|0} ] [ LOCKOUT_DELAY=<days_btwn_expiration_and_lockout> ] [ MAX_PASSWORD_AGE=<in days> ] [ MIN_PASSWORD_AGE=<in days> ] clmgr modify user <user_name> [ ID=<user id> ] [ ADMINISTRATIVE={false|true} ] [ CHANGE_ON_NEXT_LOGIN={true|false} ] [ PRIMARY=<group> ] [ GROUPS=<group#1>[,<group#2>,...] ] [ ROLES=<role> ] [ Registry={ldap}] [ DN=<Distinguished_name>] [ LDAP_PASSWORD={ldap_password} ] [ LDAP_USER_PASSWORD=<ldap_user_password> ] [ HOME=<full_directory_path> ] [ SHELL=<defined_in_/etc/shells> ] [ EXPIRATION=<days from epoch | YYYY-MM-DD> ] [ LOCKED={false|true} ] [ DAYS_TO_WARN={#|0} ] [ LOCKOUT_DELAY=<days_btwn_expiration_and_lockout> ] [ MAX_PASSWORD_AGE=<in days> ] [ MIN_PASSWORD_AGE=<in days> ] modify => change, set user => ur clmgr query user <user>[,<user#2>,...] clmgr -v query user query => get, list, ls, show user => ur - Group
-
clmgr add group <group_name> [ ID=<###|upto 4294967294> ] [ USERS=<user#1>[,<user#2>,...] ] [ Registry={local}] [ ADMINISTRATIVE={false|true} ] clmgr add group <group_name> [ ID=<group id> ] [ USERS=<user#1>[,<user#2>,...] ] [ Registry={ldap}] [ ADMINISTRATIVE={false|true} ] [ DN=<Distinguished Name>] [ LDAP_PASSWORD={ldap_password} ] add => create, make, mk group => gp clmgr delete group {<group_name>[,<group_name#2>,<group_name#n>,...] [ Registry={local}]} clmgr delete group {<group_name>[,<group_name#2>,<group_name#n>,...] [ Registry={ldap}] [ DN=<Distinguished_name>] [ LDAP_PASSWORD={ldap_password} ]} delete => erase, remove, rm group => gp clmgr modify group <group_name> [ ID=<###|upto 4294967294> ] [ USERS=<user#1>[,<user#2>,...] ] [ Registry={local}] [ ADMINISTRATIVE={false|true} ] clmgr modify group <group_name> [ ID=<group id> ] [ USERS=<user#1>[,<user#2>,...] ] [ Registry={ldap}] [ DN=<Distinguished Name>] [ ADMINISTRATIVE={false|true} ] [ LDAP_PASSWORD={ldap_password} ] modify => change, set group => gp clmgr query group <group>[,<group#2>,...] clmgr -v query group query => get, list, ls, show group => gp - Equivalency
-
clmgr query equivalency <equivalency_name> query => get, list, ls, show - Logical_Volume
-
clmgr query logical_volume <logical_volume>[,<logical_volume#2>,<logical_volume#n>,...] clmgr -v query logical_volume query => get, list, ls, show logical_volume => lv - NFS Client
-
clmgr add NFS_client <label> <REMOTE_DIR=Server:dir> <MOUNT_POINT= dir> add => create, make, mk clmgr delete NFS_client <label> delete => erase, remove, rm clmgr query nfs_client <nfs_client>[,<nc#2>,<nc#n>,...] clmgr -v query nfs_client query => get, list, ls, show - File_system
-
clmgr add file_system <file_system_name> TYPE={ext3|ext4} LOGICAL_VOLUME=lvname [ BLOCK_SIZE={1024|2048|4096} ] [ PERMISSIONS={ro|rw} ] [ OPTIONS={nosuid|nodev|all} ] clmgr add file_system <file_system_name> TYPE={xfs} LOGICAL_VOLUME=lvname [ BLOCK_SIZE={1024|2048|4096|8192|16384|32768|65536} ] [ PERMISSIONS={ro|rw} ] [ OPTIONS={nosuid|nodev|all} ] add => create, make, mk file_system => fs clmgr query file_system <file_system>[,<fs#2>,<fs#n>,...] clmgr -v query file_system query => get, list, ls, show file_system => fs clmgr delete file_system {<file_system>[,<FS#2>,...] | ALL} [ REMOVE_MOUNT_POINT={false|true} ] delete => erase, remove, rm file_system => fs clmgr reset file_system <file_system> [NODE=<node_name>] file_system => fs - Smart Assist
-
clmgr add smart_assist APPLICATION={SAP_HANA} SID=<sid_value> INSTANCE=<HDB_instance_name> clmgr add smart_assist APPLICATION={SAP_ABAP|SAP_JAVA} SID=<sid_value> INSTANCE=<SCS_instance_name> clmgr add smart_assist APPLICATION={SAP_APPSERVER} SID=<sid_value> INSTALL_TYPE={ABAP|JAVA} add => create, make, mk smart_assist => sm, sa clmgr delete smart_assist APPLICATION={SAP_HANA} SID=<sid_value> INSTANCE=<HDB_instance_name> [ DEL_POLICY={YES|NO} ] clmgr delete smart_assist APPLICATION={SAP_ABAP|SAP_JAVA} SID=<sid_value> INSTANCE=<SCS_instance_name> [ DEL_POLICY={YES|NO} ] clmgr delete smart_assist APPLICATION={SAP_APPSERVER} SID=<sid_value> INSTALL_TYPE={ABAP|JAVA} [ DEL_POLICY={YES|NO} ] delete => erase, remove, rm smart_assist => sm, sa clmgr setup smart_assist APPLICATION={SAP_HANA} SID=<sid_value> INSTANCE=<HDB_instance_name> [ MODE={NEW|UPDATE} ] [ CONFIG={PERFORM_OPT|ACTIVE_ACTIVE|COST_OPT} ] clmgr setup smart_assist APPLICATION={SAP_ABAP|SAP_JAVA} SID=<sid_value> INSTANCE=<SCS_instance_name> [ MODE={NEW|UPDATE} ] clmgr setup smart_assist APPLICATION={SAP_APPSERVER} SID=<sid_value> INSTALL_TYPE={ABAP|JAVA} [ MODE={NEW|UPDATE} ] smart_assist => sm, sa clmgr update smart_assist APPLICATION={SAP_HANA} SID=<sid_value> INSTANCE=<HDB_instance_name> clmgr update smart_assist APPLICATION={SAP_ABAP|SAP_JAVA} SID=<sid_value> INSTANCE=<SCS_instance_name> clmgr update smart_assist APPLICATION={SAP_APPSERVER} SID=<sid_value> INSTALL_TYPE={ABAP|JAVA} smart_assist => sm, sa clmgr query smart_assist <policy>[,<policy#2>,<policy#n>] clmgr query -v smart_assist query => get, list, ls, show smart_assist => sm, sa
Example: Case sensitivity
Details
The class attribute for the clmgr command is not case-sensitive. For example,
in the following command, the NODES attribute can be NODES,
nodes, or Nodes. This cluster is a cluster with two nodes. The
cluster name is cluster1 and the nodes are named nodeA and
nodeB.
clmgr create cluster clMain NODES=nodeA,nodeBExample: Creating a cluster
Details
This cluster is a cluster with two nodes. The cluster name is cluster1 and the
nodes are named node1 and node2.
clmgr create cluster cluster1 NODES=node1, node2Example: Creating a resource group
Details
This resource group is a non-concurrent resource group that is created by using default policy
and is named RG1. The resource group contains a service IP address that is named
access1, and an application named app1.
clmgr add resource_group RG1 SERVICE_IP=access1
APPLICATIONS=app1 FILESYSTEM=fs1
Example: Checking status
Details
To know the state of a specified object, so that appropriate actions can be taken, use the
following clmgr query commands.
-
clmgr -a STATE query cluster -
clmgr -a STATE query node nodeA -
clmgr -a STATE query resource_group rg1 -
clmgr -a STATE query node nodeA -
clmgr -a STATE query resource_group rg1
- For the CLASS object of a cluster, the STATE value that is returned is the worst possible status
for all nodes in the cluster. For example, in four node cluster, if one node is experiencing an
error, the STATE value for the cluster is
ERROR. - The value that is returned after running the clmgr -a STATE query command is
in the standard ATTR=VALUE format, for example STATE=OFFLINE. If you need only the value, you can
combine other flags with the
-aflag. If you specify the -cSa command, only theVALUE, such asOFFLINE, is returned. This option works for a single value at a time. - You can retrieve multiple attributes at one time with the -a flag, such as
-a NAME, STATE. The
-aflag is not case-sensitive. For example, the following is acceptable syntax for the clmgr command, clmgr -a Name, state. The-aflag supports wildcard characters, such as the asterisk (*) and question mark (?).
Example: Viewing all attributes and settings
Details
If the PowerHA SystemMirror for Linux software
encounters a problem, it is necessary to view the contents of the cluster that includes settings. To
view the cluster, you can use the clmgr query command with options to requesting
specific formats, such as a colon-delimited format or an XML format. The following command examples
use resource groups, but the same rules apply for all object classes.
-
clmgr query resource_group -
clmgr query resource_group rg1,rg2 -
clmgr -c query resource_group rg1,rg2 -
clmgr -x query resource_group rg1,rg2 -
clmgr -v query resource_group -
clmgr -cv query resource_group -
clmgr -xv query resource_group
- When a target object is not specified with a query option, and the -v verbose flag is not used, a simple list of objects is displayed.
- When one or more target objects are specified with a query option, all the known attributes or settings for those objects are displayed. This query option overrides the -v flag.
- When the -v flag is used with the query option, all the known attributes or settings for all known objects of the specified class are displayed.
- Detailed attributes or settings are displayed in the ATTR=VALUE format by default, one per line. If the -c flag is specified, all values are displayed on one line in a colon-delimited format. If -x flag is specified, all attributes and values are displayed in a simple XML format.
Example: Displaying objects based on some filter or criteria
Details
Searching the information is difficult when large number of objects are defined for a specified
class, such as resource groups, or when large number of settings are defined within a specified
class. Hence, the clmgr command provides the ability to specify filtering criteria
by using the query action.
Examples
clmgr query resource_group CURRENT_NODE=`get_local_nodename`
- The example shows how to find an object that matches dynamic value. In this case, the command shows how to obtain the list of all resource groups that are currently running on the local node.
- This filtering capability can be used in combination with the -a flag for powerful and flexible data retrieval.
Example: Simplifying the clmgr command
Details
The clmgr command does not use any case-sensitive flags or attributes for easier
usage. All actions, classes, and attributes or options can be shortened to
either an explicitly named alias (such as start instead of online, or
rg instead of resource_group), or to the fewest number of letters that
make them unique. The following pairs of commands are functionally identical.
-
clmgr query resource_group clmgr q rg -
clmgr online node nodeA clmgr start node nodeA
clmgr command is
used interactively within a terminal. Although these abbreviations can also be used in scripts, it
is strongly suggested to use the full names of both actions and classes in scripts to make the
scripts more readable and serviceable code.Example: Help information for the clmgr command
Details
Online Help option is always available for the clmgr command. You can also use
the built-in help that is provided by the clmgr command. You can use the help
option if an object or value from a known set of objects or values is required. If an invalid object
or value is specified, an error message and a list of objects or values that are valid for that
operation is displayed. The help option can be used to determine which action, class, or object is
needed. The clmgr command provides the following help options:
-
clmgr -
clmgr add -
clmgr add application -
clmgr add application -h