.TH LSMCLI "1" "December 2018" "lsmcli 1.9.1" "libStorageMgmt"
.SH NAME
lsmcli - libStorageMgmt command line interface

.SH SYNOPSIS
.B lsmcli \fIcommand\fR [\fIGLOBAL OPTIONS\fR]...[\fICOMMAND OPTIONS\fR]...

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

.SH PREREQUISITES
.TP 8
* libStorageMgmt daemon.
The daemon '\fBlsmd\fR' is required by lsmcli.
.TP 8
* URI(Uniform Resource Identifier)
URI is used to identify which plugin to use and how the plugin should
communicate with the storage array. The valid URI format is:
.RS 12
.nf
\fBplugin://<username>@host:<port>?<query_string_parameters>\fR
.br
\fBplugin+ssl://<username>@host:<port>?<query_string_parameters>\fR
.fi
.RE 1
.RS 8
Examples, please refer to "LibStorageMgmt User Guide" for more details:
.RE 1
.RS 12
* Simulator:
.RS 4
\fBsim://\fR
.br
\fBsimc://\fR
.RE 1
.RS 12
* SMI-S supported arrays (eg. EMC CX/VNX, HDS AMS, IBM SVC/DS, LSI
MegaRAID and others):
.RS 4
\fBsmis://username@host:<port>?namespace=<namespace>\fR
.br
\fBsmis+ssl://username@host:<port>?namespace=<namespace>\fR
.RE 1
.RS 8
You can pass URI to lsmcli via one of these methods:
.RS 4
* Using '\fB-u\fR, \fB--uri\fR' argument.
.br
* Using '\fBLSMCLI_URI\fR' environment variable.
.br
* Add this line into \fB$HOME/.lsmcli\fR:
.RS 4
uri=\fI<URI>\fR
.RE 1
.TP 8
* Password
For storage array password authentication you can pass it to
lsmcli via one of the following methods:
.RS 12
* '\fB-P\fR, \fB--prompt\fR' argument to prompt for password.
.br
* '\fBLSMCLI_PASSWORD\fR' environment variable.
.RE 1
.SH "GLOBAL OPTIONS"
.TP 15
\fB--version\fR
Show program's version number and exit
.TP 15
\fB-h\fR, \fB--help\fR
Show this help message and exit. Will show help message of specific command
if specified.
.TP 15
\fB-u\fR \fI<URI>\fR, \fB--uri\fR \fI<URI>\fR
Uniform Resource Identifier (env LSMCLI_URI)
.TP 15
\fB-P\fR, \fB--prompt\fR
Prompt for password (env LSMCLI_PASSWORD)
.TP 15
\fB-H\fR, \fB--human\fR
Print sizes in human readable format
(e.g., KiB, MiB, GiB, TiB, PiB, EiB)
.TP 15
\fB-t\fR \fI<SEP>\fR, \fB--terse\fR \fI<SEP>\fR
Print output in terse form with "SEP" as a record separator without header
unless '--header' defined.
.TP 15
\fB--header\fR
Include the header with terse
.TP 15
\fB-e\fR, \fB--enum\fR
Display enumerated types as numbers instead of text
.TP 15
\fB-f\fR, \fB--force\fR
Bypass confirmation prompt for data loss operations
.TP 15
\fB-w\fR \fI<WAIT>\fR, \fB--wait\fR=\fI<WAIT>\fR
Command timeout value in ms (default = 30s)
.TP 15
\fB-b\fR
Run the command asynchronously instead of waiting for completion. The 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 --id \fI<job id>\fR' to inquire on the progress of the command.
Some arrays or plugins might not support asynchronous operations, in those
circumstances, \fb-b\fR will be ineffective.  Command will wait until finished.
.TP 15
\fB-s\fR, \fB--script\fR
Displaying data in script friendly way.
.br
Without this option, data is displayed in this manner (default):

    ID     | Name    | Element Type             ...
    ------------------------------------------  ...
    aggr0  | aggr0   | FS,SYSTEM_RESERVED,POOL  ...
    iscsi  | iscsi   | FS,POOL                  ...


