Вы находитесь на странице: 1из 5

Configuring a DS8K

OK, so much for the theory, but how do you configure a DS8K in practice?
You can either use GUI screens, or commands from a command line interface. I'll just discuss CLI
commands, as the GUI is supposed to be intuitive. The commands are more powerful and you can pre-
define them into a file and run them as a script. It is also possible to save the output of the script into a
file, which is useful for auditing purposes. If you chose to use the GUI, you need to take the same steps
as below, using a suitable GUI screen.

CLI Profiles
When using CLI commands, you should set up a profile file for every DS8K, and specify the DS8K
machine data in that profile.

The default profile is in c:\Program Files\IBM\dscli\profile Among other things, it should contain the IP
address of the Hardware Maintenance Console and the DS8K serial number like this

Hmc1: 1.2.12.13
Devid: IBM.2107-75BS072

You can invoke different profiles by using the -cfg parameter

Without a profile you need to specify the hardware device in every command like this

mkarray -dev IBM.2107-75BS072 -raidtype 5 -arsite S21

With a profile you can just use

mkarray -raidtype 5 -arsite S21

CLI command types


CLI commands can be grouped into 6 types

SHOW commands give detailed information about 1 component

LIST commands list out objects for a given type (ranks arrays etc)

MAKE is used to create an object

CHANGE is used to alter an object

REMOVE is used to delete an object

COPY SERVICES commands are used for mirroring and flashcopy and are not discussed here.

Defining 4 new RAID ranks


I'm assuming that your DS8K is installed and licensed, all physical cabling is complete, and your engineer
has inserted the disk groups.

To configure a DS8K with two arrays of FC disk and 2 arrays of FATA disk, you go through the following
steps (This install has a definite mainframe bias, but where different actions are needed for Open
Systems, they are mentioned).

First, define the I/O ports that will be used to communicate with the DS8K. The Setioport command has
two parameters, one for the type of communication, which can be one of SCSI-FCP, FC-AL or FICON,
and the port number. The number of ports you define should be the same as the number of channels that
were cabled up.

Setioport -topology ficon I001


Setioport -topology ficon I002

Next you create the RAID arrays. To do this, you need to know which Array Sites are free and available
for formatting, so you run lsarraysite -l first and note the free Array Sites.

Arsite DA Pair dkcap (10^9B) State Array


=============================================
S01 0 146.0 Unassigned -
S02 0 146.0 Unassigned -
S03 0 500.0 Unassigned -
S04 0 500.0 Unassigned -

The mkarray command needs two parameters, one to describe what type of RAID you want, and one to
specify which Array Site you want to use. RAID types can be 5,6 or 10.

mkarray -raidtype 5 -arsite S01


mkarray -raidtype 5 -arsite S02
mkarray -raidtype 5 -arsite S03
mkarray -raidtype 5 -arsite S04

It is always good practice to look at what you just created and make sure the result was what you
expected.

lsarraysite -l
lsarray -l

Array State Data RAIDtype arsite Rank DA Pair DDMcap (10^9B)


=====================================================================
A0 Unassigned Normal 5 (6+P+S) S1 - 0 146.0
A1 Unassigned Normal 5 (6+P+S) S2 - 0 146.0
A2 Unassigned Normal 5 (6+P+S) S1 - 0 500.0
A3 Unassigned Normal 5 (6+P+S) S2 - 0 500.0

Note that the DDMcap capacity figure is quoted in units of 10^9 Bytes. This is an IBM Gigabyte, or
1,000,000,000. The more usual figure, and the figure quoted for all Open Systems storage is 2^30 or
1,073,741,824 Bytes. This can cause confusion when calculating capacities.

Next you create the Ranks with the mkrank command and format the array up. In this example the ranks
are formatted as ckd, use -stgtype fb for Open Systems
mkrank -array A0 -stgtype ckd
mkrank -array A1 -stgtype ckd
mkrank -array A2 -stgtype ckd
mkrank -array A3 -stgtype ckd

Now you want to create four extent pools, one each of FATA and FC for each server. Each Extent Pool is
associated with either Rank Group 0 or Rank Group 1, which in turn are associated with Server0 and
Server1. All 4 Extent Pools are CKD, and all 4 pools are given names that show they are CKD, which
server they are associated with, and which tier disks they contain.

mkextpool -rankgrp 0 -stgtype ckd ckd-S0-T1


mkextpool -rankgrp 1 -stgtype ckd ckd-S1-T1
mkextpool -rankgrp 0 -stgtype ckd ckd-S0-T3
mkextpool -rankgrp 1 -stgtype ckd ckd-S1-T3

lsextpool -l

Name ID stgtype rankgrp


==============================
ckd-S0-T1 P0 ckd 0
ckd-S1-T1 P1 ckd 1
ckd-S0-T3 P2 ckd 0
ckd-S1-T3 P3 ckd 1

Now I should have created the extent pools before I created the Ranks, but I can now associated the
Ranks with the extent pools with the chrank command.

chrank -extpool P0 R0
chrank -extpool P1 R1
chrank -extpool P2 R2
chrank -extpool P3 R3

