---
name: "lsmcli"
section: "1"
platform: "linux"
package: "libstoragemgmt-tools"
version: "0.0.20-2"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/lsmcli"
---

# lsmcli(1)

LibStorageMgmt command line interface

## NAME

lsmcli - LibStorageMgmt command line interface

## 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://user@filer.example.com'.

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

## BUGS

Please report bugs to  \<libstoragemgmt-devel@lists.sourceforge.net\>

## AUTHOR

Tony Asleson \<tasleson@redhat.com\>