With this option, data is displayed in this manner.

    -----------------------------------------------
    ID               | aggr0
    Name             | aggr0
    Element Type     | FS,SYSTEM_RESERVED,POOL
    ...
    -----------------------------------------------
    ID               | iscsi
    Name             | iscsi
    Element Type     | FS,POOL
    ...

Please note:
.br
To reduce the width of output, NOT all properties will be displayed in default
column display.

.SH COMMANDS
.SS list
List information on LSM objects
.TP 15
\fB--type\fR \fI<TYPE>\fR
Required. Valid values are (case insensitive):
.br
\fBVOLUMES\fR, \fBPOOLS\fR, \fBFS\fR, \fBSNAPSHOTS\fR,
\fBEXPORTS\fR, \fBNFS_CLIENT_AUTH\fR,
.br
\fBACCESS_GROUPS\fR, \fBSYSTEMS\fR, \fBDISKS\fR, \fBPLUGINS\fR,
\fBTARGET_PORTS\fR, \fBBATTERIES\fR.

.TP
\fB--fs\fR \fI<FS_ID>\fR
Required for \fB--type\fR=\fBSNAPSHOTS\fR, list the snapshots of specific
filesystem.
Optional for type \fBEXPORTS\fR, list the NFS export for specific filesystem.
Optional for type \fBFS\fR, list specific filesystem.
.TP
\fB--sys\fR \fI<SYS_ID>\fR
Optional.
Search resources from system with SYS_ID. Only supported when querying these
types of resources: \fBVOLUMES\fR, \fBPOOLS\fR, \fBFS\fR,
\fBDISKS\fR, \fBACCESS_GROUPS\fR, \fBTARGET_PORTS\r,
\fBBATTERIES\fR.
.TP
\fB--pool\fR \fI<POOL_ID>\fR
Optional.
Search resources from pool with POOL_ID. Only supported by these types of
resources: \fBVOLUMES\fR, \fBPOOLS\fR, \fBFS\fR.
.TP
\fB--vol\fR \fI<VOL_ID>\fR
Search resources from volume with VOL_ID. Only supported by these types of
resources: \fBVOLUMES\fR, \fBACCESS_GROUPS\fR.
.br
To query volume masking status, please use this command:
   lsmcli list --type ACCESS_GROUPS --vol <VOL_ID>
.TP
\fB--disk\fR \fI<DISK_ID>\fR
Search resources from disk with DISK_ID. Only supported by these types of
resources: \fBDISK\fR.
.TP
\fB--ag\fR \fI<AG_ID>\fR
Search resources from access group with AG_ID. Only supported by these types
of resources: \fBACCESS_GROUPS\fR, \fBVOLUMES\fR.
.br
To query volume masking status, please use this command:
   lsmcli list --type VOLUMES --ag <AG_ID>
.TP
\fB--nfs-export\fR \fI<NFS_EXPORT_ID>\fR
Search resources from NFS export with NFS_EXPORT_ID. Only supported by these
types of resources: \fBEXPORTS\fR.
.TP
\fB--tgt\fR \fI<TGT_ID>\fR
Search resources from target port with target port ID. Only supported by these
types of resources: \fBTARGET_PORTS\fR.

.SS job-status
Retrieve information about a job.  Please see user guide on how to use.
.TP 15
\fB--job\fR \fI<JOB_ID>\fR

.SS capabilities
Retrieves array capabilities.
.TP 15
\fB--sys\fR \fI<SYS_ID>\fR
Required. ID of the system to query for capabilities.

.SS plugin-info
Retrieves plugin description and version for current URI.

.SS volume-create
Creates a volume (AKA., logical volume, virtual disk, LUN).
.TP 15
\fB--name\fR \fI<NAME>\fR
Required. Volume name.
.TP
\fB--size\fR \fI<SIZE>\fR
Required. Volume size (See \fBSIZE OPTION\fR for allowed formats).
.TP
\fB--pool\fR \fI<POOL_ID>\fR
Required. ID of pool.
.TP
\fB--provisioning\fR \fI<THINP_TYPE>\fR
Optional. Provisioning type. Valid values are: DEFAULT, THIN, FULL.
\fBDEFAULT\fR means let plugin choose. \fBTHIN\fR means requiring a Thin
Provisioning enabled volume. \fBFULL\fR means requiring a fully allocated
volume.

