This page collects the DS8000 DSCLI commands storage admins use every week on IBM DS8000 systems, with a plain-English line and a working example for each. The syntax follows IBM’s DS CLI reference for the DS8000 G10 family (DS8A10, DS8A50, DS8A80, Release 10.1). Almost all of it also works on a DS8900F.
Use the badges before you press Enter. Read only commands only look. Changes config commands change the setup but don’t destroy data. Danger commands can delete data or cut a host off its disks, so check twice, and check with your change process first.
Want to practise without a real DS8000? Our IBM DS8000 Implementation course gives you a practice shell that runs most of these commands on your laptop, and the IBM DS8000 Architecture course explains what every object really is.
Try it yourself: the DS8000 tab in the Command Builder fills in these commands with your own pool, volume, host and WWPN values: 35 tasks, from a health check to Metro Mirror.
On this page: DS CLI basics · system and hardware · I/O ports · arrays and ranks · extent pools · FB volumes · hosts and mapping · CKD volumes · FlashCopy · Metro Mirror and Global Mirror · Safeguarded Copy capacity · Easy Tier · users · licences · monitoring · recipes · commands that don’t exist
Before you run any command, double-check it
Read every command twice before you press Enter. Check the target: the storage image ID, the volume and pool IDs, the host names and the sizes. The examples here were tested in our practice shell, not on your system. At work, run the read-only list commands first, follow your change process, make sure a backup exists, and ask a second person to check anything that changes or deletes data. You run these commands at your own risk.
Before you start: how the DS CLI works

