SYNOPSIS

lsmcli [options]... [command]... [command options]...

DESCRIPTION

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.

OPTIONS (global)

--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.

ENVIRONMENT

LSMCLI_URI

The URI for the storage array in question.

LSMCLI_PASSWORD

The password to use for the array.

COMMANDS

-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)

COMMAND OPTIONS

--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

FILES

~/.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.

BUGS

Please report bugs to <[email protected]>

AUTHOR

Tony Asleson <[email protected]>