.SS volume-raid-create
Creates a volume on hardware RAID on given disks.
.TP 15
\fB--name\fR \fI<NAME>\fR
Required. Volume name. Might be altered or ignored due to hardware RAID card
vendor limitation.
.TP
\fB--raid-type\fR \fI<RAID_TYPE>\fR
Required. Could be one of these values: \fBRAID0\fR, \fBRAID1\fR, \fBRAID5\fR,
\fBRAID6\fR, \fBRAID10\fR, \fBRAID50\fR, \fBRAID60\fR. The supported RAID
types of current RAID card could be queried via command
"\fBvolume-raid-create-cap\fR".
.TP
\fB--disk\fR \fI<DISK_ID>\fR
Required. Repeatable. The disk ID for new RAID group.
.TP
\fB--strip-size\fR \fI<STRIP_SIZE>\fR
Optional. The size in bytes of strip on each disks. If not defined, will let
hardware card to use the vendor default value. The supported stripe size of
current RAID card could be queried via command "\fBvolume-raid-create-cap\fR".

.SS volume-raid-create-cap
Query support status of volume-raid-create command for current hardware RAID
card.
.TP 15
\fB--sys\fR \fI<SYS_ID>\fR
Required. ID of the system to query for capabilities.

.SS volume-ident-led-on
Enable the IDENT LEDs for all physical disks that compose a logical volume.
.TP 15
\fB--vol\fR \fI<VOL_ID>\fR
Required. ID of the volume being targeted.

.SS volume-ident-led-off
Disable the IDENT LEDs for all physical disks that compose a logical volume.
.TP 15
\fB--vol\fR \fI<VOL_ID>\fR
Required. ID of the volume being targeted.

.SS volume-delete
.TP 15
Delete a volume given its ID
.TP
\fB--vol\fR \fI<VOL_ID>\fR
Required. The ID of volume to delete.

.SS volume-resize
.TP 15
Re-sizes a volume, requires:
.TP
\fB--vol\fR \fI<VOL_ID>\fR
Required. The ID of volume to resize.
.TP
\fB--size\fR \fI<NEW_SIZE>\fR
Required. The new size of volume.(See \fBSIZE OPTION\fR for allowed formats).
Due to boundary alignment concern, array might return a volume with slightly
bigger size than requested.

.SS volume-replicate
Creates a new volume and replicates provided volume to it.
.TP 15
\fB--vol\fR \fI<VOL_ID>\fR
Required. The ID of volume to replicate.
.TP
\fB--name\fR \fI<NAME>\fR
Required. The name for new volume to hold replicated data.
.TP
\fB--rep-type\fR \fI<REPL_TYPE>\fR (see \fBVOLUME REPLICATION TYPES)\fR
Required. Valid types of replication are:
.br
\fBCLONE\fR, \fBCOPY\fR, \fBMIRROR_ASYNC\fR,
\fBMIRROR_SYNC\fR.
.TP
\fB--pool\fR \fI<POOL_ID>\fR
Optional. The ID of pool where the new volume should be created from. If not specified,
plugin or array will choose appropriate pool.

