Libstoragemgmt command line interface
lsmcli [options]... [command]... [command options]...
lsmcli is the command line tool for the libStorageMgmt library. This tool allows users to do one off storage related management operations or to script management of their storage.
--version
show program's version number and exit
-h, --help
show this help message and exit
-u URI, --uri=URI
uniform resource identifier (env LSMCLI_URI)
-P, --prompt
prompt for password (env LSMCLI_PASSWORD)
-H, --human
print sizes in human readable format (e.g., MiB, GiB, TiB)
-t SEP, --terse=SEP
print output in terse form with "SEP" as a record separator
-e, --enum
display enumerated types as numbers instead of text
-f, --force
bypass confirmation prompt for data loss operations
-w WAIT, --wait=WAIT
command timeout value in ms (default = 30s)
--header
include the header with terse
-b
run the command asynchronously instead of waiting for completion. lsmcli command will exit with exit code(7) and job id will be written to stdout when a command is still executing on the storage array. Use --job-status <job id> to inquire on the progress of the command.
LSMCLI_URI
The URI for the storage array in question.
LSMCLI_PASSWORD
The password to use for the array.
-l <type>, --list=<type>
List records of type:
[VOLUMES|INITIATORS|POOLS|FS|SNAPSHOTS|EXPORTS
|NFS_CLIENT_AUTH|ACCESS_GROUPS|SYSTEMS]
Note: SNAPSHOTS listing requires: --fs <fs id>
--capabilities=<system id>
Retrieves array capabilities
--plugin-info
Retrieves plugin description and version
--delete-fs=<fs id>
Delete a filesystem
--delete-access-group=<group id>
Deletes an access group
--access-group-add=<access group id>
Adds an initiator to an access group, requires:
--id <initiator id
--type <initiator type>
--access-group-remove=<access group id>
Removes an initiator from an access group, requires:
--id <initiator id>
--create-volume=<volume name>
Creates a volume (logical unit) requires:
--size <volume size>
--pool <pool id>
--provisioning (optional) [DEFAULT|THIN|FULL]
--create-fs=<fs name>
Creates a file system requires:
--size <fs size>
--pool <pool id>
--create-ss=<snapshot name>
Creates a snapshot requires:
--file <repeat for each file> (default is all files)
--fs <file system id>
--create-access-group=<Access group name>
Creates an access group, requires:
--id <initiator id>
--type [WWPN|WWNN|ISCSI|HOSTNAME]
--system <system id>
--access-group-volumes=<access group id>
Lists the volumes that the access group has been granted access to
--volume-access-group=<volume id>
Lists the access group(s) that have access to volume
--volumes-accessible-initiator=<initiator id>
Lists the volumes that are accessible by the initiator
--initiators-granted-volume=<volume id>
Lists the initiators that have been granted access to specified volume
--restore-ss=<snapshot id>
Restores a FS or specified files to previous snapshot state, requires:
--fs <file system>
--file <repeat for each file (optional)>
--fileas <restore file name (optional)>
--all (optional, exclusive option, restores all files in snapshot other options must be absent)
--clone-fs=<source file system id>
Creates a file system clone requires:
--name <file system clone name>
--backing-snapshot <backing snapshot id> (optional)
--clone-file=<file system>
Creates a clone of a file (thin provisioned) requires:
--src <source file to clone (relative path)>
--dest <destination file (relative path)>
--backing-snapshot <backing snapshot id> (optional)
--delete-volume=<volume id>
Deletes a volume given its id
--delete-ss=<snapshot id>
Deletes a snapshot requires --fs
-r <volume id>, --replicate-volume=<volume id>
replicates a volume, requires:
--type [SNAPSHOT|CLONE|COPY|MIRROR_ASYNC|MIRROR_SYNC]
--name <human name>
Optional:
--pool <pool id> (Plugin choice if absent)
--replicate-volume-range-block-size=<system id>
size of each replicated block in bytes
--replicate-volume-range=<volume id>
Replicates a portion of a volume, requires:
--type [SNAPSHOT|CLONE|COPY|MIRROR]
--dest <destination volume>
--src_start <source block start number>
--dest_start <destination block start>
--count <number of blocks to replicate>
--iscsi-chap=<initiator id>
configures ISCSI inbound/outbound CHAP authentication
Optional:
--in-user <inbound CHAP user name>
--in-password <inbound CHAP password>
--out-user <outbound CHAP user name>
--out-password <inbound CHAP user password
--access-grant=<initiator id>
Grants access to an initiator to a volume requires:
--type <initiator id type>
--volume <volume id>
--access [RO|RW], read-only or read-write
--access-grant-group=<access group id>
Grants access to an access group to a volume requires:
--volume <volume id>
--access [RO|RW], read-only or read-write
--access-revoke=<initiator id>
Removes access for an initiator to a volume requires:
--volume <volume id>
--access-revoke-group=<access group id>
Removes access for access group to a volume requires:
--volume <volume id>
--resize-volume=<volume id>
Re-sizes a volume, requires:
--size <new size>
--resize-fs=<fs id>
Re-sizes a file system, requires:
--size <new size>
--nfs-export-remove=<nfs export id>
Removes a nfs export
--nfs-export-fs=<file system id>
creates a nfs export
Optional:
--exportpath e.g. /foo/bar.
Note: root, ro, rw are to be repeated for each host
--root <no_root_squash host>
--ro <read only host>
--rw <read/write host>
--anonuid <uid to map to anonymous>
--anongid <gid to map to anonymous>
--auth-type <NFS client authentication type>
--job-status=<job status id>
retrieve information about job
--volume-dependants=<volume id>
Returns True if volume has a dependant child
--volume-dependants-rm=<volume id>
Removes dependencies
--fs-dependants=<fs id>
Returns true if a child dependency exists.
--file <file> for File check (optional)
--fs-dependants-rm=<fs id>
Removes dependencies
--file <file> for File check (optional)
--size=size
size (Can use B, K, M, G, T, P postfix, IEC sizing) No postfix indicates bytes
--pool=pool id
pool ID
--provisioning=PROVISIONING
[DEFAULT|THIN|FULL]
--type=type
type specifier
--name=name
human readable name
--volume=volume
volume ID
--access=access
[RO|RW], read-only or read-write access
--id=initiator id
initiator id
--system=system id
system id
--backing-snapshot=<backing snapshot>
backing snap shot name for operation
--src=<source file>
source of operation
--dest=<source file>
destination of operation
--file=<file>
file to include in operation, option can be repeated
--fileas=<fileas>
file to be renamed as, option can be repeated
--fs=<file system>
file system of interest
--exportpath=<path for export>
desired export path on array
--root=<no_root_squash_host>
list of hosts with no_root_squash
--ro=<read only host>
list of hosts with read/only access
--rw=<read/write host>
list of hosts with read/write access
--anonuid=<anonymous uid>
uid to map to anonymous
--anongid=<anonymous uid>
gid to map to anonymous
--authtype=<type>
NFS client authentication type
--all
specify all in an operation
--src_start=<source block start>
source block address to replicate
--dest_start=<dest. block start>
destination block address to replicate
--count=<block count>
number of blocks to replicate
--in-user=<username>
CHAP inbound user name
--in-password=<password>
CHAP inbound password
--out-user=<out_user>
CHAP outbound user name
--out-password=<out_password>
CHAP outbound password
~/.lsmcli
lsmcli configuration file, containing name-value pairs separated by '='. The only currently supported configuration option is 'uri', such as 'uri=ontap://[email protected]'.
Configuration options in .lsmcli are only used if not overridden by command-line option or environment variable.
Please report bugs to <[email protected]>
Tony Asleson <[email protected]>