IBM DS8900F Storage Management Command-line Interface
This chapter describes how to use the DS8000 Command-line Interface (DS CLI).
This chapter covers the following topics:
Earlier DS CLI commands and scripts
 
Note: This chapter illustrates only a few essential commands. For a list of all commands and their parameters, see IBM DS8000 Series Command-Line Interface User's Guide, SC27-9562.
10.1 DS CLI overview
The DS CLI provides a full-function command set with which you can check your storage unit configuration and perform specific application functions. For more information about DS CLI usage and setup, see IBM DS8000 Command-Line Interface User's Guide, SC27-9562.
The following list highlights a few of the functions that you can perform with the DS CLI:
Manage user IDs and passwords that can be used with DS GUI, DS CLI, and Hardware Management Console (HMC).
Install activation keys for licensed features.
Manage storage complexes and units.
Configure and manage storage facility images (SFIs).
Create and delete redundant array of independent disks (RAID) arrays, ranks, and extent pools.
Create and delete logical volumes.
Manage the host access to volumes.
Check the current Copy Services (CS) configuration that is used by the storage unit.
Create, modify, or delete CS configuration settings.
Integrate Lightweight Directory Access Protocol (LDAP) policy usage and configuration.
Implement encryption functions.
 
Single installation: In almost all cases, you can use a single installation of the current version of the DS CLI for all of your system needs. However, it is not possible to test every version of DS CLI with every Licensed Machine Code (LMC) level. Therefore, an occasional problem might occur despite every effort to maintain that level of compatibility.
If you suspect a version incompatibility problem, install the DS CLI version that corresponds to the LMC level that is installed on your system. You can have more than one version of DS CLI installed on your system, each in its own directory.
10.1.1 Supported operating systems for the DS CLI
The DS CLI can be installed on many operating systems (OSs):
AIX
Red Hat Linux
SUSE Linux
IBM i
Oracle Solaris
VMware ESX
Microsoft Windows
IBM z/OS
 
Important: For more information about supported OSs, specific preinstallation concerns, and installation file locations, see IBM Documentation.
Before you can install the DS CLI, ensure that at least Java 8 or later is installed. A suitable level of Java might already be installed on many hosts. The installation program checks for this requirement during the installation process and does not install the DS CLI if a suitable version of Java is not already installed.
The installation process can be performed through a shell, such as the bash or Korn shell, the Windows command prompt, or through a GUI. If the installation process is installed by using a shell, the installation can be a silent installation by using a profile file. The installation process also installs software that allows the DS CLI to be uninstalled when the DS CLI is no longer required.
This chapter focuses on the DS CLI that is natively run from another system interacting with the DS8900F. For clarity purposes, the DS CLI is also available through the DS GUI by using the DS CLI option in the lower left of the dashboard.
10.1.2 Installation hints and tips
Before proceeding with the installation of the DS CLI, ensure that you are running the correct level of Java. If Java 8 or later is not found during the initial check, the following situation occurs:
If you are using Windows, the following message is displayed:
LaunchAnywhere Error: Could not find a valid Java virtual machine to load.
You might need to reinstall a supported Java virtual machine.
If you are using UNIX or Linux, the following message is displayed:
No Java virtual machine could be found from your PATH environment variable. You must install a VM before running this program.
After you ensure that Java 8 or later is installed, complete one of the following actions to correct the Java virtual machine Not Found error:
Run the DS CLI installer again from the console, and provide the path to the Java virtual machine (JVM) by using the LAX_VM option. The following examples represent paths to the correct version of Java:
 – For a Windows system, specify the following path:
dsclisetup.exe LAX_VM "C:Program Filesjava-whateverjreinjava.exe"
 
Note: Due to a space in the Program Files directory name, you are required to add quotation marks around the directory name.
 – For a UNIX or Linux system, specify the following path:
dsclisetup.bin LAX_VM /opt/ibm-Java-whatever/java/bin/java
 
Note: If you use the LAX_VM argument, the installer attempts to use whatever JVM that you specify, even if it is an unsupported version. If an unsupported version is specified, the installation might complete successfully, but the DS CLI might not run and return an Unsupported Class Version Error message. You must ensure that you specify a supported version.
 – Continue with the installation of the DS CLI.
(For UNIX or Linux) Add the JVM location to your PATH environment variable by running the following command:
export PATH=$PATH:/opt/ibm-Java-whatever/java/bin
Then, run the dsclisetup.bin program to install the DS CLI.
(AIX only) Run the following commands to sequentially disable the LIBPATH environment variable, install the DS CLI, and restore the LIBPATH environment variable:
export LIBSAVE=$LIBPATH unset LIBPATH
dsclisetup.bin LAX_VM/opt/ibm-Java-whatever/java/bin/java
export LIBPATH=$LIBSAVE
unset LIBSAVE
10.1.3 Installing the DS CLI on a Windows 10 or 11 system
To install the DS CLI on a Microsoft Windows 10 or 11 system, make sure that the correct Java version is installed. Example 10-1 shows how to install DS CLI on a Windows 10 system with the extra step of passing the JVM path location. You can download the DS CLI from
IBM Fix Central.
Example 10-1 DS CLI installation with a path to java.exe on a Windows 10 system
E:IMAGESHMCDisk1InstDataWindowsNoVM>dsclisetup.exe LAX_VM "C:Program Files (x86)Javajre1.8.0_161injava.exe"
For instances where Java is already set up, the installation starts with running the dsclisetup.exe program that is found in your installation media, as shown in Figure 10-1.
Figure 10-1 The dsclisetup.exe file
10.1.4 Installing the DS CLI on an z/OS system
You can install the DS CLI along with IBM Copy Services Manager on z/OS system. It is a regular System Modification Program/Extended (SMP/E) installation.
The DS CLI runs under UNIX System Services for z/OS, and has a separate FMID HIWN62M. You can also install the DS CLI separately from IBM Copy Services Manager.
For more information, see IBM DS CLI on z/OS Program Directory, GI13-3563. You can use the order number (GI13-3563) to search for it at IBM Publications Center.
After the installation is done, the first thing to do is to access your UNIX System Services for z/OS. This process can vary from installation to installation. Ask your z/OS system programmer how to access it.
 
Tip: Set your Time Sharing Option (TSO) REGION SIZE to 512 MB to allow the DS CLI to run.
In our test system, we logged on to TSO and used option 6 ISPF Command Shell, we issued the command OMVS to start the z/OS UNIX Shell, as shown in Figure 10-2.
Menu List Mode Functions Utilities Help
------------------------------------------------------------------------------
MCECEBC ISPF Command Shell
Enter TSO or Workstation commands below:
===> omvs
 
Place cursor on choice and press enter to Retrieve command
=> omvs
Figure 10-2 OMVS command to start the z/OS UNIX Shell
The default installation path for the z/OS DS CLI is /opt/IBM/CSMDSCLI. To run the DS CLI, change your working directory to the installation path by issuing the following command, as shown in Figure 10-3:
cd /opt/IBM/CSMDSCLI
IBM
Licensed Material - Property of IBM
...
GSA ADP Schedule Contract with IBM Corp.
IBM is a registered trademark of the IBM Corp.
 
-----------------------------------------------------------------------
Business Notice:
IBM's internal systems must only be used for conducting IBM's
business or for purposes authorized by IBM management.
-----------------------------------------------------------------------
$
===> cd /opt/IBM/CSMDSCLI
INPUT
ESC=¢ 1=Help 2=SubCmd 3=HlpRetrn 4=Top 5=Bottom 6=TSO 7=BackScr 8=Scroll 9=NextSess 10=Refresh 11=FwdRetr 12=Retrieve
Figure 10-3 The cd /opt/IBM/CSMDSCLI command
You can choose between issuing the following commands to start DS CLI on z/OS, as shown in Figure 10-4:
./dscli
./dscli -cfg ./profile/aca91.profile (If you decide to use a profile.)
IBM
Licensed Material - Property of IBM
...
GSA ADP Schedule Contract with IBM Corp.
IBM is a registered trademark of the IBM Corp.
-----------------------------------------------------------------------
IBM's internal systems must only be used for conducting IBM's
business or for purposes authorized by IBM management.
-----------------------------------------------------------------------
 
$ cd /opt/IBM/CSMDSCLI
$
===> ./dscli
INPUT
ESC=¢ 1=Help 2=SubCmd 3=HlpRetrn 4=Top 5=Bottom 6=TSO 7=BackScr 8=Scroll 9=NextSess 10=Refresh 11=FwdRetr 12=Retrieve
Figure 10-4 The ./dscli command
If you change your mind and decide to quit here, instead of typing ./dscli, press F2 to activate the SubCmd, as shown in Figure 10-4 (2=SubCmd). The OMVS Subcommand line is displayed, and you can issue a quit command.
As shown in Figure 10-5, the message CEE5210S The signal SIGHUP was received followed by *** appears. Press Enter to quit OMVS.
IBM
Licensed Material - Property of IBM
...
IBM is a registered trademark of the IBM Corp.
...
-----------------------------------------------------------------------
$ cd /opt/IBM/CSMDSCLI
$
OMVS Subcommand ==> quit
SUBCOMMAND
ESC= 1=Help 2=SubCmd 3=Return 4=Top 5=Bottom 6=TSO 7=BackScr 8=Scroll 9=NextSess 10=Refresh 11=FwdRetr 12=Retrieve
 
