Configuration with the data storage command-line interface
This chapter describes how to configure storage on the IBM DS8880 by using the data storage command-line interface (DS CLI).
This chapter covers the following topics:
12.1 DS command-line interface 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 use and setup, see the IBM DS8000 Series Command-Line Interface User’s Guide, SC27-8526.
The following list highlights a few of the functions that you can perform with the DS CLI:
Create user IDs that can be used with the graphical user interface (GUI) and the DS CLI.
Manage user ID passwords.
Install activation keys for licensed features.
Manage storage complexes and units.
Configure and manage Storage Facility Images.
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 configuration that is used by the storage unit.
Create, modify, or delete Copy Services 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 latest 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.
12.1.1 Supported operating systems for the DS CLI
The DS CLI can be installed on many operating systems:
AIX
HP-UX
Red Hat Linux
SUSE Linux
IBM i
Oracle Solaris
HP OpenVMS
VMware ESX
Microsoft Windows
 
Important: For information about the currently supported operating systems, specific preinstallation concerns, and installation file locations, see the IBM System Storage DS8000 IBM Knowledge Center at this website:
For more information, see the IBM Systems Storage DS8000 Series: Command-Line Interface User’s Guide, SC27-8526.
Before you can install the DS CLI, ensure that at least Java version 1.6 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 installed.
The installation process can be performed through a shell, such as the bash or Korn shell, or 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.
12.1.2 Installation hints and tips
In some cases and often on Windows systems with a non-English Windows version, you might get an error when trying to install the DSCLI. Figure 12-1 shows an example when trying to install the DSCLI on the German version of Windows.
Figure 12-1 DSCLI installation error when java.exe is not found
It says that when loading the Java-VM, there was a Windows error 2. This error means that the java.exe could not be found. For some reason, the DSCLI cannot find the Java code despite the fact that Java is available and path variables set.
If this error occurs, you must explicitly specify where to find the java.exe file. Open a CMD window and go to the subdirectory, where the DSCLI dsclisetup.exe resides.
In this example, the path is E:IMAGESHMCDisk1InstDataWindowsNoVM>.
When you enter the dsclisetup.exe command, you have to add the LAX_VM parameter and specify the full path to the java.exe.
Here you might encounter another problem with non-English Windows. When you locate the java.exe file in your Browser, you might see a path as shown in Figure 12-2.
Figure 12-2 Location of the java.exe
You might think that C:Programme (x86)Javajre1.8.0.74in is the path to your java.exe file, but it is not. The directory C:Programme (x86) does not exist as shown in Example 12-1.
Example 12-1 System cannot find directory
C:>cd "Programme (x86)"
Das System kann den angegebenen Pfad nicht finden.
Although Windows shows a national translation in the Browser for the path, it internally uses the English version of the path. Therefore, the command shown in Example 12-2 works.
Example 12-2 Using the Windows internal path name
C:>cd "Program Files (x86)"
C:Program Files (x86)>
To get the correct path to use in the command line, click at the paths in the Browser as shown in Figure 12-3.
Figure 12-3 Windows internal path to java.exe
Copy this path and add java.exe to it, and run the command shown in Example 12-3 in the Windows command window.
Example 12-3 DSCLI installation with path to java.exe
E:IMAGESHMCDisk1InstDataWindowsNoVM>dsclisetup.exe LAX_VM "C:Program Files (x86)Javajre1.8.0_74injava.exe"
12.1.3 Installing the DSCLI on a Windows 10 system
To install the DSCLI on a Windows 10 system, you have to specify that you want to install it in Windows 7 or Windows 8 compatibility mode. On an English Windows, you can just right-click and select Troubleshoot compatibility and then the compatibility mode.
On a non-English Windows, you have to specify the path to your java.exe file. One way to do both is to first create a shortcut to dsclisetup.exe on your desktop (or anywhere else).
On the desktop, right-click the icon and select Properties (or Eigenschaften, in this example on the German version of Windows) and add the LAX_VM parameter with the full path to java.exe as shown in Figure 12-4.
Figure 12-4 Modify shortcut and add LAX_VM parameter with path to java.exe
Now you can right-click the desktop shortcut to dsclisetup.exe with the correct path and select the Troubleshoot compatibility equivalent, which on the German Windows system is Behandeln von Compatibilitaetsproblemen, and select the Windows 7 or Windows 8 compatibility mode.
12.1.4 DS CLI version
The ver command displays the version of the DS CLI client program, the Hardware Management Console (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, licensed machine code, and the code bundle. You cannot use the -l and -s parameters together. See Example 12-4.
-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 12-4 DS CLI version command
dscli> ver -l
Date/Time: May 18, 2016 3:33:40 PM PDT IBM DSCLI Version: 7.8.10.321 DS: -
DSCLI 7.8.10.321
StorageManager 8.8.3.0.20160511.1
HMC DSCLI 7.8.10.347
================Version=================
Storage Image LMC Bundle Version
==========================================
IBM.2107-75YZ551 7.8.10.347 88.10.96.0
12.1.5 User accounts
DS CLI communicates with the DS8880 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 (ESSNI), which is also referred to as the DS Network Interface (DSNI) on the HMC. The same user IDs are used for DS CLI and DS GUI access. For more information about user accounts, see 8.5, “Management Console user management” on page 212. 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.
12.1.6 User management by using the DS CLI
Apart from the administration user, you might want to define other users, maybe with different authorities.
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 12-5 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 12-5 Use 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 12-6 shows the removal of a user called JaneSmith.
Example 12-6 Remove 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 12-7, 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 12-7 Change a user with chuser
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 12-8 shows a list of three users, including the administrator account.
Example 12-8 Use 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 12-9 lists the details of the user JohnDoe.
Example 12-9 Use 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 12-10 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 12-10 Use 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 12-11 shows changing the expiration to 365 days and five failed login attempts.
Example 12-11 Change 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 12-12 shows that passwords are set to expire in 90 days and that four login attempts are allowed before a user ID is locked.
Example 12-12 Use the showpass command
dscli> showpass
Password Expiration 365 days
Failed Logins Allowed 5
Password Age 0 days
Minimum Length 6
Password History 4
12.1.7 DS CLI profile
To access the DS8880 with the DS CLI, you must provide certain information with the dscli command. At a minimum, the IP address or host name of the DS8880 HMC, a user name, 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 each 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 with 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 7 (and later) 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% usually C:UsersAdministrator
 – UNIX/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 preferred practice to open the default profile and then save it as 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 -cfg file 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
Complete the following steps to edit the profile. 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 12-13.
Example 12-13 Command prompt operation
C:UsersAdministratordscli>cd profile
C:UsersAdministratordscliprofile>notepad dscli.profile
5. The notepad opens and includes the DS CLI profile. Consider adding four lines. Examples of these lines are shown in bold in Example 12-14.
 
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 12-14 DS CLI profile example
# DS CLI Profile
#
# Management Console/Node IP Address(es)
# 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-75ABCD1
hmc1:     10.0.0.250
username: admin
password: passw0rd
Adding the serial number by using the devid parameter and adding the HMC IP address by using the hmc1 parameter are suggested. Not only does this addition help you to avoid mistakes when you use more profiles, but you do not need to specify this parameter for certain dscli commands that require it. Additionally, if you specify the dscli profile for Copy Services usage, the use of the remotedevid parameter is suggested for the same reasons. To determine the ID of a storage system, use the lssi CLI command.
Although adding the username and password parameters simplifies the DS CLI start, generally do not add them because they are an undocumented feature that might not be supported in the future. Also, the password is saved in clear text in the profile file.
Instead, it is better to create an encrypted password file with 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.
 
Important: Be careful if you add multiple devid and HMC entries. Uncomment (or literally, unhash) only 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.
12.1.8 Configuring the DS CLI to use a second HMC
The second HMC can be specified on the command line 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 12-15.
Example 12-15 Use 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
IBM.2107-75DMC11
dscli>
Alternatively, you can modify the following lines in the dscli.profile (or any profile) file:
# Management Console/Node IP Address(es)
# 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 execute Copy Services commands with full redundancy.
 
Two HMCs: If you use two HMCs and you specify only one of them in a DS CLI command (or profile), any changes that you make to users are still replicated onto the other HMC.
12.1.9 Command structure
This section describes the components and structure of a CLI command.
A 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 CLI will perform.
2. Flags: Flags are used to modify the command. They provide more information that directs the 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.
12.1.10 Using the DS CLI application
To issue commands to the DS8880, you must first log in to the DS8880 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. Complete the following steps to use the single-shot mode:
1. At the OS shell prompt, enter the following command:
dscli -hmc1 <hostname or ip address> -user <adm user> -passwd <pwd> <command>
or
dscli -cfg <dscli profile> -pwfile <security file> <command>
 
Important: Avoid embedding the user name and password into the profile. Instead, use the -pwfile command.
2. Wait for the command to process and display the results.
Example 12-16 shows the use of the single-shot command mode.
Example 12-16 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
[ exit status of dscli = 0 ]
 
Important: When you are typing the command, you can use the host name or the IP address of the HMC. It is important to understand that 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 DS8880 for each command.
The interactive command mode provides a history function that simplifies repeating or checking earlier command usage.
Complete the following steps to use the interactive command mode:
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 12-17 shows the use of interactive command mode by using the profile DS8880.profile.
Example 12-17 Interactive command mode
C:Program Files (x86)IBMdscli>dscli -cfg DS8880.profile
 
dscli> lsarraysite -l
Date/Time: November 2, 2015 11:07:31 AM CET IBM DSCLI Version: 7.8.0.376 DS: IBM.2107-75DMC11
arsite DA Pair dkcap (10^9B) diskrpm State Array diskclass encrypt
=======================================================================
S1 0 600.0 10000 Assigned A17 ENT supported
S2 0 600.0 10000 Assigned A18 ENT supported
S3 0 600.0 10000 Assigned A19 ENT supported
S4 0 600.0 10000 Assigned A20 ENT supported
S13 2 4000.0 7200 Assigned A2 NL supported
S14 2 4000.0 7200 Assigned A3 NL supported
S15 2 4000.0 7200 Assigned A4 NL supported
S16 2 400.0 65000 Assigned A0 SSD supported
S17 2 400.0 65000 Assigned A1 SSD supported
S24 10 400.0 65000 Assigned A23 Flash supported
S25 10 400.0 65000 Assigned A24 Flash supported
S26 10 400.0 65000 Assigned A25 Flash supported
S27 10 400.0 65000 Assigned A26 Flash supported
dscli> lssi
Date/Time: November 2, 2015 11:09:46 AM CET IBM DSCLI Version: 7.8.0.376 DS: -
Name ID Storage Unit Model WWNN State ESSNet
============================================================================
- IBM.2107-75DMC11 IBM.2107-75DMC10 981 5005076306FFD33A 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 12-18 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 operating system that you can install the DS CLI on. Only one authentication process is needed to run all of the script commands.
Example 12-18 Example of a DS CLI script file
# Sample ds cli 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 12-19 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 12-18.
Example 12-19 Run a DS CLI file
C:Program Files (x86)IBMdscli>dscli -cfg DS8880.profile -script c:ds8000.script
arsite DA Pair dkcap (10^9B) diskrpm State Array diskclass encrypt
=======================================================================
S13 2 4000.0 7200 Assigned A2 NL supported
S14 2 4000.0 7200 Assigned A3 NL supported
S15 2 4000.0 7200 Assigned A4 NL supported
S16 2 400.0 65000 Assigned A0 SSD supported
S17 2 400.0 65000 Assigned A1 SSD supported
S24 10 400.0 65000 Assigned A23 Flash supported
S25 10 400.0 65000 Assigned A24 Flash supported
S26 10 400.0 65000 Assigned A25 Flash supported
S27 10 400.0 65000 Assigned A26 Flash supported
Array State Data RAIDtype arsite Rank DA Pair DDMcap (10^9B) diskclass encrypt
========================================================================================
A0 Assigned Normal 5 (6+P+S) S16 R0 2 400.0 SSD supported
A1 Assigned Normal 5 (6+P+S) S17 R34 2 400.0 SSD supported
A2 Assigned Normal 6 (5+P+Q+S) S13 R30 2 4000.0 NL supported
A3 Assigned Normal 6 (5+P+Q+S) S14 R3 2 4000.0 NL supported
A4 Assigned Normal 6 (5+P+Q+S) S15 R4 2 4000.0 NL supported
A23 Assigned Normal 5 (6+P+S) S24 R5 10 400.0 Flash supported
A24 Assigned Normal 5 (6+P+S) S25 R29 10 400.0 Flash supported
A25 Assigned Normal 5 (6+P) S26 R27 10 400.0 Flash supported
A26 Assigned Normal 5 (6+P) S27 R14 10 400.0 Flash supported
ID Group State datastate Array RAIDtype extpoolID extpoolnam stgtype exts usedexts encryptgrp
================================================================================================
R0 1 Normal Normal A0 5 P5 ET_2Tier_P5 fb 2121 1911 -
R3 1 Normal Normal A3 6 P5 ET_2Tier_P5 fb 12890 4782 -
R4 0 Normal Normal A4 6 P6 VAAIslow fb 12890 1825 -
R5 1 Normal Normal A23 5 P11 fb_flash_1 fb 2122 142 -
R14 0 Normal Normal A26 5 P2 fb_flash_0 fb 2122 652 -
R27 0 Normal Normal A25 5 P4 BruceP4 fb 2122 2085 -
R29 0 Depopulating Normal A24 5 P2 fb_flash_0 fb 2122 626 -
R30 0 Normal Normal A2 6 P12 sotest fb 12890 8601 -
R34 - Unassigned Normal A1 5 - - ckd 2376
 
Important: The DS CLI script can contain only DS CLI commands. The use of shell commands results in process failure.
12.1.11 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 the Command-Line Interface User’s Guide, SC27-8526.
12.1.12 User assistance
The DS CLI is designed to include several forms of user assistance. The main form of user assistance is through the IBM DS8000 IBM Knowledge Center, which is available at this website:
Look under the Command-line interface tab. You can also get user assistance when using the DS CLI program through the help command. The following examples of usage are included:
help lists all of the available DS CLI commands.
help -s lists all of the DS CLI commands with brief descriptions of each command.
help -l lists all of 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 operating systems, and provide information about command capabilities. This information can be displayed by issuing the relevant command followed by the -h, -help, or -? flags.
12.2 I/O port configuration
Set the I/O ports to the topology that you want. Example 12-20 lists the I/O ports by using the lsioport command. I0000 - I0003 are on one card, and I0100 - I0103 are on another card.
Example 12-20 List the I/O ports
dscli> lsioport -dev IBM.2107-75DMC11
ID WWPN State Type topo portgrp
===============================================================
I0000 500507630300008F Online Fibre Channel-SW SCSI-FCP 0
I0001 500507630300408F Online Fibre Channel-SW SCSI-FCP 0
I0002 500507630300808F Online Fibre Channel-SW SCSI-FCP 0
I0003 500507630300C08F Online Fibre Channel-SW SCSI-FCP 0
I0100 500507630308008F Online Fibre Channel-LW FICON 0
I0101 500507630308408F Online Fibre Channel-LW SCSI-FCP 0
I0102 500507630308808F Online Fibre Channel-LW FICON 0
I0103 500507630308C08F Online Fibre Channel-LW FICON 0
The following possible topologies for each I/O port are available:
Small Computer System Interface - Fibre Channel Protocol (SCSI-FCP): Fibre Channel-switched fabric, which is also called switched point-to-point. This port type is also used for mirroring.
Fibre Channel Arbitrated Loop (FC-AL): This port type is for direct attachment without a storage area network (SAN) switch.
Fibre Channel connection (FICON): This port type is for z Systems hosts only.
Example 12-21 sets two I/O ports to the FICON topology and then checks the results.
Example 12-21 Change the topology by using setioport
dscli> setioport -topology ficon I0001
CMUC00011I setioport: I/O Port I0001 successfully configured.
dscli> setioport -topology ficon I0101
CMUC00011I setioport: I/O Port I0101 successfully configured.
dscli> lsioport
ID WWPN State Type topo portgrp
===============================================================
I0000 500507630300008F Online Fibre Channel-SW SCSI-FCP 0
I0001 500507630300408F Online Fibre Channel-SW FICON    0
I0002 500507630300808F Online Fibre Channel-SW SCSI-FCP 0
I0003 500507630300C08F Online Fibre Channel-SW SCSI-FCP 0
I0100 500507630308008F Online Fibre Channel-LW FICON 0
I0101 500507630308408F Online Fibre Channel-LW FICON    0
I0102 500507630308808F Online Fibre Channel-LW FICON 0
I0103 500507630308C08F Online Fibre Channel-LW FICON 0
To monitor the status for each I/O port, see 12.5, “Metrics with DS CLI” on page 366.
12.3 DS8880 storage configuration for fixed-block volumes
This section reviews examples of a typical DS8880 storage configuration when the DS8880 storage is attached to open system hosts. You can perform the DS8880 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.
12.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 DS8880:
Nearline (NL disk class) specifies 3.5-inch large form factor (LFF) serial-attached SCSI (SAS) nearline drives with a 7.2K revolutions per minute (RPM) drive speed.
Enterprise (ENT disk class) specifies 2.5-inch small form factor (SFF) SAS enterprise drives with 10K or 15K RPM drive speed.
Solid-state drive (SSD disk class) specifies 2.5-inch SFF SAS Flash drives, which are also known as SSDs.
Flash (Flash disk class) specifies 1.8-inch High Performance flash cards. Unlike the NL, ENT, and SSD disk classes, they are not in storage enclosures. Instead, they are part of the high-performance flash enclosure (HPFE).
Both disk classes SSD and Flash are part of the SSD storage tier in terms of the IBM Easy Tier feature.
12.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 12-22. Array sites are groups of eight drives that are predefined in the DS8880.
 
Important: An array for a DS8880 contains only one array site, and a DS8880 array site contains eight drives. The only exceptions are the two 7-drive array sites that are made of the last 14 drives in the high-performance enclosure. The array is still a 6+P array.
Example 12-22 List array sites
dscli> lsarraysite -l
arsite DA Pair dkcap (10^9B) diskrpm State Array diskclass encrypt
=========================================================================
S1 11 400.0 65000 Assigned A0 Flash supported
S2 11 400.0 65000 Assigned A5 Flash supported
S13 2 600.0 10000 Assigned A12 ENT supported
S14 2 600.0 10000 Assigned A13 ENT supported
S25 0 4000.0 7200 Assigned A24 NL supported
S26 0 4000.0 7200 Assigned A25 NL supported
S27 0 4000.0 7200 Assigned A26 NL supported
S32 3 400.0 65000 Assigned A31 SSD supported
S33 3 400.0 65000 Assigned A32 SSD supported
S38 1 600.0 10000 Unassigned - ENT supported
S39 1 600.0 10000 Unassigned - ENT supported
In Example 12-22 on page 343, 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 12-23. The example uses one array site (in the first array, S1) to create a single RAID 5 array. If you want to create a RAID 10 array, change the -raidtype parameter to 10. If you want to create a RAID 6 array, change the -raidtype parameter to 6 (instead of 5).
Example 12-23 Create arrays with mkarray
dscli> mkarray -raidtype 5 -arsite S38
CMUC00004I mkarray: Array A34 successfully created.
dscli> mkarray -raidtype 5 -arsite S39
CMUC00004I mkarray: Array A35 successfully created.
You can now see the arrays that were created by using the lsarray command, as shown in Example 12-24.
Example 12-24 List the arrays with lsarray
dscli> lsarray -l
Array State Data RAIDtype arsite Rank DA Pair DDMcap (10^9B) diskclass encrypt
==========================================================================================
A0 Assigned Normal 5 (6+P+S) S1 R0 11 400.0 Flash supported
A5 Assigned Normal 5 (6+P+S) S2 R9 11 400.0 Flash supported
A12 Assigned Normal 5 (6+P+S) S13 R10 2 600.0 ENT supported
A13 Assigned Normal 5 (6+P+S) S14 R11 2 600.0 ENT supported
A25 Assigned Normal 6 (5+P+Q+S) S26 R20 0 4000.0 NL supported
A26 Assigned Normal 6 (5+P+Q+S) S27 R24 0 4000.0 NL supported
A31 Unassigned Normal 5 (6+P+S) S32 - 3 400.0 SSD supported
A32 Unassigned Normal 5 (6+P+S) S33 - 3 400.0 SSD supported
A34 Unassigned Normal 5 (7+P) S38 - 1 600.0 ENT supported
A35 Unassigned Normal 5 (7+P) S39 - 1 600.0 ENT supported
You can see the following information in this example:
Type of RAID array (RAID 5)
Number of drives that are allocated to the array (7+P, which means that the usable space of the array is seven times the drive size)
Capacity of the drives that are being used (600 GB)
Array sites (S38 and S39) that were used to create the arrays
Diskclass (ENT for Enterprise).
12.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 z Systems hosts.
After all of the ranks are created, the lsrank command is run. This command displays this information:
All of 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 12-25 shows the mkrank command and the result of a successful lsrank command.
Example 12-25 Create and list ranks with mkrank and lsrank commands
dscli> mkrank -array A34 -stgtype fb
CMUC00007I mkrank: Rank R25 successfully created.
dscli> lsrank
ID Group State datastate Array RAIDtype extpoolID stgtype
===============================================================
R0 0 Normal Normal A0 5 P0 fb
R9 1 Normal Normal A5 5 P3 ckd
R10 0 Normal Normal A12 5 P2 ckd
R11 1 Normal Normal A13 5 P7 ckd
R20 0 Normal Normal A25 6 P8 fb
R24 - Unassigned Normal A26 6 - ckd
R25 - Unassigned Normal A34 5 - fb
When defining a rank, you can also specify the extent size. Starting with DS8880 R8.1 firmware, you can have ranks and extent pools with large 1 GiB FB extents or small 16 MiB FB extents. The extent unit is specified with the -extunit parameter of the mkrank command. The first rank added to an extent pool determines the extent size of the extent pool.
12.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 that is in the pool. For example, create an extent pool for high capacity disk, create another extent pool for high performance, and, if needed, create extent pools 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 CLI commands. Therefore, it is good practice to make a note of the ID.
Example 12-26 shows one example of extent pools that you can define on your system. This setup requires a system with at least six ranks.
Example 12-26 An extent pool layout plan
FB Extent Pool high capacity 300gb disks assigned to server 0 (FB_LOW_0)
FB Extent Pool high capacity 300gb disks assigned to server 1 (FB_LOW_1)
FB Extent Pool high performance 146gb disks assigned to server 0 (FB_High_0)
FB Extent Pool high performance 146gb disks assigned to server 0 (FB_High_1)
CKD Extent Pool High performance 146gb disks assigned to server 0 (CKD_High_0)
CKD Extent Pool High performance 146gb disks assigned to server 1 (CKD_High_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 12-27.
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 12-27 Create an extent pool by using mkextpool, lsextpool, and chrank
dscli> mkextpool -rankgrp 0 -stgtype fb FB_high_0
CMUC00000I mkextpool: Extent Pool P0 successfully created.
dscli> mkextpool -rankgrp 1 -stgtype fb FB_high_1
CMUC00000I mkextpool: Extent Pool P1 successfully created.
dscli> lsextpool
Name ID stgtype rankgrp status availstor (2^30B) %allocated available reserved numvols
===========================================================================================
FB_high_0 P0 fb 0 below 0 0 0 0 0
FB_high_1 P1 fb 1 below 0 0 0 0 0
dscli> chrank -extpool P0 R0
CMUC00008I chrank: Rank R0 successfully modified.
dscli> chrank -extpool P1 R1
CMUC00008I chrank: Rank R1 successfully modified.
dscli> lsextpool
Name ID stgtype rankgrp status availstor (2^30B) %allocated available reserved numvols
===========================================================================================
FB_high_0 P0 fb 0 below 740 0 740 0 0
FB_high_1 P1 fb 1 below 740 0 740 0 0
After a rank is assigned to an extent pool, you can see this change when you display the ranks.
In Example 12-28, you can see that rank R0 is assigned to extpool P0.
Example 12-28 Display the ranks after a rank is assigned to an extent pool
dscli> lsrank -l
ID Group State datastate Array RAIDtype extpoolID extpoolnam stgtype exts usedexts
===================================================================================
R0 0 Normal Normal A0 5 P0 FB_high_0 fb 740 0
R1 1 Normal Normal A1 5 P1 FB_high_1 fb 740 0
 
Example 12-29 shows the extent size in the query.
Example 12-29 Command showing the extent size
dscli> lsrank -l
Date/Time: May 18, 2016 3:45:09 PM PDT IBM DSCLI Version: 7.8.10.321 DS: IBM.2107-75YZ551
ID Group State datastate Array RAIDtype extpoolID extpoolnam stgtype exts usedexts encryptgrp marray extsize (cap)
===========================================================================================================================
R12 0 Normal Normal A2 5 P4 P4-FB-small fb      99217         0 - MA16 16MiB
R15 1 Normal Normal A15 5 P5        P5-FB-large fb      1814        216          - MA12   1GiB
12.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 DS8880 can support 255 LSSs, and each LSS can support a maximum of 256 volumes.
Example 12-30 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 10 with volume numbers of 00 - 03. The second four volumes are assigned to rank group 1, and are assigned to LSS 11 with volume numbers of 00 - 03.
Example 12-30 Create fixed-block volumes by using mkfbvol
dscli> lsextpool
Name ID stgtype rankgrp status availstor (2^30B) %allocated available reserved numvols
===========================================================================================
FB_high_0 P0 fb 0 below 740 0 740 0 0
FB_high_1 P1 fb 1 below 740 0 740 0 0
dscli> mkfbvol -extpool p0 -cap 10 -name high_fb_0_#h 1000-1003
CMUC00025I mkfbvol: FB volume 1000 successfully created.
CMUC00025I mkfbvol: FB volume 1001 successfully created.
CMUC00025I mkfbvol: FB volume 1002 successfully created.
CMUC00025I mkfbvol: FB volume 1003 successfully created.
dscli> mkfbvol -extpool p1 -cap 10 -name high_fb_1_#h 1100-1103
CMUC00025I mkfbvol: FB volume 1100 successfully created.
CMUC00025I mkfbvol: FB volume 1101 successfully created.
CMUC00025I mkfbvol: FB volume 1102 successfully created.
CMUC00025I mkfbvol: FB volume 1103 successfully created.
Looking closely at the mkfbvol command that is used in Example 12-30, you see that volumes 1000 - 1003 are in extpool P0. 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 2 digits of the volume serial number are the LSS number. So, in this case, volumes 1000 - 1003 are in LSS 10.
For volumes 1100 - 1003 in Example 12-30 on page 347, the first 2 digits of the volume serial number are 11 (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 size is a binary size. Therefore, these volumes are 10 GB 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 12-30 on page 347 named the volumes by using the naming scheme high_fb_0_#h, where #h means that you are using the hexadecimal volume number as part of the volume name. This naming convention can be seen in Example 12-31, 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 12-31 Check 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)
=========================================================================================
high_fb_0_1000 1000 Online Normal Normal 2107-900 FB 512 P0 10.0
high_fb_0_1001 1001 Online Normal Normal 2107-900 FB 512 P0 10.0
high_fb_0_1002 1002 Online Normal Normal 2107-900 FB 512 P0 10.0
high_fb_0_1003 1003 Online Normal Normal 2107-900 FB 512 P0 10.0
high_fb_1_1100 1100 Online Normal Normal 2107-900 FB 512 P1 10.0
high_fb_1_1101 1101 Online Normal Normal 2107-900 FB 512 P1 10.0
high_fb_1_1102 1102 Online Normal Normal 2107-900 FB 512 P1 10.0
high_fb_1_1103 1103 Online Normal Normal 2107-900 FB 512 P1 10.0
dscli> lsextpool
Name ID stgtype rankgrp status availstor (2^30B) %allocated available reserved numvols
===========================================================================================
FB_high_0 P0 fb 0 below 700 5 700 0 4
FB_high_1 P1 fb 1 below 700 5 700 0 4
 
Important considerations:
For the DS8880, the LSSs can be ID 00 to ID FE. The LSSs are in address groups. Address group 0 is LSS 00 to 0F, address group 1 is LSS 10 to 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 DS8880. The LSS is automatically created when the first volume is assigned to it.
You can configure a volume to belong to a certain Performance I/O Priority Manager by using the -perfgrp <perf_group_ID> flag in the mkfbvol command. For more information, see DS8000 I/O Priority Manager, REDP-4760.
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. For more information, see “T10 data integrity field support” on page 105.
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 is specified with the -eam rotateexts or -eam rotatevols option of the mkfbvol command, as shown in Example 12-32.
 
Default allocation policy: For DS8880, the default allocation policy is rotate extents.
Example 12-32 Create a volume with storage pool striping
dscli> mkfbvol -extpool p7 -cap 15 -name ITSO-XPSTR -eam rotateexts 1720
CMUC00025I mkfbvol: FB volume 1720 successfully created.
The showfbvol command with the -rank option (Example 12-33) shows that the volume that you created is distributed across three ranks. It also shows how many extents on each rank were allocated for this volume.
Example 12-33 Use showfbvol for information about a striped volume
dscli> showfbvol -rank 1720
Name ITSO-XPSTR
ID 1720
accstate Online
datastate Normal
configstate Normal
deviceMTM 2107-900
datatype FB 512
addrgrp 1
extpool P7
exts 15
captype DS
cap (2^30B) 15.0
cap (10^9B) -
cap (blocks) 31457280
volgrp -
ranks 3
dbexts 0
sam Standard
repcapalloc -
eam rotateexts
reqcap (blocks) 31457280
realextents 15
virtualextents 0
migrating 0
perfgrp PG0
migratingfrom -
resgrp RG0
tierassignstatus -
tierassignerror -
tierassignorder -
tierassigntarget -
%tierassigned 0
==============Rank extents==============
rank extents
============
R6 5
R11 5
R23 5
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 12-34.
Example 12-34 Expand a striped volume
dscli> chfbvol -cap 40 1720
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 1720 successfully modified.
The largest LUN size is now 16 TiB. Copy Services are not supported for LUN sizes larger than 2 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 12-35.
Example 12-35 Check the status of an expanded volume
dscli> showfbvol -rank 1720
Name ITSO-XPSTR
ID 1720
accstate Online
datastate Normal
configstate Normal
deviceMTM 2107-900
datatype FB 512
addrgrp 1
extpool P7
exts 40
captype DS
cap (2^30B) 40.0
cap (10^9B) -
cap (blocks) 83886080
volgrp -
ranks 3
dbexts 0
sam Standard
repcapalloc -
eam rotateexts
reqcap (blocks) 83886080
realextents 40
virtualextents 0
migrating 0
perfgrp PG0
migratingfrom -
resgrp RG0
tierassignstatus -
tierassignerror -
tierassignorder -
tierassigntarget -
%tierassigned 0
==============Rank extents==============
rank extents
============
R6 13
R11 14
R23 13
 
Important: Before you can expand a volume, you must delete all Copy Services relationships for that volume.
Defining thin-provisioned ESE volumes
The DS8880 supports thin-provisioned volumes. A thin-provisioned volume is created by the DSCLI by specifying the storage allocation method (SAM) of ESE for a volume. This is done withe the -sam ese option of the mkfbvol command as shown in Example 12-36.
Example 12-36 Creating a thin-provisioned ESE volume
dscli> mkfbvol -extpool p4 -cap 1000 -sam ese 2000
CMUC00025I mkfbvol: FB volume 2000 successfully created.
The extent size is defined by the extent pools where the volume is created.
More DSCLI 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 to reserve space for thin-provisioned volumes. For more information about thin-provisioning, see IBM DS8880 Thin Provisioning, 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 Copy Services relationship or if the volume received any I/O operation in the previous five 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 to see whether they are in use.
Example 12-37 shows the creation of volumes 2100 and 2101, then the assignment of volume 2100 to a volume group. You then try to delete both volumes with the -safe option, but the attempt fails without deleting either of the volumes. You can delete volume 2101 with the -safe option because it is not assigned to a volume group. Volume 2100 is not in use, so you can delete it by not specifying either parameter.
Example 12-37 Delete an FB volume
dscli> mkfbvol -extpool p1 -cap 12 -eam rotateexts 2100-2101
CMUC00025I mkfbvol: FB volume 2100 successfully created.
CMUC00025I mkfbvol: FB volume 2101 successfully created.
dscli> chvolgrp -action add -volume 2100 v0
CMUC00031I chvolgrp: Volume group V0 successfully modified.
dscli> rmfbvol -quiet -safe 2100-2101
CMUC00253E rmfbvol: Volume IBM.2107-75NA901/2100 is assigned to a user-defined volume group. No volumes were deleted.
dscli> rmfbvol -quiet -safe 2101
CMUC00028I rmfbvol: FB volume 2101 successfully deleted.
dscli> rmfbvol 2100
CMUC00027W rmfbvol: Are you sure you want to delete FB volume 2100? [y/n]: y
CMUC00028I rmfbvol: FB volume 2100 successfully deleted.
12.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. A fixed-block 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 operating system to which the volume group is attached.
Determining whether an open system host is SCSI MAP256 or SCSI MASK
First, determine the type of SCSI host with which you are working. Then, use the lshosttype command with the -type parameter of scsimask and then scsimap256.
Example 12-38 shows the results of each command.
Example 12-38 List host types with 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
=====================================================
AMDLinuxRHEL AMD - Linux RHEL LUNPolling 512
AMDLinuxSuse AMD - Linux Suse LUNPolling 512
AppleOSX Apple - OSX LUNPolling 512
Fujitsu Fujitsu - Solaris LUNPolling 512
HpTru64 HP - Tru64 LUNPolling 512
HpVms HP - Open VMS LUNPolling 512
LinuxDT Intel - Linux Desktop LUNPolling 512
LinuxRF Intel - Linux Red Flag LUNPolling 512
LinuxRHEL Intel - Linux RHEL LUNPolling 512
LinuxSuse Intel - Linux Suse 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
Win2000 Intel - Windows 2000 LUNPolling 512
Win2003 Intel - Windows 2003 LUNPolling 512
Win2008 Intel - Windows 2008 LUNPolling 512
Win2012 Intel - Windows 2012 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 12-39, the example host type is AIX. In Example 12-38 on page 353, you can see that the address discovery method for AIX is scsimask.
Example 12-39 Create a volume group with mkvolgrp and display it by using lsvolgrp
dscli> mkvolgrp -type scsimask -volume 1000-1002,1100-1102 AIX_VG_01
CMUC00030I mkvolgrp: Volume group V11 successfully created.
dscli> lsvolgrp
Name ID Type
=======================================
ALL CKD V10 FICON/ESCON All
AIX_VG_01 V11 SCSI Mask
ALL Fixed Block-512 V20 SCSI All
ALL Fixed Block-520 V30 OS400 All
dscli> showvolgrp V11
Name AIX_VG_01
ID V11
Type SCSI Mask
Vols 1000 1001 1002 1100 1101 1102
Adding or deleting volumes in a volume group
In this example, you add volumes 1000 - 1002 and 1100 - 1102 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 V11 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 12-40 shows adding volume 1003 to volume group V11, displaying the results, and then removing the volume.
Example 12-40 Change a volume group with chvolgrp
dscli> chvolgrp -action add -volume 1003 V11
CMUC00031I chvolgrp: Volume group V11 successfully modified.
dscli> showvolgrp V11
Name AIX_VG_01
ID V11
Type SCSI Mask
Vols 1000 1001 1002 1003 1100 1101 1102
dscli> chvolgrp -action remove -volume 1003 V11
CMUC00031I chvolgrp: Volume group V11 successfully modified.
dscli> showvolgrp V11
Name AIX_VG_01
ID V11
Type SCSI Mask
Vols 1000 1001 1002 1100 1101 1102
 
Important: Not all operating systems can manage the removal of a volume. See your operating system documentation to determine the safest way to remove a volume from a host.
12.3.7 Creating host connections
The final step in the logical configuration process is to create 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 (hostconnect) can only have one volume group assigned to it. A volume can be assigned to multiple volume groups.
Example 12-41 shows the creation of a single host connection that represents one HBA in the example AIX host. Use the -hosttype parameter to include the host type that you used in Example 12-38 on page 353. Allocate it to volume group V11. If the SAN zoning is correct, the host will be able to see the LUNs in volume group V11.
Example 12-41 Create host connections by using mkhostconnect and lshostconnect
dscli> mkhostconnect -wwname 100000C912345678 -hosttype pSeries -volgrp V11 AIX_Server_01
CMUC00012I mkhostconnect: Host connection 0000 successfully created.
dscli> lshostconnect
Name ID WWPN HostType Profile portgrp volgrpID ESSIOport
=========================================================================================
AIX_Server_01 0000 100000C912345678 pSeries IBM pSeries - AIX 0 V11 all
You can also use -profile instead of -hosttype. However, this method is not a preferred practice. The use of the -hosttype parameter starts both parameters (-profile and -hosttype). In contrast, the use of -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 DS8880, perform zoning on your SAN switch.
Managing hosts with multiple HBAs
If your host features multiple HBAs, consider the following points:
For the GUI to consider multiple host connects to be used by the same server, the host connects must have the same name. In Example 12-42, host connects 0010 and 0011 appear in the GUI as a single server with two HBAs. However, host connects 000E and 000F appear as two separate hosts even though they are used by the same server. If you do not plan to use the GUI to manage host connections, this consideration is not important. The use of more verbose host connection (hostconnect) naming might make management easier.
If you want to use a single command to change the assigned volume group of several host connections (hostconnects) at the same time, assign the hostconnects to a unique port group. Then use the managehostconnect command. This command changes the assigned volume group for all hostconnects that are assigned to a particular port group.
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.
Example 12-42 shows six host connections. By using the port group number, you see that three separate hosts exist, each with two HBAs. Port group 0 is used for all hosts that do not have a port group number set.
Example 12-42 Use the portgrp number to separate attached hosts
dscli> lshostconnect
Name ID WWPN HostType Profile portgrp volgrpID
===========================================================================================
Name ID WWPN HostType Profile portgrp volgrpID ESSIOport
===================================================================================
- 0001 21000024FF41D1CE Win2012 Intel - Windows 2012 1 V1 all
- 0002 21000024FF41D1CF Win2012 Intel - Windows 2012 1 V1 all
- 0004 10000000C970113A pSeries IBM pSeries - AIX 2 V2 all
- 0005 10000000C970113B pSeries IBM pSeries - AIX 2 V2 all
- 0007 10000090FA1F7A82 pSeries IBM pSeries - AIX 3 V3 all
- 0008 10000090FA1F7A83 pSeries IBM pSeries - AIX 3 V3 all
- 000A 2100000E1E30B962 VMWare VMWare 4 V4 all
- 000B 2100000E1E30B963 VMWare VMWare 4 V4 all
- 000D 10000090FA02F560 iSeries IBM iSeries - OS/400 5 V5 all
- 0010 10000000C987323D iSeries IBM iSeries - OS/400 6 V6 all
- 0011 10000000C98C8DB2 iSeries IBM iSeries - OS/400 6 V6 all
- 0013 21000024FF41CBE2 VMWare VMWare 7 V7 all
Changing host connections
If you want to change a host connection, use the chhostconnect command. This command can be used to change nearly all parameters of the host connection, except for the worldwide port name (WWPN). If you must change the WWPN, first create a host connection. To change the assigned volume group, use the chhostconnect command to change one host connection (hostconnect) at a time, or use the managehostconnect command to simultaneously reassign all of the hostconnects in one port group.
12.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.
This section provides examples for several operating systems. Each example assigns several logical volumes to an open system host and then installs DS CLI on that host. Then, you log on to this host and start DS CLI. It does not matter which HMC you connect to with the DS CLI. Then, issue the lshostvol command.
 
Important: The lshostvol command communicates only with the operating system 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.
AIX: Mapping disks when Multipath I/O is used
Example 12-43 shows an AIX server that uses Multipath I/O (MPIO). Two volumes, 1800 and 1801, are assigned to this host. Because MPIO is used, you do not see the number of paths.
In fact, from this display, it is not possible to tell whether MPIO is even installed. You must run the pcmpath query device command to confirm the path count.
Example 12-43 Running the lshostvol command on an AIX host by using MPIO
dscli> lshostvol
Disk Name Volume Id Vpath Name
==========================================
hdisk3 IBM.2107-1300819/1800 ---
hdisk4 IBM.2107-1300819/1801 ---
 
Open HyperSwap: If you use Open HyperSwap on a host, the lshostvol command might fail to show any devices.
AIX: Mapping disks when Subsystem Device Driver is used
Example 12-44 shows an AIX server that uses Subsystem Device Driver (SDD). Two volumes, 1000 and 1100, are assigned to this host. Each volume has four paths.
Example 12-44 Running the lshostvol command on an AIX host by using SDD
dscli> lshostvol
Disk Name Volume Id Vpath Name
============================================================
hdisk1,hdisk3,hdisk5,hdisk7 IBM.2107-1300247/1000 vpath0
hdisk2,hdisk4,hdisk6,hdisk8 IBM.2107-1300247/1100 vpath1
Windows: Mapping disks
Example 12-45 shows the use of the datapath query device command on a Microsoft Windows host with IBM Subsystem Device Driver Device Specific Module (SDDDSM) multi-pathing software installed. The disks are listed by Windows Disk number. If you want to know which disk is associated with which drive letter, you must look at the Windows Disk Manager.
Example 12-45 IBM SDDDSM datapath query device that is run on a Windows host
C:Program FilesIBMSDDDSM>datapath query device
 
Total Devices : 3
 
 
DEV#: 0 DEVICE NAME: Disk2 Part0 TYPE: 2107900 POLICY: LEAST I/O AND WEIGHT
SERIAL: 75ZA5714670 Reserved: No LUN SIZE: 10.0GB
HOST INTERFACE: FC
===========================================================================================
Path# Adapter/Hard Disk State Mode Select Errors
0 Scsi Port5 Bus0/Disk2 Part0 OPEN NORMAL 7671581 0
1 Scsi Port6 Bus0/Disk2 Part0 OPEN NORMAL 4809566 0
 
DEV#: 1 DEVICE NAME: Disk3 Part0 TYPE: 2107900 POLICY: LEAST I/O AND WEIGHT
SERIAL: 75ZA57146A0 Reserved: No LUN SIZE: 32.0GB
HOST INTERFACE: FC
===========================================================================================
Path# Adapter/Hard Disk State Mode Select Errors
0 Scsi Port5 Bus0/Disk3 Part0 OPEN NORMAL 8289379 0
1 Scsi Port6 Bus0/Disk3 Part0 OPEN NORMAL 5367333 0
 
DEV#: 2 DEVICE NAME: Disk4 Part0 TYPE: 2107900 POLICY: LEAST I/O AND WEIGHT
SERIAL: 75ZA57147A0 Reserved: No LUN SIZE: 32.0GB
HOST INTERFACE: FC
===========================================================================================
Path# Adapter/Hard Disk State Mode Select Errors
0 Scsi Port5 Bus0/Disk4 Part0 OPEN NORMAL 18202701 0
1 Scsi Port6 Bus0/Disk4 Part0 OPEN NORMAL 12000914 0
 
DEV#: 3 DEVICE NAME: Disk5 Part0 TYPE: 2107900 POLICY: LEAST I/O AND WEIGHT
SERIAL: 75ZA5714671 Reserved: No LUN SIZE: 50.0GB
HOST INTERFACE: FC
===========================================================================================
Path# Adapter/Hard Disk State Mode Select Errors
0 Scsi Port5 Bus0/Disk5 Part0 OPEN NORMAL 7068919 0
1 Scsi Port6 Bus0/Disk5 Part0 OPEN NORMAL 4188012 0-
12.4 DS8880 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 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, following the specifications in the input/output definition file (IODF).
12.4.1 Creating the arrays
Array creation for CKD volumes is the same as for FB volumes. For more information, see 12.3.2, “Creating the arrays” on page 343.
12.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 12-46.
Example 12-46 Rank and extent pool creation for CKD volumes
dscli> mkrank -array A0 -stgtype ckd
CMUC00007I mkrank: Rank R0 successfully created.
dscli> lsrank
ID Group State datastate Array RAIDtype extpoolID stgtype
==============================================================
R0 - Unassigned Normal A0 6 - ckd
dscli> mkextpool -rankgrp 0 -stgtype ckd CKD_High_0
CMUC00000I mkextpool: Extent Pool P0 successfully created.
dscli> chrank -extpool P0 R0
CMUC00008I chrank: Rank R0 successfully modified.
dscli> lsextpool
Name ID stgtype rankgrp status availstor (2^30B) %allocated available reserved numvol
===========================================================================================
CKD_High_0 0 ckd 0 below 252 0 287 0 0
When defining a rank, you can also specify the extent size. Starting with DS8880 R8.1 firmware, 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 -extunit parameter of the mkrank command. The first rank added to an extent pool determines the extent size of the extent pool.
Example 12-47 shows ranks with different extent sizes.
Example 12-47 CKD ranks with different extent sizes
dscli> lsrank -l
Date/Time: May 18, 2016 3:45:09 PM PDT IBM DSCLI Version: 7.8.10.321 DS: IBM.2107-75YZ551
ID Group State datastate Array RAIDtype extpoolID extpoolnam stgtype exts usedexts encryptgrp marray extsize (cap)
===========================================================================================================================
R4 0 Normal Normal A4 5 P2 Small ckd 187636 9904 - MA19 21cyl
R5 0 Normal Normal A5 5 P2 Small ckd 219245 9919 - MA24 21cyl
R9 0 Normal Normal A9 5 P0 CKD_ ckd 4113 2406 - MA6 1113cyl
R10 0 Normal Normal A10 5 P0 CKD_ ckd 3520 2399 - MA3 1113cyl
12.4.3 Logical control unit creation
When volumes for a CKD environment are created, you must create logical control units (LCUs) before the volumes are created. In Example 12-48, you can see what happens if you try to create a CKD volume without creating an LCU first.
Example 12-48 Trying to create CKD volumes without creating an LCU first
dscli> mkckdvol -extpool p2 -cap 262668 -name ITSO_EAV1_#h C200
CMUN02282E mkckdvol: C200: Unable to create CKD logical volume: CKD volumes require a CKD logical subsystem.
First, use the mklcu command. The command uses the following format:
mklcu -qty XX -id XX -ss XXXX
To display the LCUs that you created, use the lslcu command.
Example 12-49 shows the creation of two LCUs by using the mklcu command and then listing the created LCUs by using the lslcu command. By default, the LCUs that were created are the 3990-6 type.
Example 12-49 Create a logical control unit with mklcu
dscli> mklcu -qty 2 -id BC -ss BC00
CMUC00017I mklcu: LCU BC successfully created.
CMUC00017I mklcu: LCU BD successfully created.
dscli> lslcu
ID Group addrgrp confgvols subsys conbasetype
=============================================
BC 0 C 0 0xBC00 3990-6
BD 1 C 0 0xBC01 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 DS8880.
 
Important: For the DS8880, the CKD LCUs can be ID 00 to ID FE. The LCUs fit into one of 16 address groups. Address group 0 is LCUs 00 to 0F, address group 1 is LCUs 10 to 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 to 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/CKD DS8880. Each LCU can manage a maximum of 256 volumes, including alias volumes for the parallel access volume (PAV) feature.
12.4.4 Creating the CKD volumes
Now that an LCU was 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 ITSO_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 DS8880 supports EAV volumes up to 1,182,006 cylinders. The EAV device type is called 3390 Model A. You need z/OS V1.R12 or later to use these volumes.
 
Important: For 3390-A volumes, the size can be specified 1 - 65,520 in increments of 1, and from 65,667, which is the next multiple of 1113, to 1,182,0068 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 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 a z Systems server uses to access the volume.
The volume_ID has a format of LLVV. LL (00 - FE) equals the LCU that the volume belongs to, 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 12-50 creates a single 3390-A volume with a capacity of 262,668 cylinders, and it is assigned to LCU BC with an offset of 06.
Example 12-50 Create CKD volumes by using mkckdvol
dscli> mkckdvol -extpool P2 -cap 262668 -datatype 3390-A -eam rotatevols -name ITSO_EAV1_#h BC06
CMUC00021I mkckdvol: CKD Volume BC06 successfully created.
dscli> lsckdvol
Name ID accstate datastate configstate deviceMTM voltype orgbvols extpool cap (cyl)
================================================================================================
ITSO_BC00 BC00 Online Normal Normal 3390-9 CKD Base - P2 10017
ITSO_BC01 BC01 Online Normal Normal 3390-9 CKD Base - P2 10017
ITSO_BC02 BC02 Online Normal Normal 3390-9 CKD Base - P2 10017
ITSO_BC03 BC03 Online Normal Normal 3390-9 CKD Base - P2 10017
ITSO_BC04 BC04 Online Normal Normal 3390-9 CKD Base - P2 10017
ITSO_BC05 BC05 Online Normal Normal 3390-9 CKD Base - P2 10017
ITSO_EAV1_BC06 BC06 Online Normal Normal 3390-A CKD Base - P2 262668
ITSO_BD00 BD00 Online Normal Normal 3390-9 CKD Base - P3 10017
ITSO_BD01 BD01 Online Normal Normal 3390-9 CKD Base - P3 10017
ITSO_BD02 BD02 Online Normal Normal 3390-9 CKD Base - P3 10017
ITSO_BD03 BD03 Online Normal Normal 3390-9 CKD Base - P3 10017
ITSO_BD04 BD04 Online Normal Normal 3390-9 CKD Base - P3 10017
ITSO_BD05 BD05 Online Normal Normal 3390-9 CKD Base - P3 10017
Remember, you can create only CKD volumes in LCUs that you already created.
Be aware that 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.
 
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 DS8880 supports thin-provisioned volumes. A thin-provisioned volume is created by the DSCLI by specifying the SAM of extent space efficient (ESE) for a volume. This is done with the -sam ese option of the mkfbvol command as shown in Example 12-51.
Example 12-51 Creating a thin-provisioned CKD volume
dscli> mkckdvol -extpool p2 -cap 1000 -sam ese 1010
CMUC00021I mkckdvol: CKD Volume 1010 successfully created.
The extent size is defined by the extent pools where the volume is created.
There are more DSCLI commands available to control and protect the space in an extent pool for thin-provisioned volumes. One of these commands is the mksestg command to reserve space for thin-provisioned volumes. For more information about thin-provisioning, see IBM DS8880 Thin Provisioning, 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 DS8880, the default allocation policy is rotate extents.
The extent allocation method is specified with the -eam rotateexts or the -eam rotatevols option of the mkckdvol command (Example 12-52).
Example 12-52 Create a CKD volume with extent pool striping
dscli> mkckdvol -extpool p4 -cap 10017 -name ITSO-CKD-STRP -eam rotateexts 0080
CMUC00021I mkckdvol: CKD Volume 0080 successfully created.
The showckdvol command with the -rank option (Example 12-53) 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.
Example 12-53 Obtain information about a striped CKD volume
dscli> showckdvol -rank 0080
Name ITSO-CKD-STRP
ID 0080
accstate Online
datastate Normal
configstate Normal
deviceMTM 3390-9
volser -
datatype 3390
voltype CKD Base
orgbvols -
addrgrp 0
extpool P4
exts 9
cap (cyl) 10017
cap (10^9B) 8.5
cap (2^30B) 7.9
ranks 2
sam Standard
repcapalloc -
eam rotateexts
reqcap (cyl) 10017
==============Rank extents==============
rank extents
============
R4 4
R30 5
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 12-54. The new capacity must be larger than the previous capacity. You cannot shrink the volume.
Example 12-54 Expand a striped CKD volume
dscli> chckdvol -cap 30051 0080
CMUC00332W chckdvol: Some host operating systems do not support changing the volume size. Are you sure that you want to resize the volume? [y/n]: y
CMUC00022I chckdvol: CKD Volume 0080 successfully modified.
Because the original volume used the rotateexts attribute, the additional extents are also striped, as shown in Example 12-55.
Example 12-55 Check the status of an expanded CKD volume
dscli> showckdvol -rank 0080
Name ITSO-CKD-STRP
ID 0080
accstate Online
datastate Normal
configstate Normal
deviceMTM 3390-9
volser -
datatype 3390
voltype CKD Base
orgbvols -
addrgrp 0
extpool P4
exts 27
cap (cyl) 30051
cap (10^9B) 25.5
cap (2^30B) 23.8
ranks 2
sam Standard
repcapalloc -
eam rotateexts
reqcap (cyl) 30051
==============Rank extents==============
rank extents
============
R4 13
R30 14
 
Important: Before you can expand a volume, you first must delete all Copy Services 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 a 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 or V1.12 (depending on the size of the volume) and later, as shown in Example 12-56.
Example 12-56 Expand a 3390 to a 3390-A
*** Command to show CKD volume definition before expansion:
 
dscli> showckdvol BC07
Name ITSO_EAV2_BC07
ID BC07
accstate Online
datastate Normal
configstate Normal
deviceMTM 3390-9
volser -
datatype 3390
voltype CKD Base
orgbvols -
addrgrp B
extpool P2
exts 9
cap (cyl) 10017
cap (10^9B) 8.5
cap (2^30B) 7.9
ranks 1
sam Standard
repcapalloc -
eam rotatevols
reqcap (cyl) 10017
 
*** Command to expand CKD volume from 3390-9 to 3390-A:
 
dscli> chckdvol -cap 262668 BC07
CMUC00332W chckdvol: Some host operating systems do not support changing the volume size. Are you sure that you want to resize the volume? [y/n]: y
CMUC00022I chckdvol: CKD Volume BC07 successfully modified.
 
*** Command to show CKD volume definition after expansion:
 
dscli> showckdvol BC07
Name ITSO_EAV2_BC07
ID BC07
accstate Online
datastate Normal
configstate Normal
deviceMTM 3390-A
volser -
datatype 3390-A
voltype CKD Base
orgbvols -
addrgrp B
extpool P2
exts 236
cap (cyl) 262668
cap (10^9B) 223.3
cap (2^30B) 207.9
ranks 1
sam Standard
repcapalloc -
eam rotatevols
reqcap (cyl) 262668
You cannot reduce the size of a volume. If you try to reduce the size, an error message is displayed, as shown in Example 12-57.
Example 12-57 Attempt to reduce a volume size
dscli> chckdvol -cap 10017 BC07
CMUC00332W chckdvol: Some host operating systems do not support changing the volume size. Are you sure that you want to resize the volume? [y/n]: y
CMUN02541E chckdvol: BC07: The expand logical volume task was not initiated because the logical volume capacity that you have requested is less than the current logical volume capacity.
Deleting volumes
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 Copy Services relationship, or if the IBM z Systems 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 12-58 shows trying to delete two volumes, 0900 and 0901. Volume 0900 is online to a host. Volume 0901 is not online to any host and not in a Copy Services relationship. The rmckdvol 0900-0901 command deletes only volume 0901, which is offline. To delete volume 0900, use the -force parameter.
Example 12-58 Delete CKD volumes
dscli> lsckdvol 0900-0901
Name ID accstate datastate configstate deviceMTM voltype orgbvols extpool cap (cyl)
========================================================================================
ITSO_J 0900 Online Normal Normal 3390-9 CKD Base - P1 10017
ITSO_J 0901 Online Normal Normal 3390-9 CKD Base - P1 10017
 
dscli> rmckdvol -quiet 0900-0901
CMUN02948E rmckdvol: 0900: 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 0901 successfully deleted.
 
dscli> lsckdvol 0900-0901
Name ID accstate datastate configstate deviceMTM voltype orgbvols extpool cap (cyl)
========================================================================================
ITSO_J 0900 Online Normal Normal 3390-9 CKD Base - P1 10017
 
dscli> rmckdvol -force 0900
CMUC00023W rmckdvol: Are you sure you want to delete CKD volume 0900? [y/n]: y
CMUC00024I rmckdvol: CKD volume 0900 successfully deleted.
 
dscli> lsckdvol 0900-0901
CMUC00234I lsckdvol: No CKD Volume found.
12.4.5 Resource groups
The resource group feature is designed for multi-tenancy environments. The resources are volumes, LCUs, and LSSs, and they are used for access control for Copy Services functions only.
For more information about resource groups, see IBM System Storage DS8000 Copy Services Scope Management and Resource Groups, REDP-4758.
12.4.6 Performance I/O Priority Manager
By using Performance I/O Priority Manager, you can control quality of service (QoS). Sixteen performance group policies, PG16 - PG31, exist for z/OS.
For more information about I/O Priority Manager, see DS8000 I/O Priority Manager, REDP-4760.
12.4.7 IBM Easy Tier
IBM 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 allows the transfer of Easy Tier heat maps from primary to auxiliary storage sites.
Easy Tier is covered in more detail in 6.7, “IBM Easy Tier” on page 168. Also, see the following publications:
IBM DS8000 EasyTier, REDP-4667
IBM DS8870 Easy Tier Heat Map Transfer, REDP-5015
12.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 GUI also provides new capabilities for performance monitoring, as described in 11.8, “Performance monitoring” on page 314.
 
 
Important: The help command shows specific information about each of the metrics.
Performance metrics: All performance metrics are an accumulation since 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 12-59 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 12-59 Metrics for a specific fixed-block volume
dscli> showfbvol -metrics f000
ID F000
normrdrqts 2814071
normrdhits 2629266
normwritereq 2698231
normwritehits 2698231
seqreadreqs 1231604
seqreadhits 1230113
seqwritereq 1611765
seqwritehits 1611765
cachfwrreqs 0
cachfwrhits 0
cachefwreqs 0
cachfwhits 0
inbcachload 0
bypasscach 0
DASDtrans 440816
seqDASDtrans 564977
cachetrans 2042523
NVSspadel 110897
normwriteops 0
seqwriteops 0
reccachemis 79186
qwriteprots 0
CKDirtrkac 0
CKDirtrkhits 0
cachspdelay 0
timelowifact 0
phread 1005781
phwrite 868125
phbyteread 470310
phbytewrite 729096
recmoreads 232661
sfiletrkreads 0
contamwrts 0
PPRCtrks 5480215
NVSspallo 4201098
timephread 1319861
timephwrite 1133527
byteread 478521
bytewrit 633745
timeread 158019
timewrite 851671
zHPFRead -
zHPFWrite -
zHPFPrefetchReq 0
zHPFPrefetchHit 0
GMCollisionsSidefileCount 0
GMCollisionsSendSyncCount 0
Example 12-60 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 12-60 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 12-61 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 12-61 Metrics for a specific rank
ID R14
byteread 87595588
bytewrit 50216632
Reads 208933399
Writes 126759118
timeread 204849532
timewrite 408989116
dataencrypted no
Example 12-62 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 DS8880 exchange information. If one of these components has problems because of hardware or configuration issues, all of the other components are affected.
Example 12-62 Metrics for a specific 16 Gbps I/O port
dscli> showioport -metrics I0332
ID I0332
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
bytewrit (PPRC) 0
byteread (PPRC) 0
Writes (PPRC) 0
Reads (PPRC) 0
timewrite (PPRC) 0
timeread (PPRC) 0
byteread (SCSI) 80812254
bytewrit (SCSI) 32831993
Reads (SCSI) 119218224
Writes (SCSI) 19247885
timeread (SCSI) 1121646
timewrite (SCSI) 875189
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) 272
SndBufZero (FC) 529
RetQFullBusy (FC) 0
ExchOverrun (FC) 0
ExchCntHigh (FC) 0
ExchRemAbort (FC) 0
CurrentSpeed (FC) 16 Gb/s
%UtilizeCPU (FC) 1 Dedicated
TxPower(RDP) -2.8 dBm(528.5 uW)
RxPower(RDP) -2.5 dBm(559.6 uW)
TransceiverTemp(RDP) 52 C
SupplyVolt(RDP) 3353.0 mV
TxBiasCurrent(RDP) 7.582 mA
ConnectorType(RDP) SFP+
TxType(RDP) Laser-SW
FECStatus(RDP) Inactive
UncorrectedBitErr(RDP) -
CorrectedBitErr(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 12-62 on page 369 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 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 DS8880. 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 Gbps host adapter implements the T11 Read Diagnostic Parameters (RDP) standard and provides 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, you need to clean the connector. If this RX/TX ratio continues to be low, the cable might be broken.
 
Consideration: At the time of writing, the 8-Gbps host adapter does not support RDP. The corresponding RDP area of the DS CLI command showioport -metrics contains no values. Example 12-63 shows a partial output for an 8-Gpbs HBA.
Example 12-63 Partial output for RDP metrics for a specific 8-Gbps I/O port
dscli> showioport -metrics I0137
:
CurrentSpeed (FC) 8 Gb/s
:
TxPower(RDP) 0
RxPower(RDP) 0
TransceiverTemp(RDP) 0
SupplyVolt(RDP) 0
TxBiasCurrent(RDP) 0
ConnectorType(RDP) Unknown
TxType(RDP) Unknown
FECStatus(RDP) Inactive
UncorrectedBitErr(RDP) -
CorrectedBitErr(RDP) -
CorrectedBitErr(RDP) -
12.6 Private network security commands
DS CLI commands are available that can be used to manage network security on the DS8880. 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 both Internet Protocol Security (IPSec) to protect the data transmission and Transport Layer Security (TLS) to protect application access.
The following IPSec commands are available:
setipsec
Use the setipsec command to manage IPSec controls. You can enable and disable the IPSec server on the HMCs, either on the primary, secondary, or both.
 
Note: The server will not start without defined connections. The server starts automatically when the first connection is created, and stop when the last connection is deleted.
mkipsec
The mkipsec command creates an IPSec connection by importing an IPSec connection configuration file that contains a connection definition to the HMC.
rmipsec
The rmipsec command deletes an IPSec connection from the IPSec server.
chipsec
The chipsec command modifies an existing IPSec connection. Use it to enable and disable existing IPSec connections.
lsipsec
The lsipsec command displays a list of defined IPSec connection configurations.
mkipseccert
The mkipseccert command imports an IPSec certificate to the DS8880.
rmipseccert
The rmipseccert command deletes an IPSec certificate from the HMC.
lsipseccert
The lsipseccert command displays a list of IPSec certificates.
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 DS8880. It can also control port 1750 access to the Network Interface (NI) server for pre-Gen 2 certificate access.
It is primarily used to manage server access in the HMC, which includes the Common Information Model (CIM) Storage Management Initiative Specification (SMI-S), DS GUI, web user interface (WUI), and NI 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 now NIST-800131a-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) 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 status. If AOS is enabled, an AOS connection is active. An AOS connection is only used for remote support purposes.
For more information, see Chapter 5 of the Command-Line Interface User’s Guide, GC27-4212.
 
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.
12.7 Copy Services commands
Many more DS CLI commands are available. Many of these commands are used for the management of Copy Services, such as the FlashCopy, Metro Mirror, and Global Mirror commands.
These commands are not described in this chapter. For more information about these commands, see the following publications:
IBM DS8870 Copy Services for Open Systems, SG24-6788
IBM DS8870 Copy Services for IBM z Systems, SG24-6787
12.8 Further information
For more information about Copy Services configuration, see the following publications:
IBM DS8000 Series Command-Line Interface User’s Guide, SC27-8526
IBM DS8870 Copy Services for Open Systems, SG24-6788
IBM DS8870 Copy Services for IBM z Systems, SG24-6787
For more information about DS CLI commands that relate to disk encryption, see IBM DS8880 Data-at-rest Encryption, REDP-4500.
For more information about DS CLI commands that relate to LDAP authentication, see LDAP Authentication for IBM DS8000 Storage, REDP-4505.
For more information about DS CLI commands that relate to resource groups, see IBM System Storage DS8000 Copy Services Scope Management and Resource Groups, REDP-4758.
For more information about DS CLI commands that relate to Performance I/O Priority Manager, see DS8000 I/O Priority Manager, REDP-4760.
For more information about Thin-provisioning, see IBM DS8880 Thin Provisioning, REDP-5343.
For more information about DS CLI commands that relate to Easy Tier, see the following publications:
IBM DS8000 EasyTier, REDP-4667
DS8870 Easy Tier Application, REDP-5014
 
..................Content has been hidden....................

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