.SS volume-replicate-range
Replicates a portion of a volume to the same volume or to a different volume.
.TP 15
\fB--src-vol\fR \fI<SRC_VOL_ID>\fR
Required. The ID of replication source volume.
.TP
\fB--dst-vol\fR \fI<DST_VOL_ID>\fR
Required. The ID of replication destination volume.
.TP
\fB--rep-type\fR \fI<REPL_TYPE>\fR (see \fBVOLUME REPLICATION TYPES)\fR
Required. Appropriate types of replication are:
.br
\fBCLONE\fR, \fBCOPY\fR.
.TP
\fB--src-start\fR \fI<SRC_START_BLK>\fR
Required. Replication source volume start block number. Must in pair with
\fB--count\fR and \fB--dst-start\fR.
If you have several non-continuous block ranges, you can define repeatly
define this arugument, like '\fB--src-start 0 --dst-start 0 --count 1024
--src-start 2048 --dst-start 2048 --count 2048\fR'
.TP
\fB--dst-start\fR \fI<DST_START_BLK>\fR
Required. Replication destination volume start block number. Must in pair with
\fB--count\fR and \fB--src-start\fR.
.TP
\fB--count\fR \fI<BLK_COUNT>\fR
Required. The count of replicated block startting from \fB--src-start\rR block.
Must in pair with \fB--src-start\fR and \fB--dst-start\fR.

.SS volume-replicate-range-block-size
Size of each replicated block on a system in bytes.
.TP 15
\fB--sys\fR \fI<SYS_ID>\fR
Required. ID of the system to query for replicated block size.

.SS volume-dependants
Returns True if volume has a dependant child, like replication.
.TP 15
\fB--vol\fR \fI<VOL_ID>\fR
Required. The ID of volume to query dependency.

.SS volume-dependants-rm
Removes volume dependencies(like replication).
.TP 15
\fB--vol\fR \fI<VOL_ID>\fR
Required. The ID of volume to remove dependency.

.SS volume-access-group
Lists the access group(s) that have access to the provided volume.
.TP 15
\fB--vol\fR \fI<VOL_ID>\fR
Required. The ID of volume to query access.

.SS volume-mask
.TP 15
Grant access group RW access to specific volume. Like LUN masking
or NFS export.
.TP
\fB--vol\fR \fI<VOL_ID>\fR
Required. The ID of volume to access.
.TP
\fB--ag\fR \fI<AG_ID>\fR
Required. The ID of access group to grant.

.SS volume-unmask
.TP 15
Revoke access group RW access to specified volume.
.TP
\fB--vol\fR \fI<VOL_ID>\fR
Required. The ID of volume to revoke.
.TP
\fB--ag\fR \fI<AG_ID>\fR
Required. The ID of access group to revoke.

.SS volume-enable
.TP 15
Enable block access of specified volume.
.TP
\fB--vol\fR \fI<VOL_ID>\fR
Required. The ID of volume to enable access.

.SS volume-disable
.TP 15
Disable block access of specified volume.
.TP
\fB--vol\fR \fI<VOL_ID>\fR
Required. The ID of volume to disable access.

.SS volume-raid-info
.TP 15
Query RAID information for given volume.
.TP
\fB--vol\fR \fI<VOL_ID>\fR
Required. The ID of volume to query.

.SS pool-member-info
.TP 15
Query RAID information for given pool.
.TP
\fB--pool\fR \fI<POOL_ID>\fR
Required. The ID of pool to query.

.SS access-group-create
.TP 15
Create an access group.
.TP
\fB--name\fR \fI<AG_NAME>\fR
Required. The human friendly name for new access group.
.TP
\fB--init\fR \fI<INIT_ID>\fR
Required. The first initiator ID of new access group. WWPN or iSCSI IQN.
.TP
\fB--sys\fR \fI<SYS_ID>\fR
Required. The ID of system where this access group should reside on.

.SS access-group-add
Adds an initiator to an access group.
.TP 15
\fB--ag\fR \fI<AG_ID>\fR
Required. ID of access group.
.TP
\fB--init\fR \fI<INIT_ID>\fR
Required. ID of initiator to add. WWPN or iSCSI IQN.

.SS access-group-remove
Removes an initiator from an access group.
.TP 15
\fB--ag\fR \fI<AG_ID>\fR
Required. ID of access group.
.TP
\fB--init\fR \fI<INIT_ID>\fR
Required. ID of initiator to remove.

.SS access-group-delete
Delete an access group.
.TP 15
\fB--ag\fR \fI<AG_ID>\fR
Required. ID of access group to delete.

.SS access-group-volumes
Lists the volumes that the access group has been granted access to.
.TP 15
\fB--ag\fR \fI<AG_ID>\fR
Required. The ID of access group to query.