I want to use some of the Tier3 disks for Space Efficient Pools for backups. repcap is the amount of
physical space to reserve for space efficient volumes, while vircap is the amount of virtual space that can
be defined as disks.

mksestg -repcap 100 -extpool P2 -vircap 300


mksestg -repcap 100 -extpool P3 -vircap 300

As these are CKD pools, I need to create Logical Control Units. Open Systems users can skip this step.
This command will create 16 LCUs, numbered from B100-B10F. As each LCU can have 256 volumes,
that allows me to address 4096 volumes.
(For information, the B1 is the storage unit identifier and the 00-0F is the logical subsystem identifier. The
four combined hex numbers are the LCU address. The Volume addresses will be A000-A0FF, A100-A1FF,
etc. . You will also need an IOGEN to define the 16 LCUs and the 4096 volumes to z/OS. The link
between LCU numbers and volume addresses is made in the IO gen)

mklcu -qty 16 -id 00 -ss B100


lslcu

An Extent Pool that is associated with Server1 must also be associated with odd numbered LCUs.
Now finally I get to create some volumes. The mkckdvol command needs to know which extent pool to go
to for its extents, how big each volume is in cylinders, and how many of each type of volume to add

mkckdvol -extpool P0 -cap 1113 -name 33901-P0-#h A000


mkckdvol -extpool P0 -cap 10017 -name 33909-P0-#h A001-A09F
mkckdvol -extpool P0 -cap 30051 -name 339027-P0-#h A0A0-A0CF
mkaliasvol -base 1500 -order decrement -qty 32 A0FF

The commands above show 1 3390-1 being defined (the smallest size available, for use as a GDPS utility
volume), 159 mod9s, 48 mod 27s and 48 PAV aliases. Each CKD volume gets a nickname assigned. The
names chosen show the volume size and the assigned extent pool - you can make your own up of
course. The #h on the end of the name means to use the hexadecimal volume number as part of the
volume name. The final numbers represent volume ranges. 1100 is one single volume. 1101-119F is a
range of volumes.

Open Systems specific commands


If you are creating FB volumes, then you need two extra steps; Create Volume Groups and Create Host
Connections

Server hosts use two different ways to discover disks; SCSI MAP256 or SCSI MASK. You need to know
which type your server uses, and you can find this out with the commands

Ilshosttype -type scsimask


lshosttype -type scsimap256

These commands will list all the servers that use each discovery type. If your server is WIN2K, then it
uses SCSI MAP256, so the command to create a volume group called VG-W01 is

mkvolgrp -type scsimap256 VG-W01

Next you would create the volumes for that volume group. This command will create 8 50GB volumes in
the VG-W01 volume group. Note that the command is mkfbvol.

mkfbvol -extpool P0 -name W2K#h -cap 50 -volgrp VG-W01 1200-1207

Finally you need to create Host Connections using the command mkhostconnect. This effectively creates
LUN masking, so each server can only see the volumes in its group. Note that a volume can belong to
more than one volume group.

mkhostconnect -hosttype Win2000 -wwname 200000E0123456789 -ioport all


-portgrp 3 W2K1 -fc0 -volgrp VG-W01

These examples give a flavour of how a Windows setup could work, but the commands and options will
be different for the various host types.

EasyTier CLI commands


use the lskey command to find out of EasyTier is installed and licensed for a particular storage unit
lskey {unitname}

To get more information, use the showsi or chsi commands. The EasyTier information is contained in the
lines

ETAutoMode all
ETMonitor all

If you want information about a specific extent pool, use the lsextpool -l or showextpool command. They
will tell you how many tiers exist in an extent pool and also if they are managed by Easy Tier Automatic
Mode.

You may want to manually move a logical volume between two extent pools and you can do this
tranparently, without interfering with normal host applications. To do this, you would use the managefbvol
or manageckdvol command, depending on what type of pool you are working with. Note that you cannot
migrate an fb logical volume into a ckd extent pool, and you cannot migrate a ckd volume into an fb extent
pool. The command syntax is

managefbvol -action migstart -eam eammethod -extpool TgtPoolID VolID

where TgtPoolID is the ID of the target pool and VolID is the ID of the logical volume to be used.
The eammethod (Extent allocation method) can be either rotatevols or rotateexts and can be changed
when migrating a volume (so if that is all you want to do, you can 'migrate' the volume into the same
extent pool, and change the EAM in the process).
Rotate extents or storage pool striping is the default EAM when a volume is created in a non-managed
extent pool. The extents of a volume can be striped across several ranks at a granular 1 GB extent level.
It is considered by IBM to be the best method to reduce skew and minimize hot spots. However it does
require an extent pool with multiple ranks.
Rotate volumes is used if you want to manage performance manually. All the extents from a volume are
written to the same extent pool until it is full, then allocation switches to the next extent pool. So for
example, extent pool 1 might contain all of volume1, then all of volume2 then part of volume3. Extent pool
2 would contain the rest of volume3, all of volume4 and so on.

If you wanted to hold the migration, say because performance issues develop, then you would use the
command

managefbvol -action migpause etc.

and to restart the migration you would use

managefbvol -action migresume etc.

Вам также может понравиться