Configuring new count key data storage

This scenario describes how to configure new count key data (CKD) storage within your storage image for a zSeries host system.

Before you begin, you must have the command-line interface prompt, and you must be connected to a storage image that will be used for zSeries host system storage.
The scenario first creates the CKD storage configurations, then configures the storage unit I/O ports for zSeries host system attachment. These two basic steps can be run in the reverse order, but it is better to create storage configurations first, thereby creating the media to back up nonstorage-related configuration data.

To configure new count key data storage, perform the following steps:

  1. Create CKD extent pools. Each extent pool is defined with a rank group [ 0 | 1] and storage type [fb | ckd] attribute. The minimum requirement is to define one extent pool for each rank group and storage type attribute combination. This means that you must make a minimum of two extent pools for a DS6000™ that only contains CKD storage, one CKD extent pool per rank group.

    You can make more than the minimum number of extent pools. For example, unique extent pools can be defined for each RAID type (5 or 10) that is configured in a DS6000. Or extent pools can be defined and named according to the host system attachments that access the volumes created from extent pool extents. There can be as many extent pools as rank groups.

    Extent pools that are defined for rank group 0 or 1 are assigned an even- or odd-numbered extent pool ID, respectively. Even-numbered extent pools are managed by storage server ID 0. Odd-numbered extent pools are managed by storage server ID 1. Each rank group is assigned to one extent pool, therefore storage server workload is directly affected by the rank assignments to even- and odd-numbered extent pool IDs. It is best to evenly distribute rank and extent pool allocations in order to keep the storage server workloads balanced.

    Extent pools can be defined before or after the arrays and rank groups are defined. If extent pools are defined before the arrays and rank groups are defined, then the new ranks can be directly assigned to existing extent pools. Otherwise, you must modify each rank to complete the extent pool ID assignment after extent pools have been defined.

    Determine if the minimum set of extent pool objects exist. Identify the rank group (0 or 1) assignments for each extent pool object. Determine if additional extent pool object definitions are required. Create a list of the existing CKD extent pools with the following command.

    dscli> lsextpool -dev storage_image_ID -stgtype ckd

    Make two extent pools with the following commands. Assign a unique nickname to each extent pool.

    dscli> mkextpool –dev storage_image_ID –rankgrp 0 -stgtype ckd extent_pool_name

    dscli> mkextpool –dev storage_image_ID –rankgrp 1 -stgtype ckd extent_pool_name

    Optionally, make additional CKD extent pools as necessary. For example:
    • For each RAID type (5, 10)
    • For each disk drive module size
    • For each CKD volume type (3380, 3390)
    • For each LCU address group

    Identify the assigned extent pool ID for each new extent pool. Keep this list for the next steps in this scenario. Use the following command to create a list of extent pool IDs.

    dscli> lsextpool –dev storage_image_ID -stgtype ckd

  2. Create arrays and ranks. The disk drive modules (DDMs) are packaged into storage enclosure pairs.

    A DS8000 contains at least one storage enclosure pair, with a minimum of 16 DDMs. A DS6000 contains at least one storage enclosure pair, with a minimum of eight DDMs. All of the DDMs that are installed in a storage enclosure pair have identical capacity, RPM, and interface characteristics.

    The DDMs in a storage enclosure pair interface to a device adapter (DA) pair. A DS contains at least one DA pair. A DA pair interfaces with one to four storage enclosure pairs.

    The DDMs of a storage enclosure pair are partitioned into array sites. A DS8000 array site consists of eight DDMs, four from each storage enclosure of a storage enclosure pair, two or four (eight DDM) array sites per storage enclosure pair. A DS6000 array site consists of four DDMs located in one storage enclosure of a storage enclosure pair, two to eight (four DDM) array sites per storage enclosure pair. All array sites of a storage enclosure pair have identical capacity, RPM, and interface characteristics, and interface to a common DA pair.

    To begin, create a list of array site IDs and identify all of the array sites with the status "unassigned". Use the following command.

    dscli>lsarraysite –dev storage_image_ID –state unassigned
    • Identify the capacity, RPM, interface, and DA pair attributes for each array site.
    • Decide on the RAID type for each array site.
    Make one array from one or two of the array sites.
    • For the DS6000, specify one or two array sites with identical capacity, RPM, interface, and DA pair attributes.
    • For the DS8000, specify one array site.
    The new array inherits the capacity, RPM, interface, and DA pair characteristics of its parent array site(s). The array status is “unassigned” until it is assigned to a rank.

    Use the following command to make an array.

    dscli>mkarray –dev storage_image_ID –raidtype 5 | 10 –arsite arraysite_ID

    Identify the new array IDs and identify the arrays with status “unassigned” and a common RAID type (5 or 10). Use the following command.

    dscli>lsarray –dev storage_image_ID –state unassigned –raidtype 5 | 10

    Make one rank for each array and assign the rank to an extent pool ID. A rank is assigned to rank group 0 or 1 according to the rank group number of the assigned extent pool ID. If a rank is not assigned to an extent pool, then the rank group and configuration state attributes are “unassigned”. Assign each “unassigned” array to a rank using the following command.

    dscli>mkrank –dev storage_image_ID -array array_ID -stgype ckd -extpool extentpool_ID

  3. Create logical control units (logical subsystems). The DS8000 has a 64K-256 volume address space (16K for the DS6000) that is partitioned into 255(64) logical subsystem (LSS) units, where each LSS contains 256 logical volume numbers. The 255(64) LSS units are assigned to one of 16(4) address groups, where each address group contains 16 LSSs, or 4K volume addresses.

    there are two volume data types, fixed block and count key data (CKD). An address group contains only one volume data type, either up to 4K fixed block volumes or 4K CKD volumes. When an address group contains CKD volumes, the address group LSSs are defined as logical control units (LCU).

    Typically, LCUs are created in groups of 16, beginning at LSS address X’x0’. The LCU logical subsystem objects must be defined before CKD logical volumes can be defined.

    To begin, create a list of the unassigned and available address groups using the following command.

    >lsaddressgrp –dev storage_image_ID

    Use the list to identify all of the defined address group objects (0-F).
    • If the list is empty, then all of the address groups are available to be defined (0-F or 0-3).
    • A defined address group with the storage type FB (fixed block) is not available to be defined.
    • A defined address group with the storage type CKD and with fewer than 16 LSSs is available for LCU definition.
    • If you are using an undefined address group to make new LCUs, then select the lowest numbered address group that is not defined.
    • If you are defining a new LCU in an existing CKD address group, then use the lslcu command to identify LCUs that are already defined in the target address group.

    You also can create a list of the undefined LCUs in an existing CKD address group. Select the lowest numbered logical subsystem object that is not defined. Use the following command.

    dscli>lslcu –dev storage_image_ID–addrgrp address_group

    Make one or more LCUs (logical subsystems) using the following command.

    dscli>mklcu –dev storage_image_ID -qty quantity -id LCU_ID -ss ss_ID -lcutype type
    • -qty specifies the quantity of LCU IDs (1-64) to create, starting with the LCU ID that you specify with the -id flag.
    • -id specifies the first LCU ID (00-FE) to create.
    • -ss is a user-specified LCU identifier.
    • -lcutype is an optional LCU type (the default LCU type is 3990 model 6).
  4. Create CKD volumes. A DS6000 or DS8000 contains 64K possible logical volumes. The quantity of logical volumes that can be created is dependent on the machine type and model, installed raw storage capacity, the configured storage RAID type, and the size, or capacity of each volume that is created.

    A logical volume consists of one or more data extents that are allocated from a single extent pool. Volume data type is inherited from the extent pool extent storage type (fixed block or CKD) characteristic. When a CKD volume is created, volume attributes are further defined as a base or alias volume type, 3390 or 3380 volume cylinder type, and volume capacity in cylinders. These volume attributes characterize the volume to the host system that will eventually access the volume. Each volume is assigned a volume ID, which is the volume address within the DS6000 or DS8000 64K address space. Host access to a volume is enabled when the volume ID is assigned to a volume group, however CKD volumes are automatically assigned to the volume group CKD FICON/ESCON All (ID 0).

    To begin, create a list of CKD extent pool IDs. Determine the extent pool IDs that you will use as the source for the CKD logical volumes you will create.

    Extent pool attributes determine the size and quantity of volumes that can be created. The extent pool ID (even or odd) indicates the storage server (0 or 1) affinity, which dictates that the LCU ID component of the volume ID must be even- or odd-numbered.

    Use the following command to create a list of CKD extent pool IDs.

    dscli> lsextpool –dev storage_image_ID -stgtype ckd

    For each LCU, make 128 base CKD volume using the following command.

    dscli> mkckdvol –dev storage_image_ID -extpool extentpool_ID –cap 3339 –name DS_1_vol_#h 0000-007F
    • -extpool identifies a CKD extent pool containing available data extents.
    • -cap specifies the capacity of 3339 cylinders.
    • -name assigns a unique name to each volume, including a hexadecimal volume ID.
    • Volume ID 0000-007F specifies 128 volumes, starting at CKD address group (0), LCU ID (00), and volume number (00). You must specify volume IDs that have not been previously defined as CKD or fixed block volumes.

    For each LCU, make 128 alias volumes using the following command.

    dscli> mkckdvol –dev storage_image_ID -extpool extentpool_ID –base 0000 –name DS_1_pav_#h 0080-00FF
    • -extpool identifies the CKD extent pool that will register the alias volume IDs.
    • -base specifies that all 128 alias volumes are assigned to existing base volume ID 0000. Base and alias volumes must be associated with a common LCU ID and a common extent pool ID.
    • -name assigns a unique name to each alias volume, including a hexadecimal volume ID.
    • Volume ID 0080-00FF specifies 128 alias volumes, starting at CKD address group (0), LCU ID (00), and volume number (80). You must specify volume IDs that have not been previously defined as CKD or FB volumes.
  5. CKD volume groups are created by the system. The system creates the CKD FICON/ESCON All volume group ID (0) and assigns all CKD base and alias volumes to this volume group. This volume group ID (0) is assigned to I/O ESCON ports and to I/O fibre-channel ports that are configured for FICON I/O operations. The ESCON I/O ports are constrained to access Address Group 0 volume IDs (0000-0FFF).
  6. Configure I/O ports. The DS8000 supports the ESCON and fibre-channel I/O adapter card types. The DS6000 supports only the fibre-channel I/O adapter card type.

    For DS8000, I/O adapter cards are installed in I/O enclosures, each containing up to four I/O adapter cards. For DS6000, one or two I/O adapter cards are installed in each of the two CEC assemblies.

    Each ESCON I/O adapter card contains two I/O ports. Each fibre-channel I/O adapter card contains four I/O ports.

    The system automatically creates one I/O port object to represent each I/O adapter card I/O port. The default fibre-channel I/O port object settings enable SCSI-FCP "identified" access to fixed block volumes. No user action is necessary for ESCON I/O port setup.

    A minimum of four I/O ports should be configured for FICON I/O operations. Select ports with physical locations on different I/O adapter cards. If possible, the I/O adapter cards should be located in different I/O enclosures.

    Identify the port ID values that are to be configured for CKD volume access. Create a list of the existing fibre-channel I/O ports with the following command.

    dscli>lsioport -dev storage_image_ID -type fc

    Configure the I/O ports to enable the FICON topology using the following command.

    dscli>setioport –dev storage_image_ID –topology ficon port_ID1 ID2…IDn

    The I/O ports will be automatically set offline and returned to the online state after configuration changes are applied.

Related reference
setioport
lsioport
lsarraysite
mkarray
lsarray
mkrank
mkextpool
lsextpool
lsaddressgrp
mklcu
lslcu
mkckdvol
Library | Support | Terms of use | Feedback
© Copyright IBM Corporation 2004, 2007. All Rights Reserved.