.SS iscsi-chap
Configures ISCSI inbound/outbound CHAP authentication.
.TP 15
\fB--init\fR \fI<INIT_ID>\fR
Required. The ID of iSCSI initiator to configure.
.TP
\fB--in-user\fR \fI<IN_USER>\fR
Optional. Inbound CHAP user name.
.TP
\fB--in-pass\fR \fI<IN_PASS>\fR
Optional. Inbound CHAP password.
.TP
\fB--out-user\fR \fI<OUT_USER>\fR
Optional. Outbound CHAP user name.
.TP
\fB--out-pass\fR \fI<OUT_PASS>\fR
Optional. Outbound CHAP password.

.SS fs-create
Creates a filesystem.
.TP 15
\fB--name\fR \fI<NAME>\fR
Required. Human friendly name for new filesystem.
.TP
\fB--size\fR \fI<SIZE>\fR
Required. Volume size(See \fBSIZE OPTION\fR for allowed formats).
.TP
\fB--pool\fR \fI<POOL_ID>\fR
Required. ID of pool to hold the new filesystem.

.SS fs-delete
Delete a filesystem.
.TP 15
\fB--fs\fR \fI<FS_ID>\fR
Required. ID of the filesystem to delete.

.SS fs-resize
Resizes a filesystem.
.TP 15
\fB--fs\fR \fI<FS_ID>\fR
Required. ID of the filesystem to resize.
.TP
\fB--size\fR \fI<NEW_SIZE>\fR
Required. New size of filesystem. See \fBSIZE OPTION\fR for allowed
formats.

.SS fs-export
Export a filesystem via NFS.
.TP 15
\fB--fs\fR \fI<FS_ID>\fR
Required. ID of the filesystem to export.
.TP
\fB--exportpath\fR \fI<EXPORT_PATH>\fR
Optional. NFS server export path. e.g. '/foo/bar'.
.TP
\fB--anonuid\fR \fI<ANONY_UID>\fR
Optional. The UID(User ID) to map to anonymous user.
.TP
\fB--anongid\fR \fI<ANONY_GID>\fR
Optional. The GID(Group ID) to map to anonymous user.
.TP
\fB--auth-type\fR \fI<AUTH_TYPE>\fR
Optional. NFS client authentication type. This is just a place holder, not
supported yet.
.TP
\fB--root-host\fR \fI<ROOT_HOST>\fR
Optional. Repeatable. The host/IP has root access. For two or more hosts/IPs:
\fB--root-host hostA --root-host hostB\fR.
.TP
\fB--ro-host\fR \fI<RO_HOST>\fR
Optional. Repeatable. The host/IP has read only access. For two or more
hosts/IPs: '\fB--ro-host hostA --ro-host hostB\fR'.
.TP
\fB--rw-host\fR \fI<RW_HOST>\fR
Optional. The host/IP has read/write access. For two or more hosts/IPs:
\fB--rw-host hostA --rw-host hostB\fR.

.SS fs-unexport
Remove an NFS export.
.TP 15
\fB--export\fR \fI<EXPORT_ID>\fR
Required. ID of the export to unexport.

.SS fs-clone
Creates a file system clone. The 'clone' means point in time read writeable
space efficient copy of data, AKA. read-writable snapshot.
.TP 15
\fB--src-fs\fR \fI<SRC_FS_ID>\fR
Required. The ID of the filesystem to clone.
.TP
\fB--dst-name\fR \fI<DST_FS_NAME>\fR
Required. The name for newly created destination file system.
.TP
\fB--backing-snapshot\fR \fI<BE_SS_ID>\fR
Optional. Make a FS clone using a previously created snapshot.

.SS fs-snap-create
Creates a snapshot of specified filesystem.  A snapshot is defined as a read only
space efficient point in time copy (PIT) of a filesystem.  The source filesystem
remains modifiable.
.TP 15
\fB--name\fR \fI<SNAP_NAME>\fR
Required. The human friendly name of new snapshot.
.TP
\fB--fs\fR \fI<FS_ID>\fR
Required. The ID of filesystem to create snapshot against.