-------------------------------------------------------
CEE5210S The signal SIGHUP was received.
***
Figure 10-5 Sequence to leave the DS CLI
By using the DS CLI on z/OS, you can issue single commands, use a script mode, or go into batch mode by using z/OS Job Control Language (JCL). Figure 10-6 shows how to access the command interface.
Business Notice:
IBM's internal systems must only be used for conducting IBM's
business or for purposes authorized by IBM management.
-----------------------------------------------------------------------
$ cd /opt/IBM/CSMDSCLI
$ ./dscli
Enter the primary management console IP address: <enter-your-machine-ip-address>
Enter the secondary management console IP address:
Enter your username: <enter-your-user-name-as-defined-on-the-machine>
Enter your password: <enter-your-user-password-to-access-the-machine>
dscli> ver -l
...
dscli>
===>
INPUT
ESC=¢ 1=Help 2=SubCmd 3=HlpRetrn 4=Top 5=Bottom 6=TSO 7=BackScr 8=Scroll 9=NextSess 10=Refresh 11=FwdRetr 12=Retrieve
Figure 10-6 Accessing the DS CLI on z/OS
The command that you run on DS CLI on z/OS has the same syntax as in other platforms. Some examples of those commands are shown in Figure 10-7.
dscli> lssi
Name ID Storage Unit Model WWNN State ESSNet
========================================================================================
IBM.2107-75ACA91 IBM.2107-75ACA91 IBM.2107-75ACA90 980 5005076303FFD13E Online Enabled
dscli> lsckdvol -lcu EF
Name ID accstate datastate configstate deviceMTM voltype orgbvols extpool cap (cyl)
===========================================================================================
ITSO_EF00 EF00 Online Normal Normal 3390-A CKD Base - P1 262668
ITSO_EF01 EF01 Online Normal Normal 3390-9 CKD Base - P1 10017
dscli> mkckdvol -dev IBM.2107-75ACA91 -cap 3339 -datatype 3390 -eam rotateexts -name ITSO_#h -extpool P1 EF02-EF02
CMUC00021I mkckdvol: CKD Volume EF02 successfully created.
dscli> lsckdvol -lcu EF
Name ID accstate datastate configstate deviceMTM voltype orgbvols extpool cap (cyl)
===========================================================================================
ITSO_EF00 EF00 Online Normal Normal 3390-A CKD Base - P1 262668
ITSO_EF01 EF01 Online Normal Normal 3390-9 CKD Base - P1 10017
ITSO_EF02 EF02 Online Normal Normal 3390-3 CKD Base - P1 3339
dscli> rmckdvol EF02
CMUC00023W rmckdvol: The alias volumes associated with a CKD base volume are automatically deleted before deletion of the CKD base volume. Are you sure you want to delete CKD volume EF02? Ýy/n¨: y
CMUC00024I rmckdvol: CKD volume EF02 successfully deleted.
dscli>
===>
Figure 10-7 Common commands on the DS CLI
Here are some examples of how to take advantage of using your own JCL:
Example 10-2 shows a job to run a DS CLI script (multiple commands that are stored in a UNIX file and in script mode).
Example 10-2 Running multiple commands from a UNIX file
//job--goes-here
//*******************************************************************/
//* */
//* Run a DS CLI script in z/OS */
//* */
//* DS CLI on z/OS = CSMDSCLI */
//* */
//* All output (stdin and stderr) is directed to the job log */
//* The actual UNIX command follows the SH statement, it can span */
//* more than one line */
//* */
//*******************************************************************/
//*
//PBXBAT EXEC PGM=BPXBATCH
//STDIN DD DUMMY
//STDOUT DD SYSOUT=*
//STDERR DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//STDENV DD DUMMY
//STDPARM DD *
SH
/opt/IBM/CSMDSCLI/dscli -cfg /opt/IBM/CSMDSCLI/profile/aca91.profile
-script /u/itso/dscli_script.txt
/*
Example 10-3 shows a JCL to run several commands in a row, each in single-shot mode.
Example 10-3 Several single-shot mode commands
//job-card-goes-here
//*******************************************************************/
//* */
//* Run several DS CLI command in z/OS */
//* */
//* DS CLI on z/OS = CSMDSCLI */
//* */
//* All output (stdin and stderr) is directed to the job log */
//* The actual UNIX commands follow the SH statement, they can */
//* span more than one line */
//* */
//* Commands are separated by semicolon */
//* */
//*******************************************************************/
//*
//PBXBAT EXEC PGM=BPXBATCH
//STDIN DD DUMMY
//STDOUT DD SYSOUT=*
//STDERR DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//STDENV DD DUMMY
//STDPARM DD *
SH
echo "Command 1:";
/opt/IBM/CSMDSCLI/dscli -cfg /opt/IBM/CSMDSCLI/profile/aca91.profile
ver -l;
echo "Command 2:";
/opt/IBM/CSMDSCLI/dscli -cfg /opt/IBM/CSMDSCLI/profile/aca91.profile
lsrank;
echo "Command 3:";
/opt/IBM/CSMDSCLI/dscli -cfg /opt/IBM/CSMDSCLI/profile/aca91.profile
lsarray;
/*
10.1.5 DS CLI version
The ver command displays the version of the DS CLI client program, the HMC code level (Storage Manager), the HMC DS CLI version, the LMC version, and the code bundle version. The ver command uses the following parameters:
-s (optional): The -s parameter displays the version of the DS CLI client program. You cannot use the -s and -l parameters together.
-l (optional): The -l parameter displays the versions of the DS CLI client program, Storage Manager, HMC code level, LMC, and the code bundle. You cannot use the -l and -s parameters together.
-cli (optional): The -cli parameter displays the version of the DS CLI client program. Version numbers are in this format:
version.release.modification.fixlevel
-stgmgr (optional): The -stgmgr parameter displays the version of the Storage Manager. This ID is not the Storage Manager GUI. This ID relates to the HMC code level information.
-lmc (optional): The -lmc parameter displays the version of the LMC.
Example 10-4 shows an example of the ver command, where the customer uses a earlier DS CLI version.
Example 10-4 DS CLI version command
dscli>ver -l
DSCLI 7.9.30.136
HMC DSCLI 7.9.30.154
================Version===================
Storage Image LMC Bundle Version
==========================================
IBM.2107-75HAL91 7.9.30.154 89.30.68.0
dscli>
The following DS CLI commands check the IBM Copy Services Manager version and install new software levels of IBM Copy Services Manager:
The lssoftware -l command displays the IBM Copy Services Manager version that is installed on both HMCs, as shown in Example 10-5.
Example 10-5 Displaying the IBM Copy Services Manager version
dscli> lssoftware -l
Type Version Status HMC
======================================
CSM V6.3.2.1-a20220503-1401 Running 1
CSM V6.3.2.1-a20220503-1401 Running 2
The installsoftware command is used to install a new version of IBM Copy Services Manager software on the HMC, as shown in Example 10-6.
Example 10-6 The installsoftware command output
dscli> installsoftware -loc /home/hscroot/wht/csm-setup-6.3.2.1-linux-x86_64.bin -certloc /home/hscroot/wht/csm-setup-6.3.2.1-linux-x86_64.bin.crt -type CSM -hmc 1
IBM DSCLI Version: 0.0.0.0 DS: IBM.2107-75DMC41
CMUC00294I installsoftware: Upload file successfully.
CMUC00294I installsoftware: Software CSM is successfully installed on HMC 1.
10.1.6 User accounts
DS CLI communicates with the DS8900F through the HMC. The primary or secondary HMC can be used. The DS CLI access is authenticated by using IBM Enterprise Storage Server Network Interface (IBM ESSNI), which is also referred to as the DS Network Interface (DSNI) on the HMC. The same user ID is used for DS CLI and DS GUI access. For more information about user accounts, see 6.5, “User management” on page 187.
The default user ID is admin and the password is admin. The system forces you to change the password at the first login. If you forget the admin password, a reset can be performed that resets the admin password to the default value.
10.1.7 User management by using the DS CLI
Although many administrative functions of the DS8900F are controlled by the storage administrator, you might want to define other users with different authorities for other limited functions.
The following commands are used to manage user IDs by using the DS CLI:
mkuser
A user account that can be used with the DS CLI and the DS GUI is created by using this command. Example 10-7 shows the creation of a user that is called JohnDoe, which is in the op_storage group. The temporary password of the user is passw0rd. The user must use the chpass command when they log in for the first time.
Example 10-7 Using the mkuser command to create a user
dscli> mkuser -pw passw0rd -group op_storage JohnDoe
CMUC00133I mkuser: User JohnDoe successfully created.
rmuser
An existing user ID is removed by using this command. Example 10-8 shows the removal of a user called JaneSmith.
Example 10-8 Removing a user
dscli> rmuser JaneSmith
CMUC00135W rmuser: Are you sure you want to delete user JaneSmith? [y/n]:y
CMUC00136I rmuser: User JaneSmith successfully deleted.
chuser
Use this command to change the password or group (or both) of an existing user ID. It also can be used to unlock a user ID that was locked by exceeding the allowable login retry count. The administrator can also use this command to lock a user ID. In Example 10-9, we unlock the user, change the password, and change the group membership for a user that is called JohnDoe. The user must use the chpass command the next time that they log in.
Example 10-9 Changing a user by using the chuser command
dscli> chuser -unlock -pw time2change -group op_storage JohnDoe
CMUC00134I chuser: User JohnDoe successfully modified.
lsuser
By using this command, a list of all user IDs can be generated. Example 10-10 shows a list of three users, including the administrator account.
Example 10-10 Using the lsuser command to list users
dscli> lsuser
Name Group State
===============================================
JohnDoe op_storage active
secadmin admin active
admin admin active
showuser
The account details of a user ID can be displayed by using this command. Example 10-11 lists the details of the user JohnDoe.
Example 10-11 Using the showuser command to list user information
dscli> showuser JohnDoe
Name JohnDoe
Group op_storage
State active
FailedLogin 0
DaysToExpire 365
Scope PUBLIC
managepwfile
An encrypted password file that is placed onto the local machine is created or added by using this command. This file can be referred to in a DS CLI profile. You can run scripts without specifying a DS CLI user password in clear text. If you are manually starting the DS CLI, you can also refer to a password file with the -pwfile parameter. By default, the file is in the following directories:
 – Windows: C:Users<User>dsclisecurity.dat
 – Other than Windows: HOME/dscli/security.dat
Example 10-12 shows managing the password file by adding the user ID JohnDoe. The password is now saved in an encrypted file that is called security.dat.
Example 10-12 Using the managepwfile command
dscli> managepwfile -action add -name JohnDoe -pw passw0rd
CMUC00206I managepwfile: Record 10.0.0.1/JohnDoe successfully added to password file C:UsersAdministratordsclisecurity.dat.
chpass
By using this command, you can change two password policies: Password expiration (in days) and the number of failed logins that are allowed. Example 10-13 shows changing the expiration to 365 days and five failed login attempts.
Example 10-13 Changing the rules by using the chpass command
dscli> chpass -expire 365 -fail 5
CMUC00195I chpass: Security properties successfully set.
showpass
The properties for passwords (Password Expiration days and Failed Logins Allowed) are listed by using this command. Example 10-14 shows that passwords are set to expire in 90 days and that four login attempts are allowed before a user ID is locked.
Example 10-14 Using the showpass command
dscli> showpass
Password Expiration 365 days
Failed Logins Allowed 5
Password Age 0 days
Minimum Length 6
Password History 4
10.1.8 DS CLI profile
To access the DS8900F with the DS CLI, you must provide certain information by using the dscli command. At a minimum, the IP address or hostname of the DS8900F HMC, a username, and a password are required. You can also provide other information, such as the output format for list commands, the number of rows for each page in the command-line output, and whether a banner is included with the command-line output.
If you create one or more profiles to contain your preferred settings, you do not need to specify this information every time that you use the DS CLI. When you start the DS CLI, you can specify a profile name by using the dscli command. You can override the values of the profile by specifying a different parameter value for the dscli command.
When you install the command-line interface software, a default profile is installed in the profile directory with the software. The file name is dscli.profile. For example, use C:Program Files (x86)IBMdscli for Windows and /opt/ibm/dscli/profile/dscli.profile for AIX (UNIX) and Linux platforms.
The following options are available for using profile files:
You can modify the system default profile dscli.profile.
You can create a personal default profile by copying the system default profile as <user_home>/dscli/profile/dscli.profile. The default home directory <user_home> is in the following directories:
 – Windows system: %USERPROFILE%, which is usually C:UsersAdministrator
 – UNIX or Linux system: $HOME
You can create specific profiles for different storage units and operations. Save the profile in the user profile directory, for example:
 – %USERPROFILE%IBMDSCLIprofileoperation_name1
 – %USERPROFILE%IBMDSCLIprofileoperation_name2
 
Default profile file: The default profile file that you created when you installed the DS CLI might be replaced every time that you install a new version of the DS CLI. It is a best practice to open the default profile and then save it as under a new file. You can then create multiple profiles and reference the relevant profile file by using the -cfg parameter.
The following example uses a different profile when it starts the DS CLI:
dscli -cfg newprofile.profile (or whatever name you gave to the new profile)
These profile files can be specified by using the DS CLI command parameter -cfg <profile_name>. If the profile name is not specified, the default profile of the user is used. If a profile of a user does not exist, the system default profile is used.
 
Two default profiles: If two default profiles are called dscli.profile, one profile in the default system’s directory and one profile in your personal directory, your personal profile is loaded.
Profile change illustration
To edit the profile, complete the following steps. This sequence assumes that your %userprofile% is C:UsersAdministrator.
1. Use Windows Explorer to copy the profile folder from C:Program Files (x86)IBMdscli
to C:UsersAdministratordscli.
2. From the Windows desktop, double-click the DS CLI icon.
3. In the command window that opens, enter the following command:
cd C:UsersAdministratordscli
4. In the profile directory, enter the notepad dscli.profile command, as shown in Example 10-15.
Example 10-15 Command prompt operation
C:UsersAdministratordscli>cd profile
C:UsersAdministratordscliprofile>notepad dscli.profile
5. The notepad opens and includes the DS CLI profile. Add four lines. Examples of these lines are shown in bold in Example 10-16.
 
Default newline delimiter: The default newline delimiter is a UNIX delimiter, which can render text in the notepad as one long line. Use a text editor that correctly interprets UNIX line endings.
Example 10-16 DS CLI profile example
#
# DS CLI Profile
#
# Management Console/Node IP Addresses
# hmc1 and hmc2 are equivalent to -hmc1 and -hmc2 command options.
#hmc1: 127.0.0.1
#hmc2: 127.0.0.1
 
# Default target Storage Image ID
# "devid" and "remotedevid" are equivalent to
# "-dev storage_image_ID" and "-remotedev storeage_image_ID" command options, respectively.
#devid: IBM.2107-AZ12341
#remotedevid: IBM.2107-AZ12341
 
devid:    IBM.2107-75HAL91
hmc1:     10.0.0.1
username: admin
pwfile: c:mydir75HAL91pwfile.txt
Adding the serial number by using the devid parameter and adding the HMC IP address by using the hmc1 parameter are suggested. These additions help you to avoid mistakes when you use more profiles, and you do not need to specify this parameter for certain dscli commands that require it. Additionally, if you specify the dscli profile for CS usage, the remotedevid parameter is suggested for the same reasons. To determine the ID of a storage system, use the lssi CLI command.
Add the username and an encrypted password file by using the managepwfile command. A password file that is generated by using the managepwfile command is placed in the user_home_directory/dscli/profile/security/security.dat directory. Specify the location of the password file with the pwfile parameter.
 
Important: Be careful if you add multiple devid and HMC entries. Uncomment (remove the number sign (#) one entry at a time. If multiple hmc1 or devid entries exist, the DS CLI uses the entry that is closest to the bottom of the profile.
The following customization parameters also affect dscli output:
 – banner: Date and time with the dscli version are printed for each command.
 – header: Column names are printed.
 – format: The output format, which is specified as default, xml, delim, or stanza.
 – paging: For interactive mode, this parameter breaks output after several rows (24, by default).
6. After you save your changes, use Windows Explorer to copy the updated profile from C:UsersAdministratordscliprofile to C:Program Files (x86)IBMdscliprofile.
10.1.9 Configuring the DS CLI to use the second HMC
The second HMC can be specified on the CLI or in the profile file that is used by the DS CLI. To specify the second HMC in a command, use the -hmc2 parameter, as shown in Example 10-17.
Example 10-17 Using the -hmc2 parameter
C:Program Files (x86)IBMdscli>dscli -hmc1 10.0.0.1 -hmc2 10.0.0.5
Enter your user name: JohnDoe
Enter your password: xxxxx
DS: IBM.2107-75HAL91
dscli>
Alternatively, you can modify the following lines in the dscli.profile (or any profile) file:
# Management Console/Node IP Addresses
# hmc1 and hmc2 are equivalent to -hmc1 and -hmc2 command options.
hmc1: 10.0.0.1
hmc2: 10.0.0.5
After these changes are made and the profile is saved, the DS CLI automatically communicates through HMC2 if HMC1 becomes unreachable. By using this change, you can perform configuration and run CS commands with full redundancy.
 
Two HMCs: If you specify only one HMC in a DS CLI command (or profile), any changes that you make to users are still replicated onto the other HMC.
10.1.10 Command structure
All commands that are used by the CLI follow a basic structure of up to four components in each command’s use. A DS CLI command consists of 1 - 4 types of components that are arranged in the following order:
1. The command name: Specifies the task that the DS CLI performs.
2. Flags: Flags are used to modify the command. They provide more information that directs the DS CLI to perform the command task in a specific way.
3. Flags parameter: Provides information that is required to implement the command modification that is specified by a flag.
4. Command parameters: Provide basic information that is necessary to perform the command task. When a command parameter is required, it is always the last component of the command, and is not preceded by a flag.
10.1.11 Using the DS CLI application
To issue commands to the DS8900F, you must first log in to the DS8900F through the DS CLI with one of the following command modes of execution:
Single-shot command mode
Interactive command mode
Script command mode
Single-shot command mode
Use the DS CLI single-shot command mode if you want to issue an occasional command from the operating system (OS) shell prompt where you need special handling, such as redirecting the DS CLI output to a file. You also use this mode if you are embedding the command into an OS shell script.
You must supply the login information and the command that you want to process at the same time. To use the single-shot mode, complete the following steps:
1. At the OS shell prompt, enter one of the following commands:
 – dscli -hmc1 <hostname or ip address> -user <adm user> -passwd <pwd> <command>
 – dscli -cfg <dscli profile> -pwfile <security file> <command>
 
Important: Avoid embedding the username and password into the profile. Instead, use the -pwfile command.
2. Wait for the command to process and display the results.
Example 10-18 shows the use of the single-shot command mode.
Example 10-18 Single-shot command mode
C:Program Files (x86)IBMdscli>dscli -hmc1 10.10.10.1 -user admin -passwd <pwd> lsuser
Name Group State
===============================================
AlphaAdmin admin locked
AlphaOper op_copy_services active
BetaOper op_copy_services active
admin admin active
 
Important: When you are typing the command, you can use the hostname or the IP address of the HMC. When a command is run in single-shot mode, the user must be authenticated. The authentication process can take a considerable amount of time.
Interactive command mode
Use the DS CLI interactive command mode when you want to issue a few infrequent commands without needing to log on to the DS8900F for each command.
The interactive command mode provides a history function that simplifies repeating or checking earlier command usage.
To use the interactive command mode, complete the following steps:
1. Log on to the DS CLI application at the directory where it is installed.
2. Provide the information that is requested by the information prompts. The information prompts might not appear if you provided this information in your profile file. The command prompt switches to a dscli command prompt.
3. Use the DS CLI commands and parameters. You are not required to begin each command with dscli because this prefix is provided by the dscli command prompt.
4. Use the quit or exit command to end interactive mode.
 
Interactive mode: In interactive mode for long outputs, the message Press Enter To Continue appears. The number of rows can be specified in the profile file. Optionally, you can turn off the paging feature in the profile file by using the paging:off parameter.
Example 10-19 shows using interactive command mode by using the profile DS8900F.profile.
Example 10-19 Interactive command mode
C:Program Files (x86)IBMdscli>dscli -cfg DS8900F.profile
 
dscli> lsarraysite -l
arsite DA Pair dkcap (10^9B) diskrpm State Array diskclass encrypt
========================================================================
S1 8 1600.0 65000 Assigned A2 FlashTier0 supported
S2 8 1600.0 65000 Assigned A3 FlashTier0 supported
S3 10 3840.0 65000 Assigned A1 FlashTier1 supported
S4 10 3840.0 65000 Assigned A0 FlashTier1 supported
dscli> lssi
Name ID Storage Unit Model WWNN State ESSNet
========================================================================================
IBM.2107-75HAL91 IBM.2107-75HAL91 IBM.2107-75HAL90 996 5005076309FFD462 Online Enabled
dscli>
Script command mode
Use the DS CLI script command mode if you want to use a sequence of DS CLI commands. If you want to run a script that contains only DS CLI commands, you can start the DS CLI in script mode. The script that DS CLI runs can contain only DS CLI commands.
Example 10-20 shows the contents of a DS CLI script file. The file contains only DS CLI commands, although comments can be placed in the file by using a number sign (#). Empty lines are also allowed. One advantage of using this method is that scripts that are written in this format can be used by the DS CLI on any OS on which you can install the DS CLI. Only one authentication process is needed to run all of the script commands.
Example 10-20 Example of a DS CLI script file
# Sample dscli script file
# Comments can appear if hashed
lsarraysite -l
lsarray -l
lsrank -l
For script command mode, you can turn off the banner and header for easier output parsing. Also, you can specify an output format that might be easier to parse by your script.
Example 10-21 shows starting the DS CLI by using the -script parameter and specifying a profile and the name of the script that contains the commands from Example 10-20.
Example 10-21 Running a DS CLI file
C:Program Files (x86)IBMdscli>dscli -cfg DS8900F.profile -script c:ds8000.script
arsite DA Pair dkcap (10^9B) diskrpm State Array diskclass encrypt
========================================================================
S1 8 1600.0 65000 Assigned A2 FlashTier0 supported
S2 8 1600.0 65000 Assigned A3 FlashTier0 supported
S3 10 3840.0 65000 Assigned A1 FlashTier1 supported
S4 10 3840.0 65000 Assigned A0 FlashTier1 supported
Array State Data RAIDtype arsite Rank DA Pair DDMcap (10^9B) diskclass encrypt
===========================================================================================
A0 Assigned Normal 6 (5+P+Q+S) S4 R0 10 3840.0 FlashTier1 supported
A1 Assigned Normal 6 (5+P+Q+S) S3 R1 10 3840.0 FlashTier1 supported
A2 Assigned Normal 6 (5+P+Q+S) S1 R2 8 1600.0 FlashTier0 supported
A3 Unassigned Normal 6 (5+P+Q+S) S2 - 8 1600.0 FlashTier0 supported
ID Group State datastate Array RAIDtype extpoolID extpoolnam stgtype exts usedexts keygrp marray extsize (cap)
====================================================================================================================
R0 0 Normal Normal A0 6 P0 ITSO_FB fb 17338 2105 1 MA4 1GiB
R1 1 Normal Normal A1 6 P1 ITSO_FB fb 17338 2304 1 MA3 1GiB
R2 - Unassigned Normal A2 6 - - fb 7221 - 1 MA1 1GiB
 
Important: The DS CLI script can contain only DS CLI commands. Using shell commands results in a process failure.
10.1.12 Return codes
When the DS CLI exits, the exit status code is provided, which effectively is a return code. If DS CLI commands are issued as separate commands (rather than by using script mode), a return code is presented for every command. If a DS CLI command fails (for example, because of a syntax error or the use of an incorrect password), a failure reason and return code are shown. Standard techniques to collect and analyze return codes can be used.
The return codes that are used by the DS CLI are listed in Command-Line Interface User’s Guide, SC27-9562.
10.1.13 User assistance
The DS CLI is designed to include several forms of user assistance. The main form of user assistance is through IBM Documentation.
Click the Command-line interface tab to access user assistance. You can also get user assistance when using the DS CLI program by running the help command. The following examples of usage are included:
help Lists all the available DS CLI commands.
help -s Lists all the DS CLI commands with brief descriptions of each command.
help -l Lists all the DS CLI commands with their syntax information.
To obtain information about a specific DS CLI command, enter the command name as a parameter of the help command. The following examples of usage are included:
help <command name> Provides a detailed description of the specified command.
help -s <command name> Provides a brief description of the specified command.
help -l <command name> Provides syntax information about the specified command.
Man pages
A man page is available for every DS CLI command. Man pages are most commonly seen in UNIX OSs, and provide information about command capabilities. This information can be displayed by issuing the relevant command followed by the -h, -help, or -? flags.
10.2 I/O port configuration
Set the I/O ports to the topology that you want. Example 10-22 lists the I/O ports by using the lsioport command. I0030 - I0033 are on one adapter, and I0100 - I0103 are on another adapter.
Example 10-22 Listing the I/O ports
dscli> lsioport
ID WWPN State Type topo portgrp Security
===========================================================================================
I0030 5005076309031462 Communication established Fibre Channel-SW SCSI-FCP 0 Disabled
I0031 5005076309035462 Communication established Fibre Channel-SW SCSI-FCP 0 Disabled
I0032 5005076309039462 Communication established Fibre Channel-SW SCSI-FCP 0 Disabled
I0033 500507630903D462 Communication established Fibre Channel-SW SCSI-FCP 0 Disabled
I0100 5005076309081462 Communication established Fibre Channel-SW SCSI-FCP 0 Disabled
I0101 5005076309085462 Communication established Fibre Channel-SW SCSI-FCP 0 Disabled
I0102 5005076309089462 Communication established Fibre Channel-SW SCSI-FCP 0 Disabled
I0103 500507630908D462 Communication established Fibre Channel-SW SCSI-FCP 0 Disabled
I0230 5005076309131462 No light detected Fibre Channel-LW FICON 0 Disabled
I0231 5005076309135462 No light detected Fibre Channel-LW FICON 0 Disabled
I0232 5005076309139462 No light detected Fibre Channel-LW FICON 0 Disabled
I0233 500507630913D462 No light detected Fibre Channel-LW FICON 0 Disabled
I0300 5005076309181462 Offline Fibre Channel-LW - 0 Disabled
I0301 5005076309185462 Offline Fibre Channel-LW - 0 Disabled
I0302 5005076309189462 Offline Fibre Channel-LW - 0 Disabled
I0303 500507630918D462 Offline Fibre Channel-LW - 0 Disabled
The following possible topologies for each I/O port are available:
Small Computer System Interface - Fibre Channel Protocol (SCSI-FCP): Fibre Channel (FC)-switched fabric, which is also called switched point-to-point. This port type is also used for mirroring.
Fibre Channel connection (IBM FICON): This port type is for IBM Z system hosts only.
 
Note: Fibre Channel Arbitrated Loop (FC-AL) is no longer an available topology because the host adapters in the DS8900F do not support it, but the switch -topology fc-al is still there for compatibility with earlier versions.
The Security field indicates the status of the IBM Fibre Channel Endpoint Security feature. For more information, see IBM Fibre Channel Endpoint Security for IBM DS8900F and IBM Z, SG24-8455.
If added to the setioport command, the -force parameter allows a topology change to an online I/O port even if a topology is set. Example 10-23 shows setting I/O ports without and with the -force option to the FICON topology, and then checking the results.
Example 10-23 Changing the topology by using setioport
dscli> lsioport i0103
ID WWPN State Type topo portgrp Security
===========================================================================================
I0103 500507630908D462 Communication established Fibre Channel-SW SCSI-FCP 0 Disabled
dscli> setioport -topology ficon I0103
CMUN04033E setioport: I0231: The change topology request failed because the current topology is already set and force option is not provided.
dscli> setioport -topology ficon -force I0103
CMUC00011I setioport: I/O Port I0231 successfully configured.
dscli> lsioport I0103
ID WWPN State Type topo portgrp Security
========================================================================================
I0103 500507630908D462 Communication established Fibre Channel-SW FICON 0 Disabled
To monitor the status for each I/O port, see 10.5, “Metrics with DS CLI” on page 391.
10.3 DS8900F storage configuration for Fixed-Block volumes
This section reviews examples of a typical DS8900F storage configuration when the DS8900F storage is attached to open system hosts. You can perform the DS8900F storage configuration by completing the following steps:
1. Create the arrays.
2. Create the ranks.
3. Create the extent pools.
4. Optional: Create the repositories for space-efficient volumes (not included).
5. Create the volumes.
6. Create the volume groups.
7. Create the host connections.
8. Create a cluster and assign hosts to it.
10.3.1 Disk classes
Arrays and array sites are associated with the following disk classes (diskclass), which represent a classification of the different drive types that are available for the DS8900F:
The flash Tier 0 flash disk class specifies 2.5-inch high-performance flash drives.
The flash Tier 1 flash disk class specifies 2.5-inch high-capacity flash drives with a size of 3.84 TB.
The flash Tier 2 flash disk class specifies 2.5-inch high-capacity flash drives with sizes of 1.92 TB, 7.68 TB, or 15.36 TB.
 
Important: For more information about the current drive choices and RAID capacities, see IBM Documentation.
10.3.2 Creating the arrays
This step creates the arrays. Before the arrays are created, list the array sites. Use the lsarraysite command to list the array sites, as shown in Example 10-24 on page 359. Array sites are groups of eight drives that are predefined in the DS8900F.
 
Important: For a DS8900F, one rank is assigned to one array. An array is made of only one array site. An array site contains eight drives. There is a one to one relationship among array sites, arrays, and ranks.
Example 10-24 Listing array sites
dscli> lsarraysite -l
arsite DA Pair dkcap (10^9B) diskrpm State Array diskclass encrypt
==========================================================================
S1 8 1600.0 65000 Unassigned - FlashTier0 supported
S2 8 1600.0 65000 Unassigned - FlashTier0 supported
S3 10 3840.0 65000 Assigned A1 FlashTier1 supported
S4 10 3840.0 65000 Assigned A0 FlashTier1 supported
In Example 10-24, you can see two unassigned array sites. Therefore, you can create two arrays. The -l option reports the diskclass information.
You can issue the mkarray command to create arrays, as shown in Example 10-25. The example uses one array site to create a single RAID 6 array. If you want to create a RAID 10 array, change the -raidtype parameter to 10.
Example 10-25 Creating arrays by using mkarray
dscli> mkarray -raidtype 6 -arsite S1
CMUC00004I mkarray: Array A2 successfully created.
dscli> mkarray -raidtype 6 -arsite S2
CMUC00004I mkarray: Array A3 successfully created.
You can now see the arrays that were created by using the lsarray command, as shown in Example 10-26.
Example 10-26 Listing the arrays by using lsarray
dscli> lsarray
Array State Data RAIDtype arsite Rank DA Pair DDMcap (10^9B)
======================================================================
A0 Assigned Normal 6 (5+P+Q+S) S4 R0 10 3840.0
A1 Assigned Normal 6 (5+P+Q+S) S3 R1 10 3840.0
A2 Unassigned Normal 6 (5+P+Q+S) S1 - 8 1600.0
A3 Unassigned Normal 6 (5+P+Q+S) S2 - 8 1600.0
Example 10-27 shows the results of the lsarraysite command.
Example 10-27 Listing the high-performance flash disk class flash Tier 0 by using the lsarraysite command
dscli> lsarraysite -l -diskclass flashtier0
arsite DA Pair dkcap (10^9B) diskrpm State Array diskclass encrypt
========================================================================
S1 8 1600.0 65000 Assigned A2 FlashTier0 supported
S2 8 1600.0 65000 Assigned A3 FlashTier0 supported
Example 10-28 shows the results of the lsarray -l command.
Example 10-28 Listing the disk class by using the lsarray -l command
dscli> lsarray -l
Array State Data RAIDtype arsite Rank DA Pair DDMcap (10^9B) diskclass encrypt
===========================================================================================
A0 Assigned Normal 6 (5+P+Q+S) S4 R0 10 3840.0 FlashTier1 supported
A1 Assigned Normal 6 (5+P+Q+S) S3 R1 10 3840.0 FlashTier1 supported
A2 Unassigned Normal 6 (5+P+Q+S) S1 - 8 1600.0 FlashTier0 supported
A3 Unassigned Normal 6 (5+P+Q+S) S2 - 8 1600.0 FlashTier0 supported
You can see the following information in the examples above:
Type of RAID array (RAID 6).
Number of drives that are allocated to the array (5+P+Q+S, which means that the usable space of the array is five times the drive size, and P+Q is used for R6 Parity and S for Spare).
Capacity of the drives that are being used (3.84 TB and 1.6 TB).
Array sites (S1 and S2) that were used to create the arrays.
Disk class (FlashTier0 and FlashTier1).
Default RAID policy
RAID 6 is the recommended and default RAID type for all drives over 1 TB. You get an alert message if you try to use RAID 5 (RAID 5 is now supported only on the Flash Tier 0 disk class by using the Request for Price Quotation (RPQ) process), as shown in Example 10-29.
Example 10-29 Alert message about using RAID 5
dscli> mkarray -raidtype 5 -arsite S2 -force
CMUC00537I mkarray: You have accepted the following disclaimer: The use of RAID 6 over RAID 5 is highly recommended for increased reliability. Acknowledge that you understand the risks associated with RAID 5.:
CMUN81160E mkarray: Cannot create the array because the capacity of the flash drives prohibits use of RAID 5.
----------------------------------------------------------------------
with RPQ submitted and approved
----------------------------------------------------------------------
dscli> mkarray -raidtype 5 -arsite S2
CMUC00536W mkarray: The use of RAID 6 over RAID 5 is highly recommended for increased reliability. Acknowledge that you understand the risks associated with RAID 5.: Are you sure you want to accept the disclaimer above? [Y/N]: y
CMUC00004I mkarray: Array A3 successfully created.
dscli> lsarray
Array State Data RAIDtype arsite Rank DA Pair DDMcap (10^9B)
======================================================================
A0 Assigned Normal 6 (5+P+Q+S) S4 R0 10 3840.0
A1 Assigned Normal 6 (5+P+Q+S) S3 R1 10 3840.0
A2 Assigned Normal 6 (5+P+Q+S) S1 R2 8 1600.0
A3 Unassigned Normal 5 (6+P+S) S2 - 8 1600.0
10.3.3 Creating the ranks
After you create all of the required arrays, create the ranks by using the mkrank command. The format of the command is mkrank -array Ax -stgtype xxx, where xxx is Fixed-Block (FB) or Count Key Data (CKD), depending on whether you are configuring for open systems hosts or IBM Z system hosts.
After all the ranks are created, the lsrank command is run. This command displays this information:
All the ranks that were created.
The server to which the rank is attached (attached to none, in the example up to now).
The RAID type.
The format of the rank (fb or ckd).
Example 10-30 shows the mkrank command and the result of a successful lsrank command.
Example 10-30 Creating and listing ranks by using the mkrank and lsrank commands
dscli> mkrank -array A2 -stgtype fb
CMUC00007I mkrank: Rank R2 successfully created.
dscli> lsrank
ID Group State datastate Array RAIDtype extpoolID stgtype
==============================================================
R0 0 Normal Normal A0 6 P0 fb
R1 1 Normal Normal A1 6 P1 fb
R2 - Unassigned Normal A2 6 - fb
dscli> lsarray
Array State Data RAIDtype arsite Rank DA Pair DDMcap (10^9B)
======================================================================
A0 Assigned Normal 6 (5+P+Q+S) S4 R0 10 3840.0
A1 Assigned Normal 6 (5+P+Q+S) S3 R1 10 3840.0
A2 Assigned Normal 6 (5+P+Q+S) S1 R2 8 1600.0
A3 Unassigned Normal 6 (5+P+Q+S) S2 - 8 1600.0
dscli> mkrank -array A3 -stgtype fb -extsize 16mib
CMUC00007I mkrank: Rank R3 successfully created.
dscli> lsrank
ID Group State datastate Array RAIDtype extpoolID stgtype
==============================================================
R0 0 Normal Normal A0 6 P0 fb
R1 1 Normal Normal A1 6 P1 fb
R2 0 Normal Normal A2 6 P2 fb
R3 - Unassigned Normal A3 5 - fb
dscli> lsarray
Array State Data RAIDtype arsite Rank DA Pair DDMcap (10^9B)
====================================================================
A0 Assigned Normal 6 (5+P+Q+S) S4 R0 10 3840.0
A1 Assigned Normal 6 (5+P+Q+S) S3 R1 10 3840.0
A2 Assigned Normal 6 (5+P+Q+S) S1 R2 8 1600.0
A3 Assigned Normal 5 (6+P+S) S2 R3 8 1600.0
When defining a rank, you can also specify the extent size. You can have ranks and extent pools with large 1 (gibibyte) GiB FB extents or small 16 mebibytes (MiB) FB extents. The extent unit is specified by the -extsize parameter of the mkrank command. The first rank that is added to an extent pool determines the extent size of the extent pool.
10.3.4 Creating the extent pools
The next step is to create the extent pools. Remember the following points when you create the extent pools:
Each extent pool includes an associated rank group that is specified by the -rankgrp parameter, which defines the extent pool’s server affinity (0 for server0 or 1 for server1).
The extent pool type is FB or CKD, and is specified by the -stgtype parameter.
The number of extent pools can range from one to the number of existing ranks. However, to associate ranks with both servers, you need at least two extent pools.
For easier management, create empty extent pools that relate to the type of storage or the planned usage for that pool. For example, create an extent pool pair for FB open systems environment and create an extent pool pair for the CKD environment.
When an extent pool is created, the system automatically assigns it an extent pool ID, which is a decimal number that starts from 0, preceded by the letter P. The ID that was assigned to an extent pool is shown in the CMUC00000I message, which is displayed in response to a successful mkextpool command.
Extent pools that are associated with rank group 0 receive an even ID number. Extent pools that are associated with rank group 1 receive an odd ID number. The extent pool ID is used when you refer to the extent pool in subsequent DS CLI commands. Therefore, it is best practice to note the ID.
Example 10-31 shows one example of extent pools that you can define on your system. This setup requires a system with at least four ranks.
Example 10-31 An extent pool layout plan
FB Extent Pool with 3840GB flash drives assigned to server 0 (FB_0)
FB Extent Pool with 3840GB flash drives assigned to server 1 (FB_1)
CKD Extent Pool with 1600GB flash drives assigned to server 0 (CKD_HPF_0)
CKD Extent Pool with 1600GB flash drives assigned to server 1 (CKD_HPF_1)
The mkextpool command forces you to name the extent pools. To do so, complete these steps:
1. Create empty extent pools by using the mkextpool command, as shown in Example 10-32.
2. List the extent pools to obtain their IDs.
3. Attach a rank to an empty extent pool by using the chrank command.
4. List the extent pools again by using lsextpool and note the change in the capacity of the extent pool.
Example 10-32 Creating an extent pool by using mkextpool, lsextpool, and chrank
dscli> mkextpool -rankgrp 0 -stgtype fb FB_0
CMUC00000I mkextpool: Extent pool P2 successfully created.
dscli> mkextpool -rankgrp 1 -stgtype fb FB_1
CMUC00000I mkextpool: Extent Pool P3 successfully created.
dscli> lsextpool
Name ID stgtype rankgrp status availstor (2^30B) %allocated available reserved numvols
=========================================================================================
FB_0 P2 fb 0 full 0 100 0 0 0
FB_1 P3 fb 1 full 0 100 0 0 0
dscli> chrank -extpool P2 R2
CMUC00008I chrank: Rank R2 successfully modified.
dscli> chrank -extpool P3 R3
CMUC00008I chrank: Rank R3 successfully modified.
dscli> lsextpool
Name ID stgtype rankgrp status availstor (2^30B) %allocated available reserved numvols
=========================================================================================
FB_0 P2 fb 0 below 7220 0 462099 64 0
FB_1 P3 fb 1 below 8665 0 554583 64 0
After a rank is assigned to an extent pool, you can see this change when you display the ranks.
In Example 10-33, you can see that rank R0 is assigned to extpool P0.
Example 10-33 Displaying the ranks after a rank is assigned to an extent pool
dscli> lsrank
ID Group State datastate Array RAIDtype extpoolID stgtype
===========================================================
R0 0 Normal Normal A0 6 P0 fb
R1 1 Normal Normal A1 6 P1 fb
R2 0 Normal Normal A2 6 P2 fb
R3 1 Normal Normal A3 5 P3 fb
R8 0 Normal Normal A8 6 P4 ckd
R11 1 Normal Normal A11 6 P5 ckd
Example 10-34 shows the extent size in the query.
Example 10-34 Command showing the extent size
dscli> lsrank -l
ID Group State datastate Array RAIDtype extpoolID extpoolnam stgtype exts usedexts keygrp marray extsize (cap)
=================================================================================================================
R0 0 Normal Normal A0 6 P0 ITSO_FB fb 17338 2105 1 MA4 1GiB
R1 1 Normal Normal A1 6 P1 ITSO_FB fb 17338 2304 1 MA3 1GiB
R2 0 Normal Normal A2 6 P2 FB_0 fb 462163 0 1 MA1 16MiB
R3 1 Normal Normal A3 5 P3 FB_1 fb 554647 0 1 MA2 16MiB
R8 0 Normal Normal A8 6 P4 CKD_L ckd 2392 31 1 MA25 1113cyl
R11 1 Normal Normal A11 6 P5 CKD_L ckd 8313 814 1 MA6 1113cyl
10.3.5 Creating the FB volumes
Now, you can create volumes and volume groups. When you create the volumes or groups, try to distribute them evenly across the two rank groups in the storage unit.
Although an FB-type volume can be created as standard (thick) and thin (extent space efficient (ESE)-type volumes, this section describes the creation of the standard type only.
Creating the standard volumes
Use the following command format when creating a volume:
mkfbvol -extpool pX -cap xx -name high_fb_0#h XXXX-XXXX
The last parameter is the volume_ID, which can be a range or single entry. The four-digit entry is based on LL and VV. LL (00 - FE) equals the logical subsystem (LSS) that the volume belongs to, and VV (00 - FF) equals the volume number on the LSS. Therefore, the DS8900F can support 255 LSSs, and each LSS can support a maximum of 256 volumes.
Example 10-35 shows the creation of eight volumes, each with a capacity of 10 GiB. The first four volumes are assigned to rank group 0, and are assigned to LSS 20 with volume numbers 00 - 03. The second four volumes are assigned to rank group 1, and are assigned to LSS 21 with volume numbers of 00 - 03.
Example 10-35 Create fixed-block volumes by using mkfbvol
dscli> lsextpool
Name ID stgtype rankgrp status availstor (2^30B) %allocated available reserved numvols
=========================================================================================
FB_0 P2 fb 0 below 7220 0 462099 64 0
FB_1 P3 fb 1 below 8665 0 554583 64 0
dscli> mkfbvol -extpool p2 -cap 10 -name fb_0_#h 2000-2003
CMUC00025I mkfbvol: FB volume 2000 successfully created.
CMUC00025I mkfbvol: FB volume 2001 successfully created.
CMUC00025I mkfbvol: FB volume 2002 successfully created.
CMUC00025I mkfbvol: FB volume 2003 successfully created.
dscli> mkfbvol -extpool p3 -cap 10 -name fb_1_#h 2100-2103
CMUC00025I mkfbvol: FB volume 2100 successfully created.
CMUC00025I mkfbvol: FB volume 2101 successfully created.
CMUC00025I mkfbvol: FB volume 2102 successfully created.
CMUC00025I mkfbvol: FB volume 2103 successfully created.
Looking closely at the mkfbvol command that is used in Example 10-35, you see that volumes 2000 - 2003 are in extpool P2. That extent pool is attached to rank group 0, which means server 0. Rank group 0 can contain only even-numbered LSSs, which means that volumes in that extent pool must belong to an even-numbered LSS. The first two digits of the volume serial number are the LSS number. So, in this case, volumes 2000 - 2003 are in LSS 20.
For volumes 2100 - 2103 in extpool P3 in Example 10-35, the first two digits of the volume serial number are 21 (an odd number), which signifies that they belong to rank group 1. The -cap parameter determines the size. However, because the -type parameter was not used, the default type is GiB or ds, which is a binary size of 230 bytes.
Therefore, these volumes are 10 GiB binary, which equates to 10,737,418,240 bytes. If you used the -type ess parameter, the volumes are decimally sized, and they are a minimum of 10,000,000,000 bytes in size.
Example 10-35 named the volumes by using the naming scheme fb_0_#h, where #h means that you are using the hexadecimal volume number as part of the volume name. This naming convention is shown in Example 10-36, where you list the volumes that you created by using the lsfbvol command. You then list the extent pools to see how much space is left after the volume is created.
Example 10-36 Checking the machine after the volumes are created by using lsfbvol and lsextpool
dscli> lsfbvol
Name ID accstate datastate configstate deviceMTM datatype extpool cap (2^30B) cap (10^9B) cap (blocks)
================================================================================================================
fb_0_2000 2000 Online Normal Normal 2107-900 FB 512 P2 10.0 - 20971520
fb_0_2001 2001 Online Normal Normal 2107-900 FB 512 P2 10.0 - 20971520
fb_0_2002 2002 Online Normal Normal 2107-900 FB 512 P2 10.0 - 20971520
fb_0_2003 2003 Online Normal Normal 2107-900 FB 512 P2 10.0 - 20971520
fb_1_2100 2100 Online Normal Normal 2107-900 FB 512 P3 10.0 - 20971520
fb_1_2101 2101 Online Normal Normal 2107-900 FB 512 P3 10.0 - 20971520
fb_1_2102 2102 Online Normal Normal 2107-900 FB 512 P3 10.0 - 20971520
fb_1_2103 2103 Online Normal Normal 2107-900 FB 512 P3 10.0 - 20971520
dscli> lsextpool
Name ID stgtype rankgrp status availstor (2^30B) %allocated available reserved numvols
=========================================================================================
FB_0 P2 fb 0 below 7180 0 459531 64 4
FB_1 P3 fb 1 below 8625 0 552015 64 4
 
Important considerations:
For a DS8000, the LSSs can be ID 00 - FE. The LSSs are in address groups. Address group 0 is LSSs 00 - 0F, address group 1 is LSSs 10 - 1F, and so on, except group F, which is F0 - FE. When you create an FB volume in an address group, that entire address group can be used only for FB volumes. Be aware of this fact when you plan your volume layout in a mixed FB and CKD DS8000. The LSS is automatically created when the first volume is assigned to it.
The -perfgrp <perf_group_ID> flag option is still available on the create volume commands for compatibility with earlier version, but the feature for Performance I/O Priority Manager was discontinued as of Release 9 DS8000 products.
Resource group: You can configure a volume to belong to a certain resource group by using the -resgrp <RG_ID> flag in the mkfbvol command. For more information, see IBM System Storage DS8000 Copy Services Scope Management and Resource Groups, REDP-4758.
T10 Data Integrity Field volumes
A standard for end-to-end error checking from the application to the disk drives is emerging that is called SCSI T10 Data Integrity Field (DIF). T10 DIF requires volumes to be formatted in 520-byte sectors with cyclic redundancy check (CRC) bytes that are added to the data. If you want to use this technique, you must create volumes that are formatted for T10 DIF usage.
You configure T10 DIF by adding the -t10dif parameter to the mkfbvol command. It is possible to create T10 DIF volumes and use them as standard volumes, and then enable them later without configuration changes.
Storage pool striping
When a volume is created, you can choose how the volume is allocated in an extent pool with several ranks. The extents of a volume can be kept together in one rank (if enough free space exists on that rank). The next rank is used when the next volume is created. This allocation method is called rotate volumes.
You can also specify that you want the extents of the volume that you create to be evenly distributed across all ranks within the extent pool. This allocation method is called rotate extents. The storage pool striping spreads the I/O of a logical unit number (LUN) to multiple ranks, which improves performance and greatly reduces hot spots.
The extent allocation method (EAM) is specified by the -eam rotateexts or -eam rotatevols option of the mkfbvol command, as shown in Example 10-37.
 
Default allocation policy: For DS8900F, the default allocation policy is rotate extents.
Example 10-37 Creating a volume with storage pool striping
dscli> mkfbvol -extpool p2 -cap 15 -name fb_0_2004 -eam rotateexts 2004
CMUC00025I mkfbvol: FB volume 2004 successfully created.
The showfbvol command with the -rank option (Example 10-38) shows that the volume that you created is distributed across two ranks. It also shows how many extents on each rank were allocated for this volume. Compared to the examples above, the extent pool P2 now consists of two ranks, R2 and R3.
Example 10-38 Using showfbvol for information about a striped volume
dscli> showfbvol -rank 2004
Name fb_0_2004
ID 2004
accstate Online
datastate Normal
configstate Normal
deviceMTM 2107-900
datatype FB 512
addrgrp 2
extpool P2
exts 960
cap (MiB) 15360
captype DS
cap (2^30B) 15.0
cap (10^9B) -
cap (blocks) 31457280
volgrp -
ranks 2
dbexts 0
sam Standard
repcapalloc -
eam rotateexts
reqcap (blocks) 31457280
realextents 960
virtualextents 3
realcap (MiB) 15360
migrating 0
migratingcap (MiB) 0
perfgrp PG0
migratingfrom -
resgrp RG0
tierassignstatus Unknown
tierassignerror -
tierassignorder Unknown
tierassigntarget Unknown
%tierassigned 0
etmonpauseremain -
etmonitorreset unknown
GUID 6005076309FFD4620000000000002004
safeguardedcap (2^30B) -
safeguardedloc -
usedsafeguardedcap (2^30B) -
safeguarded no
SGC Recovered no
==============Rank extents==============
rank extents capacity (MiB/cyl) metadata
========================================
R2 480 7680 yes
R3 480 7680 no
Dynamic Volume Expansion
A volume can be expanded without removing the data within the volume. You can specify a new capacity by using the chfbvol command, as shown in Example 10-39.
Example 10-39 Expanding a striped volume
dscli> chfbvol -cap 60 2004
CMUC00332W chfbvol: Some host operating systems do not support changing the volume
size. Are you sure that you want to resize the volume? [y/n]: y
CMUC00026I chfbvol: FB volume 2004 successfully modified.
The largest LUN size is 16 TiB. CS is not supported for LUN sizes larger than 4 TiB.
 
New capacity: The new capacity must be larger than the previous capacity. You cannot shrink the volume.
Because the original volume included the rotateexts attribute, the other extents are also striped, as shown in Example 10-40. See both examples and check the difference.
Example 10-40 Checking the status of an expanded volume
ddscli> showfbvol -rank 2004
Name fb_0_2004
ID 2004
accstate Online
datastate Normal
configstate Normal
deviceMTM 2107-900
datatype FB 512
addrgrp 2
extpool P2
exts 3840
cap (MiB) 61440
captype DS
cap (2^30B) 60.0
cap (10^9B) -
cap (blocks) 125829120
volgrp -
ranks 2
dbexts 0
sam Standard
repcapalloc -
eam rotateexts
reqcap (blocks) 125829120
realextents 3840
virtualextents 7
realcap (MiB) 61440
migrating 0
migratingcap (MiB) 0
perfgrp PG0
migratingfrom -
resgrp RG0
tierassignstatus Unknown
tierassignerror -
tierassignorder Unknown
tierassigntarget Unknown
%tierassigned 0
etmonpauseremain -
etmonitorreset unknown
GUID 6005076309FFD4620000000000002004
safeguardedcap (2^30B) -
safeguardedloc -
usedsafeguardedcap (2^30B) -
safeguarded no
SGC Recovered no
==============Rank extents==============
rank extents capacity (MiB/cyl) metadata
========================================
R2 1920 30720 yes
R3 1920 30720 yes
 
Important: Before you can expand a volume, you must delete all CS relationships for that volume.
Defining thin-provisioned ESE volumes
The DS8900F supports thin-provisioned volumes. A thin-provisioned volume is created by the DS CLI specifying the storage allocation method (SAM) of the ESE for a volume. This specification is done with the -sam ese option of the mkfbvol command, as shown in Example 10-41.
Example 10-41 Creating a thin-provisioned ESE volume
dscli> mkfbvol -extpool p2 -cap 1000 -name fb_0_2005 -sam ese 2005
CMUC00025I mkfbvol: FB volume 2005 successfully created.
The extent size is defined by the extent pools where the volume is created.
More DS CLI commands are available to control and protect the space in an extent pool for thin-provisioned volumes. One of these commands is the mksestg command, which reserves space for thin-provisioned volumes. For more information about thin-provisioning, see
IBM DS8880 Thin Provisioning (Updated for Release 8.5), REDP-5343.
Deleting volumes
FB volumes can be deleted by using the rmfbvol command. The command includes options to prevent the accidental deletion of volumes that are in use. An FB volume is considered to be in use if it is participating in a CS relationship or if the volume received any I/O operation in the previous 5 minutes.
Volume deletion is controlled by the -safe and -force parameters (they cannot be specified at the same time) in the following manner:
If none of the parameters are specified, the system performs checks to see whether the specified volumes are in use. Volumes that are not in use are deleted and the volumes that are in use are not deleted.
If the -safe parameter is specified and if any of the specified volumes are assigned to a user-defined volume group, the command fails without deleting any volumes.
The -force parameter deletes the specified volumes without checking whether they are in use.
Example 10-42 shows the creation of volumes 2200 and 2201, and then the assignment of volume 2200 to a volume group. You try to delete both volumes with the -safe option, but the attempt fails without deleting either of the volumes. You can delete volume 2201 by using the -safe option because the volume is not assigned to a volume group. Volume 2200 is not in use, so you can delete it by not specifying either parameter.
Example 10-42 Deleting an FB volume
dscli> mkfbvol -extpool p2 -cap 12 -name fb_0_#h -eam rotateexts 2200-2201
CMUC00025I mkfbvol: FB volume 2200 successfully created.
CMUC00025I mkfbvol: FB volume 2201 successfully created.
dscli> chvolgrp -action add -volume 2200 v0
CMUC00031I chvolgrp: Volume group V0 successfully modified.
dscli> rmfbvol -quiet -safe 2200-2201
CMUC00253E rmfbvol: Volume IBM.2107-75HAL91/2200 is assigned to a user-defined volume group. No volumes were deleted.
dscli> rmfbvol -quiet -safe 2201
CMUC00028I rmfbvol: FB volume 2201 successfully deleted.
dscli> rmfbvol 2200
CMUC00027W rmfbvol: Are you sure you want to delete FB volume 2200? [Y/N]: y
CMUC00028I rmfbvol: FB volume 2200 successfully deleted.
Reinitializing space efficient FB volumes
Users can use the initfbvol command to reinitialize online space efficient FB volumes.
The command includes options to prevent the accidental reinitialization of volumes that are in use. An FB volume is considered to be in use if it is participating in a CS relationship or if the volume received any I/O operation in the previous 5 minutes. All data is lost when this command is used.
Volume reinitialization is controlled by the -action releasespace and -force parameters in the following manner (Example 10-43):
The releasespace parameter is used to free all extents and tracks that are associated with the specified volume so they can then be reused by other space efficient volumes.
The -force parameter is required in order for the initfbvol command to reinitialize the specified volume if it is in use.
When both of these parameters are used, the user is prompted with a Y/N response in order for the command to proceed with the reinitialization process.
Example 10-43 Using the initfbvol command to reinitialize a volume
dscli> initfbvol -action releasespace -force 2005
CMUC00337W initfbvol: Are you sure that you want to free all extents and lose the data associated with the FB volume 2005? [Y/N]:y
CMUC00340I initfbvol: 2005: The command releasespace has completed successfully.
10.3.6 Creating the volume groups
FB volumes are assigned to open system hosts by using volume groups. Do not confuse them with the volume groups term, which is used in AIX. An FB volume can be a member of multiple volume groups. Volumes can be added or removed from volume groups as required. Each volume group must be SCSI MAP256 or SCSI MASK, depending on the SCSI LUN address discovery method that is used by the OS to which the volume group is attached.
 
Note: There are two ways to create volume groups and map the volumes to the hosts. Volume groups can be created manually in single steps or automatically. The automatic method is done by using the mkhost and chhost commands, and it is the recommended method for mapping volumes to host systems.
Mapping of volumes to hosts or host groups is also called storage partitioning.
The following sections describe both ways, but understand that the manual way is only there for compatibility with earlier versions and must be applied with care to make sure that all the steps are done to fully reflect the results and views in the DS GUI.
Determining whether an open system host is SCSI MAP256 or SCSI MASK
Determine the type of SCSI host with which you are working. Then, run the lshosttype command with the -type parameter of scsimask and then scsimap256.
Example 10-44 shows the results of each command.
Example 10-44 Listing the host types by running the lshostype command
dscli> lshosttype -type scsimask
HostType Profile AddrDiscovery LBS
===========================================================================
Hp HP - HP/UX reportLUN 512
SVC SAN Volume Controller reportLUN 512
SanFsAIX IBM pSeries - AIX/SanFS reportLUN 512
pSeries IBM pSeries - AIX reportLUN 512
pSeriesPowerswap IBM pSeries - AIX with Powerswap support reportLUN 512
zLinux IBM zSeries - zLinux reportLUN 512
dscli> lshosttype -type scsimap256
HostType Profile AddrDiscovery LBS
=================================================
AppleOSX Apple - OSX LUNPolling 512
Fujitsu Fujitsu - Solaris LUNPolling 512
HpTru64 HP - Tru64 LUNPolling 512
HpVms HP - Open VMS LUNPolling 512
Linux Linux Server LUNPolling 512
Novell Novell LUNPolling 512
SGI SGI - IRIX LUNPolling 512
SanFsLinux - Linux/SanFS LUNPolling 512
Sun SUN - Solaris LUNPolling 512
VMWare VMWare LUNPolling 512
Windows Windows Server LUNPolling 512
iLinux IBM iSeries - iLinux LUNPolling 512
nSeries IBM N series Gateway LUNPolling 512
pLinux IBM pSeries - pLinux LUNPolling 512
Creating a volume group
After you determine the host type, create a volume group. In Example 10-45, the example host type is AIX. In Example 10-44 on page 370, you can see that the address discovery method for AIX is scsimask.
Example 10-45 Creating a volume group by using mkvolgrp and displaying it by using lsvolgrp
dscli> mkvolgrp -type scsimask -volume 2000-2002,2100-2102 AIX_VG_01
CMUC00030I mkvolgrp: Volume group V1 successfully created.
dscli> lsvolgrp -l -type scsimask
Name ID Type
============================
v0 V0 SCSI Mask
AIX_VG_01 V1 SCSI Mask
pE950_042 V2 SCSI Mask
pE950_048 V3 SCSI Mask
pseries_cluster V7 SCSI Mask
dscli> showvolgrp V1
Name AIX_VG_01
ID V1
Type SCSI Mask
Vols 2000 2001 2002 2100 2101 2102
Adding or deleting volumes in a volume group
In this example, you add volumes 2000 - 2002 and 2100 - 2102 to the new volume group to evenly spread the workload across the two rank groups. You then list all available volume groups by using the lsvolgrp command. Finally, list the contents of volume group V1 because you created this volume group.
You might also want to add or remove volumes to this volume group later. To add or remove volumes, use the chvolgrp command with the -action parameter.
Example 10-46 shows adding volume 2003 to volume group V1, displaying the results, and then removing the volume.
Example 10-46 Changing a volume group by using chvolgrp
dscli> chvolgrp -action add -volume 2003 V1
CMUC00031I chvolgrp: Volume group V1 successfully modified.
dscli> showvolgrp V1
Name AIX_VG_01
ID V1
Type SCSI Mask
Vols 2000 2001 2002 2003 2100 2101 2102
dscli> chvolgrp -action remove -volume 2003 V1
CMUC00031I chvolgrp: Volume group V1 successfully modified.
dscli> showvolgrp V1
Name AIX_VG_01
ID V1
Type SCSI Mask
Vols 2000 2001 2002 2100 2101 2102
 
Important: Not all OSs can manage a volume removal. To determine the safest way to remove a volume from a host, see your OS documentation.
10.3.7 Creating host connections and clusters
The logical configuration process also includes creating host connections for your attached hosts. You must assign volume groups to those connections. Each host’s host bus adapter (HBA) can be defined only once. Each host connection can have only one volume group that is assigned to it. A volume can be assigned to multiple volume groups.
You can use a set of cluster commands (mkcluster, lscluster, showcluster, and rmcluster) to create clusters to group hosts that have the same set of volume mappings, map or unmap volumes directly to these clusters, or both. These commands were added to provide consistency between the GUI and DS CLI. For more information, see “Creating open system clusters and hosts” on page 284.
Clusters are grouped hosts that must share volume access with each other. A cluster usually contains several hosts. Single hosts can exist without a cluster. Clusters are created by running the mkcluster command. This command does not need many parameters and is there only to organize hosts.
The mkhost command now has two generic host types that are available: Linux Server and Windows Server. These types were created to simplify and remove confusion when configuring these host types. You must define the host type first by running the mkhost command, as shown in Example 10-47.
Example 10-47 Creating generic host types Linux Server and Windows Server
dscli> mkcluster cluster_1
CMUC00538I mkcluster: The cluster cluster_1 is successfully created.
Usage: mkhost [ { -help|-h|-? } ] [-v on|off] [-bnr on|off] [-dev storage_image_ID] -type AIX|AIX with PowerSwap|HP OpenVMS|HP-UX|IBM i AS/400|iLinux|Linux RHEL|Linux SUSE|Linux Server|N series Gateway|Novell|pLinux|SAN Volume Controller|Solaris|VMware|Windows 2003|Windows 2008|Windows 2012|Windows Server|zLinux [-hostport wwpn1[,wwpn2,...]] [-cluster cluster_name] Host_Name | -
 
dscli> mkhost -type “Linux Server” -cluster cluster_1 Host_1
CMUC00530I mkhost: The host Host_1 is successfully created.
dscli> mkhost -type “Linux Server” -cluster cluster_1 Host_2
CMUC00530I mkhost: The host Host_2 is successfully created.
dscli> lshost
Name Type State Cluster
===========================================
Host_1 Linux Server Offline cluster_1
Host_2 Linux Server Offline cluster_1
pE950_042 AIX Online -
pE950_048 AIX Online -
x3550_2_03 Windows Server Online -
x3650_2_54 Linux Server Online -
More commands are also available: chhost, lshost, showhost, chhost, and rmhost. These commands were added to provide consistency between the DS GUI and DS CLI. Example 10-48 provides examples of the commands.
Example 10-48 Examples of the four extra CLI host commands
dscli> mkcluster cluster_2
CMUC00538I mkcluster: The cluster cluster_2 is successfully created.
 
dscli> chhost -cluster cluster_2 Host_1
CMUC00531I chhost: The host Host_1 is successfully modified.
 
dscli> lshost
Name Type State Cluster
===========================================
Host_1 Linux Server Offline cluster_2
Host_2 Linux Server Offline cluster_1
pE950_042 AIX Online -
pE950_048 AIX Offline -
x3550_2_03 Windows Server Online -
x3650_2_54 Linux Server Online -
 
dscli> showhost Host_1
Name Host_1
Type Linux Server
State Offline
AddrMode scsimap256
Volumes 0
Host ports 0
I/O ports 16 (all)
AddrDiscovery lunpolling
LBS 512
Cluster cluster_2
To link the logical hostname with a real physical connection, host ports must be assigned to the host by running the mkhostport command. This task also can be done by running the mkhost command with the -hostport wwpn1[,wwpn2,...] option during host creation to save the additional configuration step.
To see a list of unassigned worldwide port names (WWPNs), which are already logged in to the storage system and represent the physical HBA ports of the hosts, run the lshostport command. Specifying -unknown shows all the free ports and -login shows all the logged-in ports. It takes a while until the storage system shows the new logged-in ports. It is also possible to add them manually, and they do not need to be logged in to create the host configuration and volume mappings.
Example 10-49 shows the host port connection.
Example 10-49 Host port connection
dscli> lshostport -login
WWNN WWPN Host I/O ports ESSIOport
================================================================
20000000C9F607E8 10000000C9F607E8 - - I0032
20000000C9F607E9 10000000C9F607E9 - - I0103
2000001B329CBB21 2100001B329CBB21 x3650_2_54 16 (all) I0032
20000024FF2D0F86 21000024FF2D0F86 x3550_2_03 16 (all) I0103
20000024FF2D0F87 21000024FF2D0F87 x3550_2_03 16 (all) I0032
20000024FF41D1CE 21000024FF41D1CE x3550_2_03 16 (all) I0103
20000024FF41D1CF 21000024FF41D1CF x3550_2_03 16 (all) I0032
20000120FA13B914 10000090FA13B914 - - I0032
20000120FA13B915 10000090FA13B915 - - I0103
2001001B32BCBB21 2101001B32BCBB21 x3650_2_54 16 (all) I0103
C05076068D1B004A C05076068D1B004A pE950_048 16 (all) I0032
C05076068D1B004C C05076068D1B004C pE950_048 16 (all) I0103
dscli> lshostport -unknown
Date/Time: June 27, 2022 5:50:08 PM CEST IBM DSCLI Version: 7.9.30.154 DS: IBM.2107-75HAL91
WWNN WWPN ESSIOport
===========================================
20000000C9F607E8 10000000C9F607E8 I0032
20000000C9F607E9 10000000C9F607E9 I0103
20000120FA13B914 10000090FA13B914 I0032
20000120FA13B915 10000090FA13B915 I0103
dscli> mkhostport -host Host_1 "10000000C9F607E8"
CMUC00542I mkhostport: The host port 10000000C9F607E8 is successfully created.
dscli> mkhostport -host Host_1 "10000000C9F607E9"
CMUC00542I mkhostport: The host port 10000000C9F607E9 is successfully created.
dscli> lshostport
WWPN Name Type State
====================================================
10000000C9F607E8 Host_1 Linux Server logged_in
10000000C9F607E9 Host_1 Linux Server logged_in
2100001B329CBB21 x3650_2_54 Linux Server logged_in
21000024FF2D0F86 x3550_2_03 Windows Server logged_in
21000024FF2D0F87 x3550_2_03 Windows Server logged_in
21000024FF41D1CE x3550_2_03 Windows Server logged_in
21000024FF41D1CF x3550_2_03 Windows Server logged_in
2101001B32BCBB21 x3650_2_54 Linux Server logged_in
C05076068D1B004A pE950_048 AIX logged_in
C05076068D1B004C pE950_048 AIX logged_in
dscli> lshost -l
Name Type State Cluster AddrMode Volumes Host ports I/O ports
===================================================================================
Host_1 Linux Server Online cluster_2 scsimap256 0 2 16 (all)
Host_2 Linux Server Offline cluster_1 scsimap256 0 0 16 (all)
pE950_042 AIX Offline - scsimask 0 0 16 (all)
pE950_048 AIX Online - scsimask 0 2 16 (all)
x3550_2_03 Windows Server Online - scsimap256 6 4 16 (all)
x3650_2_54 Linux Server Online - scsimap256 8 2 16 (all)
The last step is to assign volumes to the host or cluster to allow host access to the volumes. The volumes that are assigned to the host are seen only by the host, and the volumes that are assigned to the cluster can be seen by all hosts inside the cluster. The volume groups for the cluster and the host are generated automatically by running the chhost/chcluster -action map command. The automatically created volume groups have the same name as the host or cluster itself but are different objects.
Example 10-50 shows the steps for a cluster and a host.
Example 10-50 Volume to host mapping
dscli> lsvolgrp -type scsimap256
Name ID Type
==========================
x3650_2_54 V4 SCSI Map 256
x3550_2_03 V8 SCSI Map 256
dscli> chhost -action map -volume 2000-2003 Host_1
CMUC00531I chhost: The host Host_1 is successfully modified.
dscli> lsvolgrp -type scsimap256
Name ID Type
==========================
x3650_2_54 V4 SCSI Map 256
Host_1 V5 SCSI Map 256
x3550_2_03 V8 SCSI Map 256
dscli> chcluster -action map -volume 2100-2103 cluster_2
CMUC00541I chcluster: The cluster cluster_2 is successfully modified.
dscli> lsvolgrp -type scsimap256
Name ID Type
==========================
x3650_2_54 V4 SCSI Map 256
Host_1 V5 SCSI Map 256
cluster_2 V6 SCSI Map 256
x3550_2_03 V8 SCSI Map 256
dscli> lshost -l
Name Type State Cluster AddrMode Volumes Host ports I/O ports
===================================================================================
Host_1 Linux Server Online cluster_2 scsimap256 8 2 16 (all)
Host_2 Linux Server Offline cluster_1 scsimap256 0 0 16 (all)
pE950_042 AIX Offline - scsimask 0 0 16 (all)
pE950_048 AIX Online - scsimask 0 2 16 (all)
x3550_2_03 Windows Server Online - scsimap256 6 4 16 (all)
x3650_2_54 Linux Server Online - scsimap256 8 2 16 (all)
Example 10-51 shows some change and removal commands. Unassigning the host from the cluster means that the host also keeps the cluster volume mappings and the cluster also keeps them.
The automatically created volumes groups are removed only if the host is removed or you run the rmvolgrp command.
Example 10-51 Host change and removal
dscli> showhost Host_1
Name Host_1
Type Linux Server
State Online
AddrMode scsimap256
Volumes 8
Host ports 2
I/O ports 16 (all)
AddrDiscovery lunpolling
LBS 512
Cluster cluster_2
dscli> chhost -cluster cluster_2 Host_2
CMUC00531I chhost: The host Host_2 is successfully modified.
dscli> chhost -unassign Host_1
CMUC00531I chhost: The host Host_1 is successfully modified.
 
dscli> showhost Host_1
Name Host_1
Type Linux Server
State Online
AddrMode scsimap256
Volumes 8
Host ports 2
I/O ports 16 (all)
AddrDiscovery lunpolling
LBS 512
Cluster -
 
dscli> rmhost -quiet Host_1
CMUC00533E rmhost: The host IBM.2107-75HAL91/Host_1 cannot be removed because it contains volumes.
dscli> lsvolgrp -type scsimap256
Name ID Type
==========================
x3650_2_54 V4 SCSI Map 256
Host_1 V5 SCSI Map 256
cluster_2 V6 SCSI Map 256
x3550_2_03 V8 SCSI Map 256
Host_2 V9 SCSI Map 256
dscli> showvolgrp v5
Name Host_1
ID V5
Type SCSI Map 256
Vols 2000 2001 2002 2003 2101 2100 2102 2103
dscli> chvolgrp -action remove -volume 2000-2003,2100-2103 v5
CMUC00031I chvolgrp: Volume group V9 successfully modified.
dscli> rmhost Host_1
CMUC00529W rmhost: Are you sure that you want to delete host Host_1? [Y/N]: y
CMUC00528I rmhost: The host Host_1 is successfully deleted.
dscli> lsvolgrp -type scsimap256
Name ID Type
==========================
x3650_2_54 V4 SCSI Map 256
cluster_2 V6 SCSI Map 256
x3550_2_03 V8 SCSI Map 256
Host_2 V9 SCSI Map 256
Connecting a host to an existing volume group
Example 10-45 on page 371 shows the already created volume group for an example AIX host connection. The volumes are already assigned to the volume group.
Example 10-52 on page 377 shows the creation of a host connection that represents two HBA ports in this AIX host. Use the -hosttype parameter to include the host type that you used in Example 10-44 on page 370. Allocate it to volume group V1. If the storage area network (SAN) zoning is correct, the host can see the LUNs in volume group V1.
Example 10-52 Creating host connections by using mkhostconnect and lshostconnect
dscli> lshostport -unknown
WWNN WWPN ESSIOport
===========================================
20000120FA13B914 10000090FA13B914 I0032
20000120FA13B915 10000090FA13B915 I0103
dscli> lsvolgrp -type scsimask
Name ID Type
============================
v0 V0 SCSI Mask
AIX_VG_01 V1 SCSI Mask
pE950_042 V2 SCSI Mask
pE950_048 V3 SCSI Mask
pseries_cluster V7 SCSI Mask
dscli> showvolgrp V1
Name AIX_VG_01
ID V1
Type SCSI Mask
Vols 2000 2001 2002 2100 2101 2102
dscli> mkhostconnect -wwname 10000090FA13B914 -hosttype pSeries -volgrp V1 AIX_Server_01
CMUC00012I mkhostconnect: Host connection 000A successfully created.
dscli> mkhostconnect -wwname 10000090FA13B915 -hosttype pSeries -volgrp V1 AIX_Server_01
CMUC00012I mkhostconnect: Host connection 000B successfully created.
dscli> lshostconnect
Name ID WWPN HostType Profile portgrp volgrpID ESSIOport
=========================================================================================
AIX_Server_01 000A 10000090FA13B914 pSeries IBM pSeries - AIX 0 V1 all
AIX_Server_01 000B 10000090FA13B915 pSeries IBM pSeries - AIX 0 V1 all
You can also use -profile instead of -hosttype. However, this method is not a best practice. Using the -hosttype parameter reflects both parameters (-profile and -hosttype). In contrast, using -profile leaves the -hosttype column unpopulated.
The option in the mkhostconnect command to restrict access only to certain I/O ports is also available by using the -ioport parameter. Restricting access in this way is unnecessary. If you want to restrict access for certain hosts to certain I/O ports on the DS8900F, perform zoning on your SAN switch.
The mkhostconnect command normally is sufficient to allow the volumes to access the specified host ports. The command works, but it is not reflected in the modernized GUI interface. The modernized GUI interface introduced host and cluster grouping for easier management of groups of hosts with many host ports. If no host or cluster is assigned to the created connection, the GUI still shows the ports as unassigned host ports with mapped volumes.
Figure 10-8 shows the results in the DS GUI.
Figure 10-8 Volumes that are mapped to a host port without a host
The lshostconnect -l command in Example 10-53 shows that the relationship between the volume group and a host connection was not built up. The assigned host is missing in the last column and portgrp 0 is used, which is not recommended because it is the default port group for new host ports. There is no host that is created yet for the AIX connection in our example.
The first column does not show the hostname: It is a symbolic name for the connection for better recognition. The ID field makes the connection unique.
Example 10-53 The lshostconnect -l command for full view
dscli> lshostconnect -l
Name ID WWPN HostType LBS addrDiscovery Profile portgrp volgrpID ESSIOport host
======================================================================================================================
x3650_2_54 0001 2100001B329CBB21 Linux 512 LUNPolling Linux Server 1 V4 all x3650_2_54
x3650_2_54 0002 2101001B32BCBB21 Linux 512 LUNPolling Linux Server 1 V4 all x3650_2_54
x3550_2_03 0004 21000024FF2D0F86 Windows 512 LUNPolling Windows Server 2 V8 all x3550_2_03
x3550_2_03 0005 21000024FF2D0F87 Windows 512 LUNPolling Windows Server 2 V8 all x3550_2_03
x3550_2_03 0006 21000024FF41D1CE Windows 512 LUNPolling Windows Server 2 V8 all x3550_2_03
x3550_2_03 0007 21000024FF41D1CF Windows 512 LUNPolling Windows Server 2 V8 all x3550_2_03
AIX_Server_01 000A 10000090FA13B914 pSeries 512 reportLUN IBM pSeries - AIX 0 V1 all -
AIX_Server_01 000B 10000090FA13B915 pSeries 512 reportLUN IBM pSeries - AIX 0 V1 all -
pE950_048 000F C05076068D1B004A pSeries 512 reportLUN IBM pSeries - AIX 4 V3 all pE950_048
pE950_048 0010 C05076068D1B004C pSeries 512 reportLUN IBM pSeries - AIX 4 V3 all pE950_048
 
Note: As a best practice, it is not advisable to use the host port group ID of 0. This ID ties together a group of SCSI host port objects that are accessing a common volume group. If the port group value is set to zero, the host port is not associated with any port group. It is used by default for ports that are not grouped yet.
When hosts are created, you can specify the -portgrp parameter. By using a unique port group number for each attached server, you can detect servers with multiple HBAs.
If you want to use a single command to change the assigned volume group of several host connections at the same time, assign the host connections to a unique port group. Then, run the managehostconnect command. This command changes the assigned volume group for all host connections that are assigned to a particular port group.
Changing host connections
If you want to change a host connection, run the chhostconnect command. This command can be used to change nearly all parameters of the host connection, except for the WWPN.
Example 10-54 shows the steps to finish the configuration of the mapping. A host must be created, and then the new host must be assigned to the existing connections A and B and volume group V1 relationship.
Example 10-54 Host and volume group relationship
dscli> mkhost -type AIX Host_AIX
CMUC00530I mkhost: The host Host_AIX is successfully created.
dscli> lshost -l
Name Type State Cluster AddrMode Volumes Host ports I/O ports
===================================================================================
Host_AIX AIX Offline - scsimask 0 0 16 (all)
...
dscli> lshostport -l
WWPN Name Type State Volumes AddrMode I/O ports Host
===========================================================================================
10000090FA13B914 AIX_Server_01 AIX logged_in 6 scsimask 16 (all) -
10000090FA13B915 AIX_Server_01 AIX logged_in 6 scsimask 16 (all) -
...
dscli> lshostconnect
Name ID WWPN HostType Profile portgrp volgrpID ESSIOport
=========================================================================================
...
AIX_Server_01 000A 10000090FA13B914 pSeries IBM pSeries - AIX 0 V1 all
AIX_Server_01 000B 10000090FA13B915 pSeries IBM pSeries - AIX 0 V1 all
...
dscli> chhostconnect -host Host_AIX A
CMUC00527W chhostconnect: The volumes will be merged into the host. Are you sure that you want to modify host connection A? [Y/N]: y
CMUC00013I chhostconnect: Host connection 000A successfully modified.
dscli> chhostconnect -quiet -host Host_AIX B
CMUC00013I chhostconnect: Host connection 000B successfully modified.
dscli> lshost -l
Name Type State Cluster AddrMode Volumes Host ports I/O ports
===================================================================================
Host_AIX AIX Online - scsimask 6 2 16 (all)
...
dscli> lshostport -l
WWPN Name Type State Volumes AddrMode I/O ports Host
===============================================================================================
10000090FA13B914 AIX_Server_01 AIX logged_in 6 scsimask 16 (all) Host_AIX
10000090FA13B915 AIX_Server_01 AIX logged_in 6 scsimask 16 (all) Host_AIX
...
After completing the steps, the configuration is done.
Example 10-55 with the command lsconnect -l shows that the relationship between host, connection, and volume group is made. The chhostconnect command automatically changed the host port group to a value different from zero.
Example 10-55 The lshostconnect -l command
dscli> lshostconnect -l
Name ID WWPN HostType LBS addrDiscovery Profile portgrp volgrpID ESSIOport host
======================================================================================================================
...
AIX_Server_01 000A 10000090FA13B914 pSeries 512 reportLUN IBM pSeries - AIX 5 V1 all Host_AIX
AIX_Server_01 000B 10000090FA13B915 pSeries 512 reportLUN IBM pSeries - AIX 5 V1 all Host_AIX
...
 
Note: Using the mkvolgrp and mkhostconnect commands for storage partitioning to map volumes to hosts is not the preferred method. It is available for compatibility for earlier and existing volume groups. It is better to use the mkhost command from the beginning to assign hosts, host ports, volume groups, and volume mappings together. It combines the needed functions in one command and makes sure that no step is forgotten. It also reduces the number of steps that is needed.
10.3.8 Mapping open system host disks to storage unit volumes
When you assign volumes to an open system host and install the DS CLI on a host, you can run the lshostvol DS CLI command on that host. This command maps assigned LUNs to open system host volume names.
You log on to this host and start DS CLI. It does not matter which HMC that you connect to when you use the DS CLI. Then, run the lshostvol command.
 
Important: The lshostvol command communicates only with the OS of the host on which the DS CLI is installed. You cannot run this command on one host to see the attached disks of another host.
Note: The Subsystem Device Driver Path Control Module (SDDPCM) (a multipath solution on AIX) and Subsystem Device Driver Device Specific Module (SDDDSM) (a multipath solution on Windows) are no longer developed for DS8000. Instead, use an OS-native solution such as AIX Multipath I/O Path Control Module (AIXPCM) (the AIX default multipath solution) or Microsoft Device Specific Module (MSDSM) (the Windows default multipath solution). These solutions are fully supported on open systems.
10.4 DS8900F storage configuration for the CKD volumes
This list contains the steps to configure CKD storage in the DS8880:
1. Create the arrays.
2. Create the CKD ranks.
3. Create the CKD extent pools.
4. Create the logical control units (LCUs).
5. Create the CKD volumes.
You do not need to create volume groups or host connects for CKD volumes. If I/O ports in FICON mode exist, access to CKD volumes by FICON hosts is granted automatically, and follows the specifications in the input/output definition file (IODF).
10.4.1 Creating the arrays
Array creation for CKD volumes is the same as for FB volumes. For more information, see 10.3.2, “Creating the arrays” on page 358.
10.4.2 Creating the ranks and extent pools
When ranks and extent pools are created, you must specify -stgtype ckd. Then, you can create the extent pool, as shown in Example 10-56.
Example 10-56 Rank and extent pool creation for CKD volumes
dscli> mkrank -array A2 -stgtype ckd
CMUC00007I mkrank: Rank R2 successfully created.
dscli> lsrank
ID Group State datastate Array RAIDtype extpoolID stgtype
==============================================================
R0 0 Normal Normal A0 6 P0 fb
R1 1 Normal Normal A1 6 P1 fb
R2 - Unassigned Normal A2 6 - ckd
dscli> mkextpool -rankgrp 0 -stgtype ckd CKD_HPF_0
CMUC00000I mkextpool: Extent Pool P2 successfully created.
dscli> chrank -extpool P2 R2
CMUC00008I chrank: Rank R2 successfully modified.
dscli> lsextpool
Name ID stgtype rankgrp status availstor (2^30B) %allocated available reserved numvols
===========================================================================================
ITSO_FB P0 fb 0 below 15232 12 15232 1 17
ITSO_FB P1 fb 1 below 15833 8 15833 1 7
CKD_HPF_0 P2 ckd 0 below 7135 0 8098 1 0
When defining a rank, you can also specify the extent size. You can have ranks and extent pools with large 1113 cylinder CKD extents, or small 21 cylinder CKD extents. The extent unit is specified with the -extsize parameter of the mkrank command. The first rank that is added to an extent pool determines the extent size of the extent pool. Example 10-57 shows ranks with different extent sizes.
Example 10-57 CKD ranks with different extent sizes
dscli> lsrank -l
Date/Time: June 27, 2022 5:55:29 PM CEST IBM DSCLI Version: 7.9.30.154 DS: IBM.2107-75HAL91
ID Group State datastate Array RAIDtype extpoolID extpoolnam stgtype exts usedexts keygrp marray extsize (cap)
=================================================================================================================
R0 0 Normal Normal A0 6 P0 ITSO_FB fb 17338 2105 1 MA4 1GiB
R1 1 Normal Normal A1 6 P1 ITSO_FB fb 17338 1504 1 MA3 1GiB
R2 0 Normal Normal A2 6 P2 CKD_HPF_0 ckd 8099 0 1 MA1 1113cyl
R3 1 Normal Normal A3 6 P3 CKD_HPF_1 ckd 429258 0 1 MA2 21cyl
10.4.3 Logical control unit creation
In a CKD environment, you must create LCUs before the volumes are created. In Example 10-58, you can see what happens if you try to create a CKD volume without creating an LCU first.
Example 10-58 Trying to create CKD volumes without creating an LCU first
dscli> mkckdvol -extpool p2 -cap 262668 -name CKD_EAV1_#h C200
CMUN02282E mkckdvol: C200: Unable to create CKD logical volume: CKD volumes require a CKD logical subsystem.
To create the LCUs, run the mklcu command. The command uses the following format:
mklcu -qty XX -id XX -ss XXXX
 
Note: For the z/OS hardware definition, the subsystem identifier (SSID) (-ss -id) must be unique for all connected storage systems. The z/OS hardware admin usually provides the SSID to use.
To display the LCUs that you created, run the lslcu command.
Example 10-59 shows the creation of two LCUs by running the mklcu command and then listing the created LCUs by running the lslcu command. By default, the LCUs that were created are the 3990-6 type.
Example 10-59 Creating a logical control unit by running mklcu
dscli> mklcu -qty 2 -id BC -ss 91BC
CMUC00017I mklcu: LCU BC successfully created.
CMUC00017I mklcu: LCU BD successfully created.
dscli> lslcu
ID Group addrgrp confgvols subsys conbasetype
=============================================
BC 0 B 0 0x91BC 3990-6
BD 1 B 0 0x91BD 3990-6
Because two LCUs were created by using the parameter -qty 2, the first LCU, which is ID BC (an even number), is in address group 0, which equates to rank group 0. The second LCU, which is ID BD (an odd number), is in address group 1, which equates to rank group 1. By placing the LCUs into both address groups, performance is maximized by spreading the workload across both servers in the DS8900F.
 
Important: For the DS8900F, the CKD LCUs can be ID 00 - FE. The LCUs fit into one of 16 address groups. Address group 0 is LCUs 00 - 0F, address group 1 is LCUs 10 - 1F, and so on, except group F is F0 - FE. If you create a CKD LCU in an address group, that address group cannot be used for FB volumes. Likewise, if, for example, FB volumes were in LSS 40 - 4F (address group 4), that address group cannot be used for CKD. Be aware of this limitation when you plan the volume layout in a mixed FB and CKD DS8900F. Each LCU can manage a maximum of 256 volumes, including alias volumes for the parallel access volume (PAV) feature.
10.4.4 Creating the CKD volumes
Now that an LCU is created, the CKD volumes can be created by using the mkckdvol command. The mkckdvol command uses the following format:
mkckdvol -extpool P2 -cap 262668 -datatype 3390-A -eam rotatevols -name CKD_EAV1_#h BC06
The greatest difference with CKD volumes is that the capacity is expressed in cylinders or as mod1 (Model 1) extents (1113 cylinders). To not waste space, use volume capacities that are a multiple of 1113 cylinders.
The support for extended address volumes (EAVs) was enhanced. The DS8900F supports EAV volumes up to 1,182,006 cylinders. The EAV device type is called 3390 Model A.
 
Important: For 3390-A volumes, the size can be specified as 1 - 65,520 in increments of 1, and from 65,667, which is the next multiple of 1113, to 1,182,006 in increments of 1113.
The last parameter in the command is the volume_ID. This value determines the LCU that the volume belongs to and the unit address (UA) for the volume. Both of these values must be matched to a control unit and device definition in the input/output configuration data set (IOCDS) that an IBM Z system server uses to access the volume.
The volume_ID has a format of LLVV. LL (00 - FE) equals the LCU to which the volume belongs, and VV (00 - FF) equals the offset for the volume. Only one volume of an LCU can use a unique VV of 00 - FF.
Example 10-60 shows the creation of 3390-A volumes with a capacity of 262,668 cylinders that are assigned to LCU BC with an offset of 00 - 05.
Example 10-60 Creating CKD volumes by using mkckdvol
dscli> mkckdvol -extpool P2 -cap 262668 -datatype 3390-A -eam rotatevols -name CKD_EAV1_#h BC00-BC05
CMUC00021I mkckdvol: CKD Volume BC00 successfully created.
CMUC00021I mkckdvol: CKD Volume BC01 successfully created.
CMUC00021I mkckdvol: CKD Volume BC02 successfully created.
CMUC00021I mkckdvol: CKD Volume BC03 successfully created.
CMUC00021I mkckdvol: CKD Volume BC04 successfully created.
CMUC00021I mkckdvol: CKD Volume BC05 successfully created.
dscli> lsckdvol
Name ID accstate datastate configstate deviceMTM voltype orgbvols extpool cap (cyl)
===============================================================================================
CKD_EAV1_BC00 BC00 Online Normal Normal 3390-A CKD Base - P2 262668
CKD_EAV1_BC01 BC01 Online Normal Normal 3390-A CKD Base - P2 262668
CKD_EAV1_BC02 BC02 Online Normal Normal 3390-A CKD Base - P2 262668
CKD_EAV1_BC03 BC03 Online Normal Normal 3390-A CKD Base - P2 262668
CKD_EAV1_BC04 BC04 Online Normal Normal 3390-A CKD Base - P2 262668
CKD_EAV1_BC05 BC05 Online Normal Normal 3390-A CKD Base - P2 262668
You can create only CKD volumes in LCUs that you already created. Volumes in even-numbered LCUs must be created from an extent pool that belongs to rank group 0. Volumes in odd-numbered LCUs must be created from an extent pool in rank group 1. With one mkckdvol command, volumes for one LCU can be defined.
 
Important: You can configure a volume to belong to a certain resource group by using the -resgrp <RG_ID> flag in the mkckdvol command. For more information, see IBM System Storage DS8000 Copy Services Scope Management and Resource Groups, REDP-4758.
Defining thin-provisioned extent space efficient CKD volumes
The DS8900F supports thin-provisioned volumes. A thin-provisioned volume is created by the DS CLI by specifying the SAM of ESE for a volume. This process is done with the -sam ese option of the mkckdvol command, as shown in Example 10-61.
Example 10-61 Creating a thin-provisioned CKD volume
dscli> mkckdvol -extpool p2 -cap 1000 -sam ese BC06
CMUC00021I mkckdvol: CKD Volume BC06 successfully created.
Space release of thin-provisioned ESE CKD volumes
It is possible to release space at an extent level for CKD volumes. This feature is enabled by the z/OS utility DFSMSdss, which performs the release operation. DFSMSdss includes a parameter, SPACERel, with its options. A corresponding IBM RACF® FACILITY class profile provides protection as well. It is available on z/OS V2.1 and z/OS V2.2 with Program Temporary Fix (PTF) OA50675.
More DS CLI commands are available to control and protect the space in an extent pool for thin-provisioned volumes. One of these commands, the mksestg command, reserves space for thin-provisioned volumes. For more information about thin-provisioning, see IBM DS8880 Thin Provisioning (Updated for Release 8.5), REDP-5343.
Storage pool striping
When a volume is created, you can choose how the volume is allocated in an extent pool with several ranks. The extents of a volume can be kept together in one rank (if enough free space exists on that rank). The next rank is used when the next volume is created. This allocation method is called rotate volumes.
You can also specify that you want the extents of the volume to be evenly distributed across all ranks within the extent pool. This allocation method is called rotate extents.
 
Rotate extents: For the DS8900F, the default allocation policy is rotate extents.
The EAM is specified with the -eam rotateexts or the -eam rotatevols option of the mkckdvol command (Example 10-62).
Example 10-62 Creating a CKD volume with extent pool striping
dscli> mkckdvol -extpool p3 -cap 10017 -name CKD_EAV1_#h -eam rotateexts BD00-BD03
CMUC00021I mkckdvol: CKD Volume BD00 successfully created.
CMUC00021I mkckdvol: CKD Volume BD01 successfully created.
CMUC00021I mkckdvol: CKD Volume BD02 successfully created.
CMUC00021I mkckdvol: CKD Volume BD03 successfully created.
The showckdvol command with the -rank option (Example 10-63) shows that the volume that was created is distributed across two ranks. It also displays how many extents on each rank were allocated for this volume. In this example, the pool P3 uses small 21-cylinder CKD extents.
Example 10-63 Obtaining information about a striped CKD volume
dscli> showckdvol -rank BD00
Name CKD_EAV1_BD00
ID BD00
accstate Online
datastate Normal
configstate Normal
deviceMTM 3390-9
volser -
datatype 3390
voltype CKD Base
orgbvols -
addrgrp B
extpool P3
exts 477
cap (cyl) 10017
cap (10^9B) 8.5
cap (2^30B) 7.9
ranks 2
sam Standard
repcapalloc -
eam rotateexts
reqcap (cyl) 10017
cap (Mod1) 9.0
realextents 477
virtualextents 2
realcap (cyl) 10017
migrating 0
migratingcap (cyl) 0
perfgrp PG0
migratingfrom -
resgrp RG0
tierassignstatus Unknown
tierassignerror -
tierassignorder Unknown
tierassigntarget Unknown
%tierassigned 0
etmonpauseremain -
etmonitorreset unknown
safeguardedcap (cyl) -
safeguardedloc -
usedsafeguardedcap (cyl) -
safeguarded no
SGC Recovered no
==============Rank extents==============
rank extents capacity (MiB/cyl) metadata
========================================
R2 239 5019 no
R3 238 4998 yes
Dynamic Volume Expansion
A volume can be expanded without removing the data within the volume. You can specify a new capacity by using the chckdvol command, as shown in Example 10-64. The new capacity must be larger than the previous capacity. You cannot shrink the volume.
Example 10-64 Expanding a striped CKD volume
dscli> chckdvol -cap 30051 BD00
CMUC00332W chckdvol: Some host operating systems do not support changing the volume size. Data can be at risk if the host does not support this action. Are you sure that you want to resize the volume? [Y/N]: y
CMUC00022I chckdvol: CKD Volume BD00 successfully modified.
Because the original volume used the rotateexts attribute, the additional extents are also striped, as shown in Example 10-65. In this example, the pool P3 is using small 21-cylinder CKD extents.
Example 10-65 Checking the status of an expanded CKD volume
dscli> showckdvol -rank BD00
Name CKD_EAV1_BD00
ID BD00
accstate Online
datastate Normal
configstate Normal
deviceMTM 3390-9
volser -
datatype 3390
voltype CKD Base
orgbvols -
addrgrp B
extpool P3
exts 1431
cap (cyl) 30051
cap (10^9B) 25.5
cap (2^30B) 23.8
ranks 2
sam Standard
repcapalloc -
eam rotateexts
reqcap (cyl) 30051
cap (Mod1) 27.0
realextents 1431
virtualextents 4
realcap (cyl) 30051
migrating 0
migratingcap (cyl) 0
perfgrp PG0
migratingfrom -
resgrp RG0
tierassignstatus Unknown
tierassignerror -
tierassignorder Unknown
tierassigntarget Unknown
%tierassigned 0
etmonpauseremain -
etmonitorreset unknown
safeguardedcap (cyl) -
safeguardedloc -
usedsafeguardedcap (cyl) -
safeguarded no
SGC Recovered no
==============Rank extents==============
rank extents capacity (MiB/cyl) metadata
========================================
R2 716 15036 yes
R3 715 15015 yes
 
Important: Before you can expand a volume, you first must delete all CS relationships for that volume. Also, you cannot specify both -cap and -datatype in the same chckdvol command.
It is possible to expand a 3390 Model 9 volume to a 3390 Model A. Expand the volume by specifying new capacity for an existing Model 9 volume. When you increase the size of a 3390-9 volume beyond 65,520 cylinders, its device type automatically changes to 3390-A.
 
Important: A 3390 Model A can be used only in z/OS V1.10 (depending on the size of the volume) and later, as shown in Example 10-66.
Example 10-66 Expanding a 3390 to a 3390-A
*** Command to show CKD volume definition before expansion:
 
dscli> showckdvol -rank BD01
Name CKD_EAV1_BD01
ID BD01
accstate Online
datastate Normal
configstate Normal
deviceMTM 3390-9
volser -
datatype 3390
voltype CKD Base
orgbvols -
addrgrp B
extpool P3
exts 477
cap (cyl) 10017
cap (10^9B) 8.5
cap (2^30B) 7.9
ranks 2
sam Standard
repcapalloc -
eam rotateexts
reqcap (cyl) 10017
cap (Mod1) 9.0
realextents 477
virtualextents 2
realcap (cyl) 10017
migrating 0
migratingcap (cyl) 0
perfgrp PG0
migratingfrom -
resgrp RG0
tierassignstatus Unknown
tierassignerror -
tierassignorder Unknown
tierassigntarget Unknown
%tierassigned 0
etmonpauseremain -
etmonitorreset unknown
safeguardedcap (cyl) -
safeguardedloc -
usedsafeguardedcap (cyl) -
safeguarded no
SGC Recovered no
==============Rank extents==============
rank extents capacity (MiB/cyl) metadata
========================================
R2 239 5019 no
R3 238 4998 yes
 
*** Command to expand CKD volume from 3390-9 to 3390-A:
 
dscli> chckdvol -cap 262668 BD01
 
CMUC00332W chckdvol: Some host operating systems do not support changing the volume size. Data can be at risk if the host does not support this action. Are you sure that you want to resize the volume? [Y/N]: y
CMUC00022I chckdvol: CKD Volume BD01 successfully modified.
 
*** Command to show CKD volume definition after expansion:
 
dscli> showckdvol -rank BD01
Name CKD_EAV1_BD01
ID BD01
accstate Online
datastate Normal
configstate Normal
deviceMTM 3390-A
volser -
datatype 3390-A
voltype CKD Base
orgbvols -
addrgrp B
extpool P3
exts 12508
cap (cyl) 262668
cap (10^9B) 223.3
cap (2^30B) 207.9
ranks 2
sam Standard
repcapalloc -
eam rotateexts
reqcap (cyl) 262668
cap (Mod1) 236.0
realextents 12508
virtualextents 25
realcap (cyl) 262668
migrating 0
migratingcap (cyl) 0
perfgrp PG0
migratingfrom -
resgrp RG0
tierassignstatus Unknown
tierassignerror -
tierassignorder Unknown
tierassigntarget Unknown
%tierassigned 0
etmonpauseremain -
etmonitorreset unknown
safeguardedcap (cyl) -
safeguardedloc -
usedsafeguardedcap (cyl) -
safeguarded no
SGC Recovered no
==============Rank extents==============
rank extents capacity (MiB/cyl) metadata
========================================
R2 6254 131334 yes
R3 6254 131334 yes
You cannot reduce the size of a volume. If you try to reduce the size, an error message is displayed.
CKD volumes can be deleted by using the rmckdvol command. FB volumes can be deleted by using the rmfbvol command.
The command includes a capability to prevent the accidental deletion of volumes that are in use. A CKD volume is considered in use if it participates in a CS relationship, or if the IBM Z path mask indicates that the volume is in a grouped state or online to any host system.
If the -force parameter is not specified with the command, volumes that are in use are not deleted. If multiple volumes are specified and several volumes are in use and several volumes are not, the volumes that are not in use are deleted.
If the -force parameter is specified on the command, the volumes are deleted without checking to see whether they are in use.
Example 10-67 shows an attempt to delete two volumes, BD02 and BD03. Volume BD02 is online on a host. Volume BD03 is not online on any host and not in a CS relationship. The rmckdvol BD02-BD03 command deletes only volume BD03, which is offline. To delete volume BD02, use the -force parameter.
Example 10-67 Deleting CKD volumes
dscli> lsckdvol BD02-BD03
Name ID accstate datastate configstate deviceMTM voltype orgbvols extpool cap (cyl)
===============================================================================================
CKD_EAV1_BD02 BD02 Online Normal Normal 3390-9 CKD Base - P3 10017
CKD_EAV1_BD03 BD03 Online Normal Normal 3390-9 CKD Base - P3 10017
 
dscli> rmckdvol -quiet BD02-BD03
CMUN02947E rmckdvol: BD02: The Delete logical volume task cannot be initiated because the
Allow Host Pre-check Control Switch is set to true and the volume that you have specified
is online to a host.
CMUC00024I rmckdvol: CKD volume BD03 successfully deleted.
 
dscli> lsckdvol BD02-BD03
Name ID accstate datastate configstate deviceMTM voltype orgbvols extpool cap (cyl)
===============================================================================================
CKD_EAV1_BD02 BD02 Online Normal Normal 3390-9 CKD Base - P3 10017
 
dscli> rmckdvol -force BD02
CMUC00023W rmckdvol: The alias volumes associated with a CKD base volume are automatically deleted before deletion of the CKD base volume. Are you sure you want to delete CKD volume BD02? [Y/N]: y
CMUC00024I rmckdvol: CKD volume BD02 successfully deleted.
 
dscli> lsckdvol BD02-BD03
CMUC00234I lsckdvol: No CKD Volume found.
Reinitializing online space-efficient CKD volumes
You can use the initckdvol command to reinitialize online space-efficient CKD volumes.
The command includes options to prevent the accidental reinitialization of volumes that are in use. A CKD volume is considered to be in use if it is participating in a CS relationship or if the IBM Z system path mask indicates that the volume is in a grouped state or online to any host system. All data is lost when this command is used.
Volume reinitialization is controlled by the -action releasespace and -force parameters in the following manner:
The releasespace parameter is used to free all extents and tracks that are associated with the specified volume so they can be reused by other space efficient volumes.
The -force parameter is required in order for the initckdvol command to reinitialize the specified volume.
When both of these parameters are used, the user is prompted with a Y/N response in order for the command to proceed with the reinitialization process, as shown in Example 10-68.
Example 10-68 An initckdvol command example
dscli> initckdvol -action releasespace -force BD06
CMUC00338W initckdvol: Are you sure that you want to free all extents and lose the data associated with CKD volume BD06? [Y/N]:y
CMUC00340I initckdvol: BD06: The command releasespace has completed successfully.
10.4.5 Resource groups
The resource group feature is designed for multitenancy environments. The resources are volumes, LCUs, and LSSs, and they are used for access control for CS functions only.
For more information about resource groups, see IBM System Storage DS8000 Copy Services Scope Management and Resource Groups, REDP-4758.
10.4.6 IBM Easy Tier
Easy Tier is designed to automate data placement throughout the storage pool. It enables the system, without disrupting applications, to relocate data (at the extent level) across up to three storage tiers. The process is fully automated. Easy Tier also automatically rebalances extents among ranks within the same tier, removing the workload skew between ranks, even within homogeneous and single-tier extent pools.
Easy Tier Heat Map Transfer (HMT) allows the transfer of Easy Tier heat maps from primary to auxiliary storage sites.
For more information about Easy Tier, see the following publications:
IBM DS8000 Easy Tier (Updated for DS8000 R9.0), REDP-4667
IBM DS8870 Easy Tier Heat Map Transfer, REDP-5015
10.5 Metrics with DS CLI
This section describes several command examples from the DS CLI that analyze the performance metrics from different levels in a storage unit. The DS GUI also provides new capabilities for performance monitoring, as described in 9.14, “Performance monitoring” on page 322.
 
 
Important: The help command shows specific information about each of the metrics.
Performance metrics: All performance metrics are an accumulation starting from the most recent counter-wrap or counter-reset. The performance counters are reset on the following occurrences:
When the storage unit is turned on.
When a server fails and the failover and fallback sequence is run.
Example 10-69 shows an example of the showfbvol command. This command displays the detailed properties for an individual volume and includes a -metrics parameter that returns the performance counter-values for a specific volume ID.
Example 10-69 Metrics for a specific fixed-block volume
dscli> showfbvol -metrics 000A
ID 000A
Date 10/10/2019 14:19:03 CEST
normrdrqts 7129645
normrdhits 4725660
normwritereq 25533232
normwritehits 25533232
seqreadreqs 11746083
seqreadhits 11578653
seqwritereq 3994518
seqwritehits 3994518
cachfwrreqs 0
cachfwrhits 0
cachefwreqs 0
cachfwhits 0
inbcachload 0
bypasscach 0
DASDtrans 4019246
seqDASDtrans 5825774
cachetrans 14933989
NVSspadel 0
normwriteops 0
seqwriteops 0
reccachemis 1314738
qwriteprots 0
CKDirtrkac 0
CKDirtrkhits 0
cachspdelay 0
timelowifact 0
thread 9848943
phwrite 820103
phbyteread 4269617
phbytewrite 7453693
recmoreads 2104182
sfiletrkreads 0
contamwrts 0
PPRCtrks 0
NVSspallo 29527749
timephread 508529
timephwrite 169907
byteread 4254384
bytewrit 7690334
timbered 336121
typewrite 1418265
zHPFRead -
zHPFWrite -
zHPFPrefetchReq 0
zHPFPrefetchHit 0
GMCollisionsSidefileCount 0
GMCollisionsSendSyncCount 0
dscli>
Example 10-70 show an example of the showckdvol command. This command displays the detailed properties for an individual volume and includes a -metrics parameter that returns the performance counter-values for a specific volume ID.
Example 10-70 Metrics for a specific CKD volume
dscli> showckdvol -metrics 7b3d
ID 7B3D
normrdrqts 9
normrdhits 9
normwritereq 0
normwritehits 0
seqreadreqs 0
seqreadhits 0
seqwritereq 0
seqwritehits 0
cachfwrreqs 0
cachfwrhits 0
cachefwreqs 0
cachfwhits 0
inbcachload 0
bypasscach 0
DASDtrans 201
seqDASDtrans 0
cachetrans 1
NVSspadel 0
normwriteops 0
seqwriteops 0
reccachemis 0
qwriteprots 0
CKDirtrkac 9
CKDirtrkhits 9
cachspdelay 0
timelowifact 0
phread 201
phwrite 1
phbyteread 49
phbytewrite 0
recmoreads 0
sfiletrkreads 0
contamwrts 0
PPRCtrks 0
NVSspallo 0
timephread 90
timephwrite 0
byteread 0
bytewrit 0
timeread 0
timewrite 0
zHPFRead 0
zHPFWrite 0
zHPFPrefetchReq 0
zHPFPrefetchHit 0
GMCollisionsSidefileCount 0
GMCollisionsSendSyncCount 0
Example 10-71 shows an example of the output of the showrank command. This command generates two types of reports. One report displays the detailed properties of a specified rank, and the other report displays the performance metrics of a specified rank by using the -metrics parameter.
Example 10-71 Metrics for a specific rank
dscli> showrank -metrics R0
ID R0
Date 10/10/2019 14:32:46 CEST
byteread 8175947
bytewrit 29508105
Reads 17783022
Writes 17946281
timeread 1105024
timewrite 19434052
dataencrypted yes
timeload 8206273
dscli>
Example 10-72 shows an example of the showioport command. This command shows the properties of a specified I/O port and the performance metrics by using the -metrics parameter. Monitoring the I/O ports is one of the most important tasks of the system administrator. The I/O port is where the HBAs, SAN, and DS8900F exchange information. If one of these components has problems because of hardware or configuration issues, all of the other components are affected.
Example 10-72 Metrics for a specific 32 Gbps I/O port
dscli> showioport -metrics I0032
ID I0032
Date 10/12/2019 09:33:38 CEST
byteread (FICON/ESCON) 0
bytewrit (FICON/ESCON) 0
Reads (FICON/ESCON) 0
Writes (FICON/ESCON) 0
timeread (FICON/ESCON) 0
timewrite (FICON/ESCON) 0
CmdRetries (FICON) 0
TransferReady (FICON) 0
Logins (FC) 6
SecCapableLogins (FC) 0
AuthLogins (FC) 0
EncryptedLogins (FC) 0
bytewrit (PPRC) 0
byteread (PPRC) 0
Writes (PPRC) 0
Reads (PPRC) 0
timewrite (PPRC) 0
timeread (PPRC) 0
byteread (SCSI) 19858294
bytewrit (SCSI) 8510622
Reads (SCSI) 323762119
Writes (SCSI) 3058836
timeread (SCSI) 585195
timewrite (SCSI) 1750344
LinkFailErr (FC) 0
LossSyncErr (FC) 0
LossSigErr (FC) 0
PrimSeqErr (FC) 0
InvTxWordErr (FC) 0
CRCErr (FC) 0
LRSent (FC) 0
LRRec (FC) 0
IllegalFrame (FC) 0
OutOrdData (FC) 0
OutOrdACK (FC) 0
DupFrame (FC) 0
InvRelOffset (FC) 0
SeqTimeout (FC) 0
BitErrRate (FC) 0
RcvBufZero (FC) 0
SndBufZero (FC) 0
RetQFullBusy (FC) 0
ExchOverrun (FC) 0
ExchCntHigh (FC) 0
ExchRemAbort (FC) 0
CurrentSpeed (FC) 8 Gbps
%UtilizeCPU (FC) 2 Dedicated
TxPower(RDP) -1.7 dBm(681.2 uW)
RxPower(RDP) -3.5 dBm(446.8 uW)
TransceiverTemp(RDP) 40 C
SupplyVolt(RDP) 3367.0 mV
TxBiasCurrent(RDP) 6.55 mA
ConnectorType(RDP) SFP+
TxType(RDP) Laser-SW
FECStatus(RDP) Inactive
UncorrectedBlks(RDP) -
CorrectedBlks(RDP) -
The output of the showioport command includes several metric counters. For example, the %UtilizeCPU metric for the CPU utilization of the HBA and the CurrentSpeed that the port uses might be useful information.
Example 10-72 on page 393 shows the many important metrics that are returned by the command. It provides the performance counters of the port and the FC link error counters. The FC link error counters are used to determine the health of the overall communication.
The Security Login Counts metric includes the following metrics:
Logins: The number of remote hosts or peer N_ports logged in to the specified I/O port.
SecCapableLogins: The number of logins that are capable of FC security protocols. If the port is security-enabled, the remote ports are expected to perform authentication.
AuthLogins: The number of security capable logins that negotiated link authentication.
EncryptedLogins: The number of remote hosts or peer N_ports that are logged in to the specified port. These ports successfully authenticated and negotiated an encryption algorithm for the IBM Fibre Channel Endpoint Security function.
The following groups of errors point to specific problem areas:
Any nonzero figure in the counters LinkFailErr, LossSyncErr, LossSigErr, and PrimSeqErr indicates that unstable HMCs might be attached to the SAN. These unstable HBAs log in to and log out of the SAN, creating name server congestion and performance degradation.
If the InvTxWordErr counter increases by more than 100 each day, the port is receiving light from a source that is not a small form-factor pluggable (SFP). The cable that is connected to the port is not covered at the end or the I/O port is not covered by a cap.
The CRCErr counter shows the errors that occur between the last sending SFP in the SAN and the receiving port of the DS8900F. These errors do not appear in any other place in the data center. To resolve this issue, replace the cable that is connected to the port or the SFP in the SAN.
The link reset counters LRSent and LRRec also suggest hardware defects in the SAN. These errors must be investigated.
The counters IllegalFrame, OutOrdData, OutOrdACK, DupFrame, InvRelOffset, SeqTimeout, and BitErrRate point to congestion in the SAN. These counters can be influenced only by configuration changes in the SAN.
The 16 and 32 Gbps host adapters implement the T11 Read Diagnostic Parameters (RDP) standard and provide extra details, such as optical signal strength, error counters, and other information that is crucial to determining the quality of the link. For example, the cable - connector path (including the cleanliness of the optical connectors) is diagnosed by calculating the RxPower (RDP)/TxPower (RDP) ratio. Receivers rarely fail, and the receiver sensitivity does not change. Therefore, if the receiver optical power is too low for good signal reception and the calculated RxPower (RDP)/TxPower (RDP) ratio is too low, clean the connector. If this RX/TX ratio continues to be low, the cable might be broken.
The following ioport command options were added to improve the RDP diagnostic capabilities:
 – showioport -rdp Ixxxx
 • Shows detailed RDP information for both the local port and the attached switched port or directly connected port.
 • The information that is shown is the last time that it was obtained from the SFP for the local port or from the attached port that uses RDP.
 • DS8900F 16 Gbps and 32 Gbps FC host adapters read the SFPs each hour and send an RDP command to the attached port every 4 hours.
 – setioport –update rdp Ixxxx
 • Causes the port to read the local SFP and also send an RDP command to the attached port.
 • Attached port information currency depends on the implementation.
Example 10-73 provides an example of the RDP status.
Example 10-73 Full output for the showioport -rdp Ixxxx command for a specific I/O port
dscli> showioport -rdp I0032
ID I0032
WWPN 5005076309039462
Attached WWPN 200D00051EF0EC72
Physical Type FC-FS-3
Link Failure Error 0
Loss of sync Error 0
Loss of Signal Error 0
Primitive Sequence Error 0
Invalid Transmission Word Error 0
CRC Error 0
FEC Status Inactive
Uncorrected Blocks -
Corrected Blocks -
Port Speed Capabilities 8GFC 16GFC 32GFC
Port Operating Speed 8GFC
Advertised B-B Credit 90
Attached Port B-B Credit 8
Nominal RTT Link Latency Unknown
Connector Type SFP+
Tx Type Short Wave Laser
Transceiver Temperature 39.9 C [Operating Range -128 - +128 C]
Tx Bias Current 6.5 mAmps [Operating Range 0 - 131 mAmps]
Transceiver Supply Voltage 3364.4 mV [Operating Range 0 - 3600 mVolts]
Rx Power 448.8 uW(-3.5 dBm) [Operating Range 0 - 6550 uW]
Tx Power 681.3 uW(-1.7 dBm) [Operating Range 0 - 6550 uW]
Last SFP Read time 10/12/2019 09:48:04 CEST
======SFP Parameters Alarm Levels=======
Element High Warning Low Warning High Alarm Low Alarm
========================================================================
Transceiver Temperature 0 0 0 0
Tx Bias Current 0 0 0 0
Transceiver Supply Voltage 0 0 0 0
Tx Power 0 0 0 0
Rx Power 0 0 0 0
============================Attached Port=============================
ID N/A
WWPN 200D00051EF0EC72
Attached WWPN 5005076309039462
Physical Type FC-FS-3
Link Failure Error 0
Loss of sync Error 3
Loss of Signal Error 2
Primitive Sequence Error 0
Invalid Transmission Word Error 0
CRC Error 0
FEC Status Inactive
Uncorrected Blocks -
Corrected Blocks -
Port Speed Capabilities 1GFC 2GFC 4GFC 8GFC
Port Operating Speed 8GFC
Advertised B-B Credit 0
Attached Port B-B Credit 0
Nominal RTT Link Latency Unknown
Connector Type SFP+
Tx Type Short Wave Laser
Transceiver Temperature 39.0 C [Operating Range -128 - +128 C]
Tx Bias Current 9.0 mAmps [Operating Range 0 - 131 mAmps]
Transceiver Supply Voltage 3281.1 mV [Operating Range 0 - 3600 mVolts]
Rx Power 690.2 uW(-1.6 dBm) [Operating Range 0 - 6550 uW]
Tx Power 479.8 uW(-3.2 dBm) [Operating Range 0 - 6550 uW]
Last SFP Read time 10/12/2019 08:40:30 CEST
======SFP Parameters Alarm Levels=======
Element High Warning Low Warning High Alarm Low Alarm
========================================================================
Transceiver Temperature 0 0 0 0
Tx Bias Current 0 0 0 0
Transceiver Supply Voltage 0 0 0 0
Tx Power 0 0 0 0
Rx Power 0 0 0 0
dscli>
10.5.1 Offload performance data and other parameters
There is an option to offload performance data by using the DS CLI. The command is offloadfile -perfdata. It contains performance data that includes one week of data at 1-minute intervals for the system, arrays, pools, and I/O port. Here is the list of parameters for the offloadfile command:
-auditlog Exports one file that contains the audit log for the Management Console (MC) server.
-sdocert Exports the IBM Certified Secure Data Overwrite (SDO) certificate for each storage facility.
-etdata Exports two files that contain the Easy Tier summary data.
-config Offloads two files: One file contains the advanced settings, and another file contains the Install Corrective Service (ICS) settings. Only one file set parameter must be specified.
-pepackage Generates a PE package that is sent to IBM, but only if you do not specify -showstatus. Specify only one file set.
-statesave Generates a file that is sent to IBM, but only if you do not specify -showstatus or -list. Specify only one file set.
-odd Generates a file that is sent to IBM, but only if you do not specify -showstatus or -list. Specify only one file set.
-perfdata Downloads the performance summary comma-separated values (CSV) file.
-sysdata Downloads the system summary file. Specify only one file set.
-etdataCSV Downloads a compressed file that contains one or more Easy Tier CSV files and an Excel tool that is used for the CSV files. (The CSV files are Microsoft Excel files.) The compressed file is downloaded to a directory that you specify. Specify only one file set.
-fcdata Exports the Fibre Channel Connectivity report.
 
Restriction: The offloadfile command is not supported by the embedded DS CLI.
The result of the command in Example 10-74 is a .csv file with detailed information. For more information, see Figure 10-9.
Example 10-74 The offloadfile command that is issued from DS CLI
dscli> offloadfile -perfdata c: emp
CMUC00428I offloadfile: The perfdata file has been offloaded to c: empFORMATTED_PERF_SAMPLES_75HAL91.csv.
dscli>
Figure 10-9 Snapshot from the -perfdata csv file
10.6 Private network security commands
DS CLI commands are available that can be used to manage network security on the DS8900F. With the introduction of support for National Institute of Standards and Technology (NIST) 800-131a compliance, new commands were introduced to enable compliance support. Network security includes Transport Layer Security (TLS) to protect application access.
The following commands are available to manage TLS security settings:
manageaccess
The manageaccess command is used to manage the security protocol access settings of an HMC for all communications to and from the DS8900F. It can also control port 1750 access to the network interface server for pre-Gen 2 certificate access.
It is primarily used to manage server access in the HMC, which includes DS GUI, Web User Interface (WUI) and network interface servers.
Each of these accesses can be set to an access level of either Legacy or 800131a. When the access is set to the 800131a level, it is NIST SP 800-131a-compliant.
showaccess
This command displays the current setting for each access that is managed with the manageaccess command. It also displays the remote service access settings that are provided with the lsaccess command.
The following security commands are available to manage remote service access settings:
chaccess
Use the chaccess command to change the following settings of an HMC:
 – Enable and disable the command-line shell access to the HMC.
 – Enable and disable the WUI access on the HMC.
 – Enable and disable Assist On-site (AOS) or IBM Remote Support Center (RSC) access to the HMC.
 
Important:
This command affects service access only and does not change access to the system by using the DS CLI or DS Storage Manager.
Only users with administrator authority can access this command.
lsaccess
The lsaccess command displays the access settings of an HMC. If you add the -l parameter, the command also displays the AOS or RSC status. If AOS or RSC is active, an AOS or RSC connection shows as enabled. An AOS or RSC connection is used only for remote support purposes. For more information, see Example 10-75.
Example 10-75 The lsaccess command and example output
dscli> lsaccess -l
hmc cmdline wui modem cim aos rsc vpn
===============================================================
hmc1 enabled enabled disabled disabled enabled enabled disabled
hmc2 enabled enabled disabled disabled enabled enabled disabled
The following commands enable the TLS protocol for secure syslog traffic. TLS must be enabled before configuring all syslog servers. If you specify TLS, all syslog servers configurations use the same protocol and certificates.
mksyslogserver
Example 10-76 shows the new DS CLI command mksyslogserver, which configures syslogserver as TLS-enabled. The certificate authority (CA) certificate, HMC Certificate, and HMC private key locations are required when configuring the first syslogserver.
Example 10-76 Enabling TLS for secure syslog traffic
dscli> mksyslogserver -addr 9.100.10.7 -protocol tls -cacert /Users/heping/ut/syslog/ca.pem -hmccert /Users/heping/ut/syslog/cert.pem -key /Users/heping/ut/syslog/key.pem test
CMUC00508I mksyslogserver: The syslog server machine.example.net has been created.
lssyslogserver -l
The lssyslogserver -l displays the list of all syslog servers and their attributes, as shown in Example 10-77.
Example 10-77 The lssyslogserver -l command and a sample output
dscli> lssyslogserver -l
name IP address port state access protocol type HMC
======================================================================
daisy 9.10.100.127 514 active online tls audit,message,event 1
daisy 9.10.100.127 514 active online tls audit,message,event 2
 
Important: For more information about security issues and overall security management to implement NIST 800-131a compliance, see IBM DS8870 and NIST SP 800-131a Compliance, REDP-5069.
The following DS CLI commands specify a custom certificate for communication between the encryption key servers (typically IBM Security Key Lifecycle Manager and the storage system:
managekeygrp -action -importcert
Specifies the customer-generated certificate to import in Public-Key Cryptography Standard (PKCS) #12 format, as shown in Example 10-78.
Example 10-78 The managekeygrp command for importing a custom certificate
dscli> managekeygrp -action importcert -loc /home/hscroot/rashmic/da6.p12 -pw blah 1
CMUC00489I managekeygrp: The certificate for encryption group 1 has been imported.
managekeygrp -action updatecert
When specified, the option -certType CUSTOMER updates an IBM supplied Gen 1 or Gen 2 certificate to a customer-generated certificate, as shown in Example 10-79. For more information about the encryption and DS8000 certificates, see IBM DS8000 Encryption for Data at Rest, Transparent Cloud Tiering, and Endpoint Security (DS8000 Release 9.2), REDP-4500.
Example 10-79 The managekeygrp command for updating a custom certificate
dscli> managekeygrp -action updatecert -certType CUSTOMER -key data 1
CMUC00472I managekeygrp: The certificate for encryption group 1 has been updated.
For more information, see IBM DS8000 Series Command-Line Interface User's Guide, SC27-9562.
10.7 Copy Services commands
More DS CLI commands are available, and many of these commands are used for the management of CS, such as the FlashCopy, Metro Mirror (MM), and Global Mirror (GM) commands.
These commands are not described in this chapter. For more information about these commands, see IBM DS8000 Copy Services: Updated for IBM DS8000 Release 9.1, SG24-8367.
10.8 Earlier DS CLI commands and scripts
As versions of the DS8900F code evolve, new commands are introduced that are supported by the DS CLI. Additionally, in some cases, older commands are adjusted or changed to support new functions. To ensure continuity for any scripts and programming customers might have created by using these older commands, the DS CLI still supports many of these commands even though they might no longer be documented in the DS CLI Command Reference or available any longer with the DSI CLI help command, as shown in Example 10-80.
Example 10-80 Command help
dscli> help lsddm
Help page for lsddm is not available
dscli>
Even though the command may no longer be referenced in the help pages of the DS CLI, the command is still supported, as shown in Example 10-81.
Example 10-81 Support for older commands
dscli> lsddm
Date/Time: June 27, 2022 9:11:04 PM CEST IBM DSCLI Version: 7.9.30.154 DS: -
ID DA Pair dkcap (10^9B) dkuse arsite State
===============================================================================
IBM.2107-D04-4N014/R1-P1-D1 11 1920.0 array member S3 Normal
IBM.2107-D04-4N014/R1-P1-D2 11 1920.0 array member S3 Normal
IBM.2107-D04-4N014/R1-P1-D3 11 1920.0 array member S3 Normal
IBM.2107-D04-4N014/R1-P1-D4 11 1920.0 array member S3 Normal
Some new commands and their older equivalents are shown in Table 10-1.
Table 10-1 DS CLI new and old commands
New command
Output
Old command
lsdrive
Lists drives.
lsddm
lsstgenclosure
Lists storage enclosures.
lsstgencl
lshacard
Lists host adapters.
lshba
lsdacard
Lists device adapter (DA).
lsda
lspnode
Lists processor nodes.
N/A
lshmc
Lists HMCs.
N/A
lsioenclosure
Lists I/O enclosures.
N/A
lspciecard
Lists PCIe cards.
N/A
10.9 For more information
For more information about the topics that were described in this chapter, see the following resources:
For more information about the CS configuration, see IBM DS8000 Series Command-Line Interface User’s Guide, SC27-9562.
For more information about DS CLI commands that relate to disk encryption, see IBM DS8000 Encryption for Data at Rest, Transparent Cloud Tiering, and Endpoint Security (DS8000 Release 9.2), REDP-4500.
For more information about thin-provisioning, see IBM DS8880 Thin Provisioning (Updated for Release 8.5), REDP-5343.
For more information about DS CLI commands that relate to Easy Tier, see IBM DS8000 Easy Tier (Updated for DS8000 R9.0), REDP-4667.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.149.45