The DS CLI runs on your laptop or a jump server and talks to the DS8000 through its HMC (Hardware Management Console). Every command has the same shape: a name, some flags that start with a hyphen, and usually an object ID at the end, for example lsrank -l R0 R1. The names follow a pattern: ls lists, show gives the detail of one object, mk makes, ch changes, rm removes.
| Command | What it does | Example | Type |
|---|---|---|---|
dscli |
Starts interactive mode. It asks for the HMC address, user and password, then shows the dscli> prompt. | dscli |
Read only |
dscli -cfg profile |
Starts with the settings in a profile file (HMC addresses, devid, username, password file). | dscli -cfg ds8k-prod.profile |
Read only |
dscli -hmc1 ip -hmc2 ip |
Names both HMCs, so the DS CLI switches to HMC 2 if HMC 1 is down. | dscli -hmc1 10.0.0.1 -hmc2 10.0.0.5 |
Read only |
dscli ... command |
Single-shot mode: runs one command and exits. Good inside shell scripts. | dscli -cfg ds8k.profile -pwfile security.dat lsarray |
Read only |
dscli -script file |
Script mode: one login, then every DS CLI command in the file. Lines with # are comments; shell commands are not allowed. | dscli -cfg ds8k.profile -script daily-check.txt |
Read only |
managepwfile |
Saves a password in an encrypted file, so scripts don’t hold clear-text passwords. | managepwfile -action add -name storadm1 -pw Temp1234 |
Changes config |
ver -l |
Shows the DS CLI, HMC and code bundle versions. | ver -l |
Read only |
help / help -s / help -l |
Lists all commands, with short descriptions or full syntax. | help -s mkfbvol |
Read only |
command -h |
Shows the usage of one command. | mkhost -h |
Read only |
quit / exit |
Leaves interactive mode. | quit |
Read only |
A tip from real teams: put devid, hmc1 and hmc2 in your profile. Then you never send a command to the wrong box by forgetting -dev, and you keep working when one HMC is down.
The order you configure a DS8000 in
Every DS8000 is built bottom up, and each step needs the one before it. Array sites already exist when the system arrives (the system makes them from the installed drives), so your work starts with picking one. For open systems (FB) the LSS comes into being by itself when you create the first volume in it. For IBM Z (CKD) you create the LCU yourself before any volume.
- Array site: pick a free one and note its DA pair.
lsarraysite -l - Array: RAID 6 or RAID 10 from that site.
mkarray -raidtype 6 -arsite S1 - Rank: format the array for FB or CKD.
mkrank -array A0 -stgtype fbor-stgtype ckd - Extent pool: one per rank group (server), then put the rank in it.
mkextpool -rankgrp 0 -stgtype fb pool_0andchrank -extpool P0 R0 - LSS or LCU: FB volumes create their LSS automatically. CKD needs
mklcu -qty 1 -id 40 -ss 4040first. - Volumes:
mkfbvol -extpool P0 -cap 100 2000-2003for FB, ormkckdvol -extpool P2 -cap 10017 4000-4003for CKD, plusmkaliasvolfor PAV aliases. - Host access: FB volumes are mapped to hosts (
mkhostandchhost -action mapon DS8900F and DS8A00, ormkvolgrpandmkhostconnecton older systems). CKD volumes go to the FICON/ESCON ALL volume group by themselves, and the z/OS team brings them online.
The Build in order task in the Command Builder writes this whole sequence for you, for FB or CKD.
System and hardware
Run these first when you log in to a box you don’t know, or when someone says “the storage is down”.
| Command | What it does | Example | Type |
|---|---|---|---|
lssi |
Lists the storage image: name, ID, model, WWNN, state. | lssi |
Read only |
showsi |
All details of the storage image: memory, NVS, WWNN, Easy Tier settings, Dual Control. | showsi IBM.2107-78SV001 |
Read only |
lsserver -l |
The two storage servers (server0, server1), their state and code levels. | lsserver -l |
Read only |
lshmc |
The two HMCs, their roles, IP addresses and release. | lshmc |
Read only |
lspnode |
Processor nodes with state, release, processor and memory. | lspnode -l |
Read only |
lsioenclosure |
I/O enclosures with their host and device adapter counts. | lsioenclosure -l |
Read only |
lshacard |
Host adapter cards: speed, ports, state. (Old name: lshba.) | lshacard -l |
Read only |
lsdacard |
Device (flash RAID) adapters and their DA pairs. (Old name: lsda.) | lsdacard |
Read only |
lsdrive |
Every flash drive: enclosure, state, class, capacity, array. (Old name: lsddm.) | lsdrive -l |
Read only |
lsstgencl |
Storage (flash) enclosures and their state. | lsstgencl IBM.2107-78SV001 |
Read only |
lsframe |
Frames that belong to the system. | lsframe IBM.2107-78SV001 |
Read only |
I/O ports
| Command | What it does | Example | Type |
|---|---|---|---|
lsioport |
All host ports: WWPN, state, type (SW/LW), topology (SCSI-FCP or FICON). | lsioport |
Read only |
lsioport -l |
Same list with more detail, such as speed. | lsioport -l I0030 I0032 |
Read only |
showioport -metrics |
Traffic counters and Fibre Channel error counters for one port (CRC, link failures, loss of sync). | showioport -metrics I0032 |
Read only |
showioport -rdp |
Optical details from the SFP and the attached switch port: Rx/Tx power, temperature, speed. | showioport -rdp I0032 |
Read only |
setioport -topology |
Sets a port to scsifcp (open systems and mirroring) or ficon (IBM Z). Needs -force if a topology is already set. | setioport -topology scsifcp I0030 I0031 |
Changes config |
setioport -update rdp |
Refreshes the RDP data from the SFP and the attached port. | setioport -update rdp I0032 |
Read only |
When a host complains about slow or flapping paths, showioport -metrics is the fastest check you have. Growing CRCErr or InvTxWordErr counters usually mean a dirty connector, a bad cable or a failing SFP on the switch side.
Arrays and ranks
| Command | What it does | Example | Type |
|---|---|---|---|
lsarraysite -l |
Array sites (groups of 8 drives): capacity, DA pair, disk class, state. | lsarraysite -l -diskclass FlashCoreModule |
Read only |
mkarray |
Creates a RAID 6 (default) or RAID 10 array on one array site. RAID 5 is not supported on DS8A00. | mkarray -raidtype 6 -arsite S1 |
Changes config |
lsarray -l |
Arrays with RAID type, array site, rank and capacity. | lsarray -l |
Read only |
rmarray |
Deletes an array that has no rank. | rmarray A3 |
Danger |
lskeygrp |
Encryption key groups. You need the group ID for mkrank when encryption is on. | lskeygrp |
Read only |
mkrank |
Makes a rank from an array: FB or CKD, extent size, key group. | mkrank -array A0 -stgtype fb -keygrp 1 |
Changes config |
mkrank -extsize |
Chooses large (1GiB / 1113cyl) or small (16MiB / 21cyl) extents. Small is the default. | mkrank -array A1 -stgtype ckd -keygrp 1 -extsize 21cyl |
Changes config |
lsrank -l |
Ranks with group, pool, extents used, extent size and compression. | lsrank -l |
Read only |
showrank -metrics |
Read and write counters for one rank. | showrank -metrics R0 |
Read only |
chrank -extpool |
Assigns a rank to an extent pool. | chrank -extpool P0 R0 |
Changes config |
chrank -reserve / -release |
Stops or allows new allocations on a rank. | chrank -reserve R4 |
Changes config |
chrank -unassign |
Takes a rank out of its pool (Easy Tier moves its extents first). | chrank -unassign R4 |
Danger |
rmrank |
Deletes a rank. Its data is gone and the drives are reformatted. | rmrank R4 |
Danger |
Extent pools
Extent pools come in pairs: an even pool on rank group 0 (server0) and an odd pool on rank group 1 (server1). Keep the pair balanced, or one server does most of the work.
| Command | What it does | Example | Type |
|---|---|---|---|
mkextpool |
Creates an empty pool on rank group 0 or 1 for FB or CKD. | mkextpool -rankgrp 0 -stgtype fb -keygrp 1 FB_0 |
Changes config |
lsextpool |
Pools with free capacity (availstor), % allocated, status and volume count. | lsextpool |
Read only |
lsextpool -l |
Adds ranks, key group, tiers, Easy Tier and extent size. | lsextpool -l |
Read only |
showextpool |
All details of one pool, including thresholds and limits. | showextpool P0 |
Read only |
showextpool -tier |
Capacity per flash tier inside the pool. | showextpool -tier P0 |
Read only |
chextpool -threshold |
Warns when free real extents drop below this percentage (default 15). | chextpool -threshold 20 P0 |
Changes config |
chextpool -opratiolimit |
Caps how far thin volumes can over-provision the pool. | chextpool -opratiolimit 3 P1 |
Changes config |
chextpool -merge |
Merges another pool into this one. | chextpool -merge P2 P0 |
Changes config |
manageextpool |
Pauses or resumes Easy Tier moves or monitoring for a pool. | manageextpool -action etmigpause -duration 1H P0 |
Changes config |
rmextpool |
Deletes an empty pool. | rmextpool P4 |
Danger |
FB volumes (open systems LUNs)
Volume IDs are four hex digits, LLVV: LL is the LSS (00–FE), VV is the volume inside it (00–FF). Even LSSs come from even pools, odd LSSs from odd pools. The first digit is the address group, which is either all FB or all CKD.
| Command | What it does | Example | Type |
|---|---|---|---|
mkfbvol |
Creates fully provisioned volumes. -cap is in GiB unless you set -type. | mkfbvol -extpool P0 -cap 100 -name app_#h 2000-2003 |
Changes config |
mkfbvol -sam ese |
Creates thin (extent space efficient) volumes. Pools on FlashCore Modules accept only these. | mkfbvol -extpool P1 -cap 500 -sam ese -name db_#h 2100-2101 |
Changes config |
mkfbvol -eam |
Rotate extents (stripe over all ranks, the default) or rotate volumes. | mkfbvol -extpool P0 -cap 50 -eam rotateexts 2004 |
Changes config |
lsfbvol |
Volumes with state, pool and capacity. | lsfbvol -extpool P0 |
Read only |
showfbvol |
Every detail of one volume: GUID, pool, extents, safeguarded fields. | showfbvol 2000 |
Read only |
showfbvol -rank |
How the volume’s extents are spread over ranks. | showfbvol -rank 2004 |
Read only |
showfbvol -metrics |
Cache and I/O counters for one volume. | showfbvol -metrics 2000 |
Read only |
chfbvol -cap |
Grows a volume online (it can never shrink). Remove Copy Services first. | chfbvol -cap 200 2000 |
Changes config |
chfbvol -name |
Renames a volume. | chfbvol -name payroll_db 2001 |
Changes config |
initfbvol |
Frees all extents of a thin volume. All data on it is lost. | initfbvol -action releasespace 2101 |
Danger |
rmfbvol -safe |
Deletes only if the volume is not in a user volume group and not in use. | rmfbvol -safe 2003 |
Danger |
rmfbvol -force |
Deletes without the in-use check. Almost never the right choice. | rmfbvol -force 2003 |
Danger |
Hosts and volume mapping
The modern way is host objects: create the host with its WWPNs, then map volumes to the host or to a cluster of hosts. The DS8000 creates the volume group for you.
| Command | What it does | Example | Type |
|---|---|---|---|
lshosttype |
Shows host types and their address discovery mode (SCSI Mask or Map 256). | lshosttype -type scsimap256 |
Read only |
mkcluster |
Creates a cluster to group hosts that share the same disks. | mkcluster esx_prod |
Changes config |
mkhost |
Creates a host with its type, ports and (optional) cluster. | mkhost -type "Linux Server" -hostport 10000090FA13B914,10000090FA13B915 dbsrv01 |
Changes config |
lshostport -login |
WWPNs that are logged in to the DS8000 right now, with the I/O port they use. | lshostport -login |
Read only |
lshostport -unknown |
Logged-in WWPNs that don’t belong to any host yet. | lshostport -unknown |
Read only |
mkhostport |
Adds one WWPN to an existing host. | mkhostport -host dbsrv01 10000090FA13B916 |
Changes config |
chhost -action map |
Maps volumes to one host. | chhost -action map -volume 2000-2003 dbsrv01 |
Changes config |
chcluster -action map |
Maps volumes to every host in a cluster. | chcluster -action map -volume 2100-2103 esx_prod |
Changes config |
chhost -action unmap |
Removes volumes from a host. The host loses those disks at once. | chhost -action unmap -volume 2003 dbsrv01 |
Danger |
lshost -l |
Hosts with type, state, cluster, number of volumes and ports. | lshost -l |
Read only |
showhost |
Details of one host. | showhost dbsrv01 |
Read only |
lsvolgrp / showvolgrp |
Volume groups and the volumes inside one. | showvolgrp V5 |
Read only |
chvolgrp |
Adds or removes volumes in a volume group. | chvolgrp -action add -volume 2004 V5 |
Changes config |
rmhost |
Deletes a host. It refuses while volumes are still mapped. | rmhost dbsrv01 |
Danger |
mkvolgrp / mkhostconnect |
Older two-step method (volume group + host connection). Still works, but the GUI shows such ports as unassigned. | mkhostconnect -wwname 10000090FA13B914 -hosttype pSeries -volgrp V1 aix01 |
Changes config |
CKD volumes for IBM Z
For mainframes you create LCUs first, then CKD volumes inside them. There are no host objects: FICON access follows the IODF on the IBM Z side.
| Command | What it does | Example | Type |
|---|---|---|---|
mklcu |
Creates LCUs (logical control units) with a unique subsystem ID (SSID). | mklcu -qty 2 -id BC -ss 91BC |
Changes config |
lslcu |
Lists LCUs with their rank group and address group. | lslcu |
Read only |
mkckdvol |
Creates CKD volumes. Capacity in cylinders; use multiples of 1113. | mkckdvol -extpool P2 -cap 262668 -datatype 3390-A -name PROD_#h BC00-BC05 |
Changes config |
lsckdvol |
Lists CKD volumes, including PAV aliases (voltype CKD Alias). | lsckdvol -lcu BC |
Read only |
showckdvol -rank |
Details and rank spread of one CKD volume. | showckdvol -rank BC00 |
Read only |
chckdvol -cap |
Grows a CKD volume. A 3390-9 above 65,520 cylinders becomes 3390-A. | chckdvol -cap 30051 BD00 |
Changes config |
mkaliasvol |
Creates PAV alias addresses for base volumes in the same LCU. | mkaliasvol -base BC00-BC05 -order decrement -qty 2 BCFF |
Changes config |
rmckdvol |
Deletes CKD volumes. Volumes online to a host are skipped unless you use -force. | rmckdvol BD03 |
Danger |
FlashCopy
FlashCopy makes a point-in-time copy inside the same DS8000. The pair is written source:target, and the target must be the same size or bigger.
| Command | What it does | Example | Type |
|---|---|---|---|
mkflash |
Creates a copy with a background copy of all data (the default). | mkflash 2000:2100 |
Changes config |
mkflash -nocp |
No background copy: only changed tracks are copied. Quick and light, but the target depends on the source. | mkflash -nocp 2000:2100 |
Changes config |
mkflash -record -persist |
Incremental copy you can refresh later with resyncflash. | mkflash -record -persist 2000:2100 |
Changes config |
lsflash -l |
FlashCopy pairs with recording, persistence, out-of-sync tracks and state. | lsflash -l 2000:2100 |
Read only |
resyncflash |
Refreshes an incremental pair, copying only changes. Repeat -record -persist each time. | resyncflash -record -persist 2000:2100 |
Changes config |
reverseflash |
Copies the target back onto the source (a restore). Type the pair in its original order. | reverseflash 2000:2100 |
Danger |
rmflash |
Removes a FlashCopy relationship. | rmflash 2000:2100 |
Danger |
unfreezeflash |
Releases the long-busy state after a consistent mkflash -freeze. Takes LSS IDs. | unfreezeflash 20 |
Changes config |
Metro Mirror, Global Copy and Global Mirror
Remote copy needs paths first (per LSS pair), then pairs. Metro Mirror (-type mmir) is synchronous; Global Copy (-type gcp) is asynchronous. Global Mirror adds consistency groups on top of Global Copy with a session.
| Command | What it does | Example | Type |
|---|---|---|---|
lsavailpprcport |
Port pairs that can reach the remote DS8000. Needs the remote WWNN (from lssi or showsi on that box). | lsavailpprcport -remotewwnn 5005076303FFC663 20:20 |
Read only |
mkpprcpath |
Creates the paths for one LSS pair. It replaces existing paths, so list every port pair in one command. | mkpprcpath -remotewwnn 5005076303FFC663 -srclss 20 -tgtlss 20 I0030:I0130 I0230:I0330 |
Changes config |
lspprcpath -l |
Paths per LSS with state (Success, Failed, Degraded) and failure reason. | lspprcpath -l 20 |
Read only |
mkpprc -type mmir |
Creates Metro Mirror pairs. -mode full copies everything first. | mkpprc -remotedev IBM.2107-78SV002 -type mmir -mode full 2000-2003:2000-2003 |
Changes config |
mkpprc -type gcp |
Creates Global Copy pairs for long distance. | mkpprc -remotedev IBM.2107-78SV002 -type gcp -mode full 2100-2103:2100-2103 |
Changes config |
lspprc -l |
Pair state: Copy Pending, Full Duplex, Suspended, and the reason. | lspprc -l 2000-2003 |
Read only |
pausepprc |
Suspends pairs. Writes go on at the primary, changes are tracked. | pausepprc -remotedev IBM.2107-78SV002 2000:2000 |
Changes config |
resumepprc |
Resumes suspended pairs and copies the tracked changes. | resumepprc -remotedev IBM.2107-78SV002 -type mmir 2000:2000 |
Changes config |
failoverpprc |
Run on the DR box: makes its volumes usable as sources (pairs written B:A). | failoverpprc -dev IBM.2107-78SV002 -remotedev IBM.2107-78SV001 -type mmir 2000:2000 |
Danger |
failbackpprc |
Resynchronises from the side that is now the source. | failbackpprc -dev IBM.2107-78SV002 -remotedev IBM.2107-78SV001 -type mmir 2000:2000 |
Danger |
rmpprc |
Removes pairs. | rmpprc -remotedev IBM.2107-78SV002 2000:2000 |
Danger |
mksession / chsession |
Opens a Global Mirror session on an LSS and adds volumes to it. | chsession -lss 21 -action add -volume 2100-2103 01 |
Changes config |
mkgmir |
Starts Global Mirror for a session on the master LSS. | mkgmir -lss 21 -session 01 |
Changes config |
showgmir |
Global Mirror state, CG interval and success percentage. | showgmir 21 |
Read only |
The usual cause of a suspended mirror is not the mirror at all. It’s the paths: both paths on one fabric, a changed zone, or an ISL that went down. Check lspprcpath -l before anything else.
Safeguarded Copy capacity
Be careful with what the DS CLI can and can’t do here. The DS CLI only sets up the backup capacity for Safeguarded Copy. Creating backups, scheduling them, expiring and recovering them is done in IBM Copy Services Manager (CSM) or GDPS, not in the DS CLI.
| Command | What it does | Example | Type |
|---|---|---|---|
managefbvol -action mksafeguardedcap |
Creates backup capacity for volumes. -multiplier sets it as a multiple of the volume size (minimum 1.5). | managefbvol -action mksafeguardedcap -extpool P1 -multiplier 2 2000-2003 |
Changes config |
managefbvol -action expandsafeguardedcap |
Grows the backup capacity without losing existing backups. | managefbvol -action expandsafeguardedcap -multiplier 3 2000 |
Changes config |
managefbvol -action rmsafeguardedcap |
Deletes the backup capacity and every backup in it. | managefbvol -action rmsafeguardedcap 2000 |
Danger |
showfbvol |
Shows safeguarded, safeguardedcap, safeguardedloc and usedsafeguardedcap. | showfbvol 2000 |
Read only |
Easy Tier
| Command | What it does | Example | Type |
|---|---|---|---|
chsi -etautomode |
Which pools Easy Tier manages automatically: all, tiered (multi-tier only) or none. | chsi -etautomode all IBM.2107-78SV001 |
Changes config |
chsi -etmonitor |
Which volumes Easy Tier monitors. | chsi -etmonitor all IBM.2107-78SV001 |
Changes config |
showfbvol -tier |
How a volume is spread over flash tiers. | showfbvol -tier 2000 |
Read only |
managefbvol -action tierassign |
Pins a volume to a tier (flashtier0, flashtier1, flashtier2). | managefbvol -action tierassign -tier flashtier0 2000 |
Changes config |
managefbvol -action tierunassign |
Removes the pin. | managefbvol -action tierunassign 2000 |
Changes config |
Users and security
| Command | What it does | Example | Type |
|---|---|---|---|
lsuser -l |
Users with group, state and scope. | lsuser -l |
Read only |
mkuser |
Creates a user with a temporary password. Groups: admin, op_storage, op_volume, op_copy_services, monitor, secadmin, no_access (and IBM’s ibm_service, ibm_engineering). | mkuser -pw Temp1234 -group op_storage priya |
Changes config |
chuser |
Changes group or password, locks a user or releases a locked one. | chuser -unlock priya |
Changes config |
showuser |
Details of one user, including failed logins. | showuser priya |
Read only |
rmuser |
Deletes a user. | rmuser olduser |
Danger |
chpass / showpass |
Password rules: expiry days, failed logins allowed. | chpass -expire 90 -fail 5 |
Changes config |
lsaccess -l |
HMC service access settings (command line, WUI, remote support). | lsaccess -l |
Read only |
chaccess |
Turns HMC service access on or off. | chaccess -aos enable -hmc 1 |
Changes config |
lsdcreq |
Dual Control requests waiting for a checker (Release 10.1). | lsdcreq -l |
Read only |
Licences
| Command | What it does | Example | Type |
|---|---|---|---|
lskey |
Licensed functions that are active, with their level and scope. | lskey IBM.2107-78SV001 |
Read only |
applykey |
Applies activation keys from IBM’s licence site (key or XML file). | applykey -file c:\keys\5341_78SV001.xml IBM.2107-78SV001 |
Changes config |
Monitoring and support
| Command | What it does | Example | Type |
|---|---|---|---|
chsp -snmp |
Turns on SNMP traps for Copy Services and storage events (up to two addresses). Hardware traps are set on the HMC. | chsp -snmp on -snmpaddr 10.10.10.1,10.10.10.2 |
Changes config |
showsp |
Shows the SNMP and e-mail notification settings. | showsp |
Read only |
mksyslogserver |
Sends audit, message and event logs to a syslog server. | mksyslogserver -addr 10.20.0.15 -type all syslog01 |
Changes config |
lssyslogserver -l |
Lists syslog servers and their state. | lssyslogserver -l |
Read only |
offloadfile -perfdata |
Downloads one week of 1-minute performance data as CSV. | offloadfile -perfdata c:\temp |
Read only |
offloadfile -pepackage |
Collects a support package for IBM. | offloadfile -pepackage c:\temp |
Read only |
offloadauditlog |
Saves the audit log (who did what). | offloadauditlog -logaddr smc1 c:\temp\audit.txt |
Read only |
Three everyday recipes
1. Give a new Linux server four 100 GiB LUNs
Spread the volumes over both servers: two in even LSS 20 (pool P0) and two in odd LSS 21 (pool P1). Then create the host and map them.
lsextpool
mkfbvol -extpool P0 -cap 100 -sam ese -name dbsrv01_#h 2010-2011
mkfbvol -extpool P1 -cap 100 -sam ese -name dbsrv01_#h 2110-2111
lshostport -unknown
mkhost -type "Linux Server" -hostport 10000090FA13B914,10000090FA13B915 dbsrv01
chhost -action map -volume 2010-2011,2110-2111 dbsrv01
lshost -l dbsrv01
On the server, rescan the HBAs and check that every LUN shows at least two paths in multipath -ll before you hand it over.
2. A two-minute health check
lsserver -l
lsioport
lsextpool
lspprc -l 2000-21FF
lsflash 2000-21FF
Both servers Online, the expected ports with Communication established, no pool near its threshold, mirrors in Full Duplex. If any of these look wrong, start there.
3. Before you delete a volume
showfbvol 2011
lspprc 2011
lsflash 2011
lshost -l
chhost -action unmap -volume 2011 dbsrv01
rmfbvol -safe 2011
Check the name and size, check for mirror and FlashCopy relationships, confirm the host owner has stopped using it, unmap it, wait for your agreed cooling-off period, then delete with -safe. Never jump straight to -force.
Commands people look for that don’t exist
Old notes, forum posts and AI answers often mention DS CLI commands that aren’t in the Release 10.1 reference. Here is what to use instead.
| You may read about | Use this instead |
|---|---|
mksafeguardedcopy, lssgc, showsgc |
Safeguarded backups are created, listed and recovered in Copy Services Manager or GDPS. The DS CLI only manages capacity with managefbvol -action mksafeguardedcap. |
mksnmp |
chsp -snmp on -snmpaddr ip1,ip2 and showsp. |
lsproblem, closeproblem |
Use the Events page in the DS GUI and the HMC. |
lsaliasvol |
lsckdvol (aliases show voltype CKD Alias). |
lsstgenclosure |
lsstgencl. |
chextpool -etmanage |
chsi -etautomode and manageextpool. |
mkarray -raidtype 5 |
RAID 5 is rejected on DS8A00. Use RAID 6 (default) or RAID 10. |
-sam tse |
Track space efficient volumes are gone on G10. Use -sam ese. |
manageaccess |
Unsupported on current code. Use lsaccess and chaccess. |
Common questions
Do I need the -dev flag on every command? Only if your profile has no devid. Set it once in the profile and you can leave -dev out, except for commands aimed at the remote box in Copy Services.
Can I run DS CLI commands from the GUI? Yes. The DS GUI has an embedded DS CLI. A few commands, such as offloadfile, applykey and mksyslogserver, don’t run there.
Why does mkfbvol fail in my pool? The usual reasons are an odd LSS in an even pool (or the other way round), an address group already used for CKD, a full pool, or a standard volume in a FlashCore Module pool, which only accepts -sam ese.
Which DS CLI version should I install? One current version usually works with every code level. If you see odd errors, install the version that matches the code bundle shown by ver -l. Code bundles 10.11 and later need Java 21.
Further reading: DS8000 DSCLI commands
IBM’s official guide for this family, including the DS CLI chapter: IBM Storage DS8A00 Architecture and Implementation Guide (IBM Redbooks). To practise every command on this page step by step, take our IBM DS8000 Implementation course.