.SS fs-snap-delete
Deletes a snapshot.
.TP 15
\fB--snap\fR \fI<SNAP_ID>\fR
Required. The ID of snapshot to delete.
.TP
\fB--fs\fR \fI<FS_ID>\fR
Required. The ID of filesystem.

.SS fs-snap-restore
Restores a FS or specified files to previous snapshot state. This will discard
all the changes to filesystem since snapshot if specific files are not specified in restore.
.TP 15
\fB--fs\fR \fI<FS_ID>\fR
Required. The ID of filesystem to restore.
.TP
\fB--snap\fR \fI<SNAP_ID>\fR
Required. The ID of snapshot to restore.
.TP
\fB--file\fR \fI<FILE_PATH>\fR
Optional. Repeatable. With this option defined, will only restore the defined
file(s).
\fB--file fileA --file pathB\fR.
.TP
\fB--fileas\fR \fI<NEW_FILE_PATH>\fR
Optional. Repeatable. With this option defined, the restored file will be
saved to specified path and filename, eg. '\fB--file fileA --fileas old_fileA \fR'.

.SS fs-dependants
Returns True if a child dependency (snapshot or clone) exists.
.TP 15
\fB--fs\fR \fI<FS_ID>\fR
Required. The ID of filesystem to query.
.TP
\fB--file\fR \fI<FILE_PATH>\fR
Optional. Repeatable. Only check for dependencies on specific file(s), eg. '\fB--file fileA --file pathB\fR'.

.SS fs-dependants-rm
Removes filesystem dependencies(snapshot or clone).
.TP 15
\fB--fs\fR \fI<FS_ID>\fR
Required. The ID of filesystem to remove dependency.
.TP
\fB--file\fR \fI<FILE_PATH>\fR
Optional. Repeatable. Only remove dependencies on specific file(s), eg. '\fB--file fileA --file pathB\fR'.

.SS file-clone
Creates a clone of a file (thin provisioned).  Note: --src and --dst need to be paired
 eg. '\fB--src fileA --src fileB --dst fileA_clone --dst fileB_clone\fR'.
.TP 15
\fB--fs\fR \fI<FS_ID>\fR
Required. The ID of filesystem to clone.
.TP
\fB--src\fR \fI<SRC_FILE_PATH>\fR
Required. Repeatable. Source file to clone (relative path).
.TP
\fB--dst\fR \fI<DST_FILE_PATH>\fR
Required. Repeatable. Destination file for clone (relative path).
.TP
\fB--backing-snapshot\fR \fI<SNAP_ID>\fR
Optional. Use the source file from previously created snapshot.

.SS system-read-cache-pct-update
Change the read cache percentage for a system.
.TP 15
\fB--sys\fR \fI<SYS_ID>\fR
Required. ID of the system being targeted.
.TP
\fB--read-pct\fR \fI<READ_PCT>\fR
The desired percentage of read cache for the targeted system. Write cache
will be automatically changed to the remaining percentage available after
updating the read cache (if supported by the system).

.SS local-disk-list
List all disks found on current local operating system.
Require permission to open /dev/sdX as read-only, normally root user or disk
group would have sufficient permission.

.SS volume-cache-info
Query RAM cache information for the desired volume.
.TP 15
\fB--vol\fR \fI<VOL_ID>\fR
Required. ID of the volume to query cache information.

.SS volume-phy-disk-cache-update
Disable or enable RAM physical disk cache of specific volume.
.TP 15
\fB--vol\fR \fI<VOL_ID>\fR
Required. ID of the volume to change.
.TP
\fB--policy\fR \fI<POLICY>\fR
Required. \fBEnable\fR or \fBDisable\fR.

.SS volume-read-cache-policy-update
Disable or enable RAM read cache of specific volume.
.TP 15
\fB--vol\fR \fI<VOL_ID>\fR
Required. ID of the volume to change.
.TP
\fB--policy\fR \fI<POLICY>\fR
Required. \fBEnable\fR or \fBDisable\fR.

.SS volume-write-cache-policy-update
Change volume write cache policy.
.TP 15
\fB--vol\fR \fI<VOL_ID>\fR
Required. ID of the volume to change.
.TP
\fB--policy\fR \fI<POLICY>\fR
Required. \fBWB\fR for write back mode, \fBWT\fR for write through mode,
\fBAUTO\fR for auto mode which use \fBWB\fR mode when any battery is OK and use
\fBWT\fR mode else.

.SS local-disk-ident-led-on
Turn on the identification LED for specified disk path.
Require permission to open disk path as read-write, normally root user or disk
group would have sufficient permission.
.TP 15
\fB--path\fR \fI<DISK_PATH>\fR
Required. Disk path, like \fB/dev/sdb\fR.

.SS local-disk-ident-led-off
Turn off the identification LED for specified disk path.
Require permission to open disk path as read-write, normally root user or disk
group would have sufficient permission.
.TP 15
\fB--path\fR \fI<DISK_PATH>\fR
Required. Disk path, like \fB/dev/sdb\fR.

.SS local-disk-fault-led-on
Turn on the fault LED for specified disk path.
Require permission to open disk path as read-write, normally root user or disk
group would have sufficient permission.
.TP 15
\fB--path\fR \fI<DISK_PATH>\fR
Required. Disk path, like \fB/dev/sdb\fR.

.SS local-disk-fault-led-off
Turn off the fault LED for specified disk path.
Require permission to open disk path as read-write, normally root user or disk
group would have sufficient permission.
.TP 15
\fB--path\fR \fI<DISK_PATH>\fR
Required. Disk path, like \fB/dev/sdb\fR.

.IP
.SH ALIAS
.SS ls
Alias of 'list --type systems'
.SS lp
Alias of 'list --type pools'
.SS lv
Alias of 'list --type volumes'
.SS ld
Alias of 'list --type disks'
.SS la
Alias of 'list --type access_groups'
.SS lf
Alias of 'list --type fs'
.SS lt
Alias of 'list --type target_ports'
.SS lb
Alias of 'list --type batteries'
.SS c
 Alias of 'capabilities'
.SS p
 Alias of 'plugin-info'
.SS vc
Alias of 'volume-create'
.SS vrc
Alias of 'volume-raid-create'
.SS vrcc
Alias of 'volume-raid-create-cap'
.SS vilon
Alias of 'volume-ident-led-on'
.SS viloff
Alias of 'volume-ident-led-off'
.SS vd
Alias of 'volume-delete'
.SS vr
Alias of 'volume-resize'
.SS vm
Alias of 'volume-mask'
.SS vu
Alias of 'volume-unmask'
.SS ve
Alias of 'volume-enable'
.SS vi
Alias of 'volume-disable'
.SS vri
Alias of 'volume-raid-info'
.SS pmi
Alias of 'pool-member-info'
.SS ac
Alias of 'access-group-create'
.SS aa
Alias of 'access-group-add'
.SS ar
Alias of 'access-group-remove'
.SS ad
Alias of 'access-group-delete'
.SS srcps
Alias of 'system-read-cache-pct-update'
.SS ldl
Alias of 'local-disk-list'
.SS vci
Alias of 'volume-cache-info'
.SS vpdcu
Alias of 'volume-phy-disk-cache-update'
.SS vrcpu
Alias of 'volume-read-cache-policy-update'
.SS vwcpu
Alias of 'volume-write-cache-policy-update'
.SS ldilon
Alias of 'local-disk-ident-led-on'
.SS ldiloff
Alias of 'local-disk-ident-led-off'
.SS ldflon
Alias of 'local-disk-fault-led-on'
.SS ldfloff
Alias of 'local-disk-fault-led-off'

.IP
.SH SIZE OPTION
.SS \fB--size\fR \fI\fI<SIZE>\fR\fR
Storage space size. Format is '\fI<number>\fR' + '\fI<prefix>\fR'. Example:
"10GiB", "20.5MB". No postfix indicates bytes. Valid prefixes are:
    KiB,                    # 2^10 Bytes
    MiB,                    # 2^20 Bytes
    GiB,                    # 2^30 Bytes
    TiB,                    # 2^40 Bytes
    PiB,                    # 2^50 Bytes
    EiB,                    # 2^60 Bytes
    KB,                     # 10^3 Bytes
    MB,                     # 10^6 Bytes
    GB,                     # 10^9 Bytes
    TB,                     # 10^12 Bytes
    PB,                     # 10^15 Bytes
    EB,                     # 10^17 Bytes

These prefixes are supported also, but not recommended:
    K, M, G, T, P, E,       # equal to KiB, MiB, and etc
    k, m, g, t, p, e,       # equal to KiB, MiB, and etc

.SH FILES
.TP 15
~/.lsmcli
lsmcli configuration file, containing name-value pairs separated
by '='. The only currently supported configuration option is 'uri',
such as 'uri=targetd://user@storage.example.com'.

Configuration options in .lsmcli are only used if not overridden by
command-line option or environment variable.

.SH EXAMPLES (command output omitted for brevity)
.TP 15
Simulator, list pools (no password required)
$ lsmcli -u sim:// -l POOLS
.TP 15
Targetd, list volumes (prompting for password)
$ lsmcli -u targetd://root@host/ -l VOLUMES -P
.TP 15
SMI-S, list systems (prompting for password)
.nf
$ lsmcli -u smispy://username@host:5988/?namespace=root/interop \\
        -l SYSTEMS -P
.fi
.TP 15
Targetd, list pools (using env variables for URI and password)
$ export LSMCLI_URI=targetd://username@host:18700
.br
$ export LSMCLI_PASSWORD=\fI<password>\fR
.br
$ lsmcli -l POOLS
.TP 15
SMI-S, create volume (using environment variables for URI and password)
.nf
$ export LSMCLI_URI='smispy+ssl://user@host:5989?namespace=root/emc'
$ export LSMCLI_PASSWORD=\fI<password>\fR
$ lsmcli volume-create --name volume_name --size 1TiB --pool default
.fi

.SH ENVIRONMENT
.TP 17
LSMCLI_URI
The URI for the storage array in question.
.TP 17
LSMCLI_PASSWORD
The password to use for the array.

.SH VOLUME REPLICATION TYPES
.TP 17
CLONE
A point in time, read writeable, space efficent copy of data.
.TP 17
COPY
A full bitwise copy of the data. It occupies the full space.
.TP 17
MIRROR_SYNC
Continously updated, realtime with both copies having identical data.
.TP 17
MIRROR_ASYNC
Continously updated, with a varying amount of delay and data delta
between the source and target.


.SH NOTES
.TP 8
Optional search argument
When specifying an optional search argument, it's not considered an error if
no search results are found, eg. specifying a non-existent system id.  The exit
code will be 0.

.TP 8
Plugin installation
Plugins are installed individually except for the simulators which are always
included.

.TP 8
Secure sockets layer (SSL)
All of the plugins (except the simulator) support SSL when communicating from
the plugin to the array.  This is accomplished by adding "+ssl" to the plugin
and usually by selecting a different port number from non-SSL communications.
.br
.nf
$ lsmcli -u smispy+ssl://username@host:5989/?namespace=interop \\
        list --type SYSTEMS -P
.fi

.TP 8
SSL error: certificate verify failed
When using SMI-S plugin with SSL against self-signed SMI-S provider, lsmcli
normally quit with '\fBSSL error: certificate verify failed\fR'. Please
contact SMI-S provider support to setup the self-signed certificate in your
system. If you prefer to bypass the certificate check, add 'no_ssl_verify=yes'
at the end of URI, for example:
.RS 12
.nf
\fBsmispy+ssl://admin@emc-smi:5989?namespace=root/emc&no_ssl_verify=yes\fR
.fi

.SH BUGS
Please report bugs to
\fI<libstoragemgmt-devel@lists.fedorahosted.org>\fR
.SH AUTHOR
Tony Asleson \fI<tasleson@redhat.com>\fR
.br
Gris Ge \fI<fge@redhat.com>\fR
