Professional Documents
Culture Documents
Ds8000 Ese Pool
Ds8000 Ese Pool
Bert Dufrasne
Peter Kimmel
Bruce Wilson
ibm.com/redbooks
Redpaper
REDP-4554-01
Note: Before using this information and the product it supports, read the information in Notices on page v.
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .v
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Now you can become a published author, too! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Stay connected to IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Summary of changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
June 2014, Second Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Chapter 1. Thin provisioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 General description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1 Thin provisioning model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.2 Thin provisioning usage examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 DS8000-specific implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Track space-efficient (TSE) volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Extent space-efficient (ESE) volumes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
2
3
4
5
5
5
6
17
18
18
19
21
21
21
27
28
31
32
32
32
35
36
36
38
iii
4.4 Disabling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Chapter 5. DS GUI and DS CLI support for thin provisioning . . . . . . . . . . . . . . . . . . . .
5.1 DS GUI and DS CLI support for thin provisioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 DS Storage Manager GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 DS CLI commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Logical configuration process for ESE volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1 Configuring ESE volumes with the DS GUI illustrated . . . . . . . . . . . . . . . . . . . . .
5.4.2 Configuring ESE volumes with the DS CLI illustrated. . . . . . . . . . . . . . . . . . . . . .
41
42
42
47
57
58
66
75
76
76
76
78
79
iv
105
105
105
105
105
106
Notices
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area. Any
reference to an IBM product, program, or service is not intended to state or imply that only that IBM product,
program, or service may be used. Any functionally equivalent product, program, or service that does not
infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to
evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document. The
furnishing of this document does not grant you any license to these patents. You can send license inquiries, in
writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A.
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of
express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may make
improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time
without notice.
Any references in this information to non-IBM websites are provided for convenience only and do not in any
manner serve as an endorsement of those websites. The materials at those websites are not part of the
materials for this IBM product and use of those websites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring
any obligation to you.
Any performance data contained herein was determined in a controlled environment. Therefore, the results
obtained in other operating environments may vary significantly. Some measurements may have been made
on development-level systems and there is no guarantee that these measurements will be the same on
generally available systems. Furthermore, some measurements may have been estimated through
extrapolation. Actual results may vary. Users of this document should verify the applicable data for their
specific environment.
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm the
accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the
capabilities of non-IBM products should be addressed to the suppliers of those products.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the sample
programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore,
cannot guarantee or imply reliability, serviceability, or function of these programs.
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines
Corporation in the United States, other countries, or both. These and other IBM trademarked terms are
marked on their first occurrence in this information with the appropriate symbol ( or ), indicating US
registered or common law trademarks owned by IBM at the time this information was published. Such
trademarks may also be registered or common law trademarks in other countries. A current list of IBM
trademarks is available on the web at http://www.ibm.com/legal/copytrade.shtml
The following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both:
AIX
DS8000
Enterprise Storage Server
FlashCopy
GPFS
IBM
Parallel Sysplex
Redbooks
Redpaper
Redbooks (logo)
System Storage
System z
TDMF
Tivoli
Tivoli Enterprise Console
z/OS
vi
Preface
Ever-increasing storage demands have a negative impact on an organizations IT budget and
complicate the overall storage infrastructure and management. Companies are looking at
ways to use their storage resources more efficiently.
Thin provisioning can help by reducing the amount of unused storage typically allocated to
applications or users. Thin provisioning, now available for the IBM DS8000, defers the
allocation of actual space on the storage system until the time that the data must effectively
be written to disk.
This IBM Redpaper publication provides an overall understanding of how thin provisioning
works on the DS8000. It provides insights into the functional design and its implementation on
the DS8000 and contains illustrations for the configuration of thin-provisioned volumes from
either the DS GUI or the DS CLI.
This edition reflects the capability to define an extent space-efficient (ESE) repository, which
was introduced with the DS8870 Release 7.2 firmware.
This paper also includes considerations that will help you decide which applications will
effectively benefit from thin provisioning. It takes you through scenarios and utilities for
migrating from standard volumes to thin-provisioned volumes.
Authors
This paper was produced by a team of specialists from around the world working at the
International Technical Support Organization, San Jose Center.
Bert Dufrasne is an IBM Certified IT Specialist and Project Leader for IBM System Storage
disk products at the ITSO, San Jose Center. He has worked at IBM in various IT areas. He
has written many IBM Redbooks publications and has developed and taught technical
workshops. Before joining the ITSO, he worked for IBM Global Services as an Application
Architect. He holds a Masters degree in Electrical Engineering.
Peter Kimmel is an IT Specialist and Advanced Technical Support team lead of the
Enterprise Disk Solutions team at the ESCC in Mainz, Germany. He joined IBM Storage in
1999 and since then worked with all the various IBM Enterprise Storage Server (ESS) and
DS8000 generations, with a focus on architecture and performance. He has been involved in
the Early Shipment Program (ESP) of these early installations and all current installations,
and co-authored several DS8000 IBM Redbooks publications. Peter holds a Diploma (MSc)
degree in Physics from the University of Kaiserslautern.
Bruce Wilson is a Senior Education Specialist with ITS in IBM Canada. He has worked with
IBM for 32 years, with the first 10 years in the field servicing mainframe servers and various
storage products. For the last 22 years, he has instructed IBM service representatives on the
System z server, IBM Parallel Sysplex, and disk and tape hardware. Bruce has
co-authored two previous Redbooks publications dealing with hardware configuration
definition (HCD) and SAN products.
vii
For their input and advice during the preparation of this paper:
Rick Ripberger, Dale H. Anderson
IBM US
Comments welcome
Your comments are important to us!
We want our papers to be as helpful as possible. Send us your comments about this paper or
other IBM Redbooks publications in one of the following ways:
Use the online Contact us review Redbooks form found at:
http://www.ibm.com/redbooks
Send your comments in an email to:
redbooks@us.ibm.com
Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. HYTD Mail Station P099
2455 South Road
Poughkeepsie, NY 12601-5400
viii
Explore new Redbooks publications, residencies, and workshops with the IBM Redbooks
weekly newsletter:
https://www.redbooks.ibm.com/Redbooks.nsf/subscribe?OpenForm
Stay current on recent Redbooks publications with RSS Feeds:
http://www.redbooks.ibm.com/rss.html
Preface
ix
Summary of changes
This section describes the technical changes made in this edition of the paper and in previous
editions. This edition might also include minor corrections and editorial changes that are not
identified.
Summary of Changes
for DS8000 Thin Provisioning
as created or updated on July 2, 2014.
xi
xii
Chapter 1.
Thin provisioning
This chapter introduces the concepts and terminology related to thin provisioning in general.
It also includes a brief overview of the DS8000 thin provisioning implementation.
Storage
Full Provisioning
Real capacity
Real capacity
Used
capacity
Thin Provisioning
Virtual capacity
Used
capacity
Capacity
Pool
Allocates on
write
Used
capacity
Figure 1-1 General differences between full provisioning and thin provisioning
The amount of real capacity in the storage subsystem is shared between all space-efficient
volumes. The amount of real capacity is by definition less than the total virtual capacity. The
ratio between virtual capacity and real capacity represents the storage oversubscription or
storage over-commitment.
Thin provisioning allows a more efficient capacity use in the storage subsystem. The
automated capacity allocation (when required by applications) facilitates capacity
management, as well. Capacity monitoring is still necessary, but can now be changed from a
volume-based tracking, which can only be done on a per server basis, to the back-end
storage subsystem, where the overall view of virtual capacity and real capacity allocation is
available.
Write request
comes to the
space efficient
volume
Volumes with
user requested
capacity are
created from the
virtual capacity
pool
Capacity is
allocated prior
to the write
Space-efficient volumes
Space-efficient volumes are usable volumes that can be assigned to any hosts. These
volumes do not have any physical capacity (except for their required metadata) when initially
created. With the first write operation to the volume, real capacity from the real capacity pool
will be allocated to the volume.
1.3 Terminology
In this section, we introduce additional terms related to thin provisioning and used in the
remainder of this book:
Virtual capacity
Virtual capacity is the capacity that can be used to create space-efficient volumes. The
virtual capacity is usually related to a physical entity (for example, an extent pool). The
virtual capacity has user-specified capacity value, which represents the amount of all
expected capacity to be used by space-efficient volumes.
Over-provisioning
Over-provisioning is the ratio of the virtual capacity to the real physical capacity.
Space efficiency
Space efficiency (SE) can be seen as a synonym for thin provisioning. In the DS8000, two
categories of space-efficient volumes are implemented, which are used for different
purposes.
Track space-efficient (TSE) volumes
TSE volumes are meant for use with space-efficient FlashCopy. For details, see 3.2, Track
space-efficient volumes on page 18.
ESE volumes
ESE volumes are denoted as common thin provisioning volumes. The virtual space is
provided from the free space of the DS8000 extent pools or, when defined, from the ESE
repository. For details, see 3.3, ESE logical volumes on page 21.
Chapter 2.
In the DS8000 thin provisioning implementation (ESE volumes) with its granularity of 1 GB
extents, the metadata space overhead is small. It is only 0.44%, which means that every
extent used for metadata can manage 227,555 usable extents.
Quick Init is a function that allows a fast extent initialization process. This quick initialization
helps alleviate any performance implication resulting from the overhead introduced by the
nature of thin provisioning. Quick Init is up to 2.6 times faster than the regular initialization
process and is invoked every time that a new extent is added to an ESE volume.
Quick Init is also designed to start Copy Services operations directly after invocation, so there
is no need to wait for the initialization process to finish.
2.1.2 Recommendations
This section discusses specific elements to consider when planning to use thin provisioning.
Virtual capacity
Virtual capacity needs to be sized and configured before ESE volumes can be created. As
explained in Chapter 5, DS GUI and DS CLI support for thin provisioning on page 41, the
SM GUI will automatically create a specified amount of virtual capacity. However, the DS CLI
requires the amount of virtual capacity to be explicitly created. There are extra considerations
with it:
The amount of virtual capacity defined versus the real capacity available determines the
over-provisioning ratio. Therefore, plan well ahead to make sure it is appropriate (and
monitored to stay appropriate over time), as described in Chapter 6, Managing and
monitoring thin-provisioned volumes on page 75.
Virtual capacity can be increased as needed as long as free extents remain available.
Virtual capacity can only be deleted when there are no ESE or TSE volumes in the extent
pool. This underscores the importance of adequate planning for when and how much
virtual capacity is needed.
Note: Virtual capacity is needed for both ESE and TSE volumes. It is handled through a
single parameter called -vircap. Although virtual capacity can be expanded as long as
there are free extents available in the extent pool, the repository capacity for TSE volumes
cannot be expanded. Virtual capacity cannot be reduced easily; it can only be deleted
when there are no ESE or TSE volumes configured in the extent pool.
Over-provisioning
Over-provisioning is the ratio of virtual capacity to real capacity. The virtual capacity is the
amount of storage that is committed to the applications. The real capacity is the installed
hardware capacity.
Over-provisioning is a key consideration in a thin provisioning environment. To size the real
capacity pool, which translates into real storage hardware investment, the sustainable
over-commitment or over-provisioning has to be determined. Over-provisioning allows you to
save or defer the cost of hardware investments, but also introduces the risk of running out of
real capacity in a running production.
Extent pools
In a mixed extent pool, that is, one with both standard volumes and ESE volumes, the
available free extents can be allocated to either type of volumes. But every new standard
volume created is reducing the number of free extents (unless an ESE repository was
defined), therefore increasing the over-provisioning ratio for the ESE volumes. That means,
from a management perspective, it is probably desirable to have standard volumes and ESE
volumes in separate extent pools. This does not apply as much to TSE volumes, because the
repository capacity is fixed and there can be only one repository in an extent pool.
Subsequent creations of TSE volumes therefore have less of an impact on standard volumes.
For the ESE volumes, the dependency is only the virtual capacity and its limits.
10
Note: Minimizing the number of extent pools is maximizing the options to share the
contingency capacity between the volumes inside the individual extent pools. This helps
avoid out-of-space conditions in one extent pool while other extent pools might still have
enough contingency/buffer capacity available.
Note: The DS8000 thin provisioning implementation offers the flexibility to have both
standard volumes and thin-provisioned volumes in the same extent pool, which provides a
choice, unlike other implementations. The recommendation to have separate extent pools
for the two volume types is based on an ease of management perspective.
RAID levels
From a thin provisioning perspective, RAID-5 provides the most balanced approach between
space efficiency, resiliency, and performance. RAID-10 provides increased performance but
does not fit well into a space-efficient concept because it requires much more real capacity.
RAID-6, however, provides an increased level of resiliency against disk drive failures but is
also less space efficient than RAID-5.
Out-of-space behavior
Over-provisioning or over-commitment of capacity can result in a situation where the needed
capacity exceeds the capacity that is still physically available. In the DS8000 implementation
of thin provisioning for any write operations exceeding this amount, a write inhibit is sent to
the host, which will typically cause the software to fail. The DS8000 rejects write accesses to
the affected volumes until the required additional real capacity is made available for
allocation.
It is important to determine the tolerable over-provisioning ratio for a specific environment as
a realistic, stable average over time and use the threshold mechanisms that are provided to
receive warnings ahead of time. For this purpose, the thresholds need to be set according to
the individual client needs driven by the workload and application characteristics.
11
2.1.3 Sizing
The following size maximums apply to the DS8000 ESE thin provisioning implementation:
2.1.4 Performance
You might think that thin-provisioned volumes have lower performance than standard volumes
because some overhead is always involved in managing thin-provisioned volumes.
Performance measurements show nearly no performance impact associated with the
DS8000 ESE implementation of thin provisioning. The determining factors for this result are
the granularity of the capacity allocation (1 extent = 1 GB) and the fast initialization process,
which is referred to as Quick Init, for newly allocated extents. From a performance
perspective, ESE volumes are therefore in general suited for production volumes.
2.1.5 Applications
The efficiency of thin provisioning is dependent on the behavior of the applications in general,
especially in the way that they allocate space for their data. You must carefully select the
applications that can actually benefit from it. The application that performs this function is
typically a file system, or a database in cases where a file system is not used.
Ideally, the space allocation of the applications needs to have the following characteristics to
benefit from thin provisioning:
The application tends to localize its data in contiguous regions, rather than scatter the data
across the assigned ESE volume.
The application tends to reuse previously used space before using new space that was
never used before (using new space might trigger the allocation of more real capacity
extents to the assigned ESE volume). When the file system or database deletes data, the
space consumed by this deleted data is not automatically released.
Ideally, you want the application storage needs to increase monotonically over time.
The capacity allocation granularity of a specific implementation (1 GB ESE, 64 KB TSE) might
not be appropriate for certain applications.
The application (file system or database) might manage data in such a way that it ends up
fully allocating the volume even when the stored data at any certain time is actually much less
than the full volume capacity.
In general, the use of a Logical Volume Manager (LVM) is not expected to have a negative
impact on thin provisioning. If the LVM allows a logical volume to be subdivided into partitions,
it is advisable to create the partition boundaries aligned with an extent boundary of the logical
volume to improve the likelihood that the extent remains unallocated. This might not be easy
to determine in practice.
12
If a file system is used, this file system is expected to be the determining factor regarding the
interaction with thin provisioning. Databases typically can operate with or without a file
system. Without a file system, the database behavior is expected to be the determining factor
regarding the interaction with thin provisioning. For instance, if the database has the
characteristic of initializing all of its configured table spaces, any associated ESE or TSE
volumes will end up fully allocated, making thin provisioning useless in this case.
More information about platform and file system-specific behavior is in Chapter 7, Host
considerations and migration to ESE volumes on page 81, as well as considerations and
tools for migration to ESE volumes.
Note: It is beyond the scope of this paper to identify software or applications in relation to
their compatibility with the DS8000 Thin Provisioning feature.
13
14
Example 1
Example 2
Input: Real
capacity for
standard volumes
(GiB)
8192
16384
Input: Virtual
ESE capacity
required (GiB)
8192
32768
Input:
Overcommit ratio
for ESE
6:5
6:5
512
2048
Input:
Overcommit ratio
for TSE
8:1
8:1
Example 1
Example 2
TSE Repository
real capacity
(GiB)
64,70
258,82
Metadata
overhead for TSE
extents (GiB)
2,25
9,01
Metadata
overhead for ESE
extents (GiB)
36,00
144,00
Total real
capacity needed
for ESE capacity
(GiB)
6862,67
27450,67
Total real
capacity needed
for TSE capacity
(GiB)
66,96
267,83
Total real
capacity needed
in DS8000 (GiB)
15121,62
44102,49
146 GB disks
(6+P: 788,4 GB)
(7+P: 919,8 GB)
300 GB disks
(6+P: 1620 GB)
(7+P: 1890 GB)
-> number of
drivesets needed
for this real
capacity:
- 6+P arrays
- 7+P arrays
15
450 GB disks
(6+P: 2430 GB)
(7+P: 2835 GB)
Example 1
Example 2
For Reference,
to determine the
number of frames
needed:
16
Base + first
Expansion
maximum # drive
sets
24
Base + first,
second
Expansion
maximum # drive
sets
40
Base + first,
second, and third
Expansion
maximum # drive
sets
56
Base + first,
second, third,
and fourth
Expansion
maximum # drive
sets
64
Chapter 3.
17
Quick initialization
Allocating usable space for a DS8000 (standard) volume takes place at the time the volume is
created. The volume creation is done from the DS CLI or the DS GUI. Subsequently, a
process starts in the background to format the whole volume. Although the formatting process
is on-going, the volume is immediately accessible for servers.
Quick Init shortens significantly the time required to format a volume. In addition, Quick Init
enables all copy services for standard logical volumes to be established immediately. The
Quick Init provides the capability to allocate individual extents dynamically, when required, by
a write operation to an ESE logical volume.
18
19
Because space is allocated in tracks, and the system needs to maintain tables where it places
the physical track and how to map it to the logical volume, there is some overhead involved
with space-efficient volumes. The smaller the allocation unit, the larger the tables and the
overhead. The DS8000 has a fixed allocation unit of a track, which is a good compromise
between processing overhead and allocation overhead.
Summary: Virtual space is created as part of the extent pool definition. This virtual space
is mapped onto the repository (physical space) as it is used. Virtual space equals the total
space of the intended FlashCopy source volumes or space to contain the size of TSE
logical volumes that are intended to be used for other purposes. No actual storage is
allocated until write activity occurs to the TSE logical volumes.
Figure 3-1 illustrates the concept of TSE logical volumes.
Virtual repository capacity
Allocated tracks
Used
tracks
Extent
Pool
Space
efficient
volume
Ranks
Repository for
space efficient
volumes
striped across
ranks
normal
Volume
The green blocks represent the available extents in the extent pool. One thing that is not
shown in this figure is the extents used for metadata (overhead) to support the TSE logical
volume. The metadata must use extents in the pool, therefore reducing the number of
available extents in the pool. The number of metadata extents required is based on the size of
the virtual capacity of the extent pool. The metadata for the virtual capacity is approximately
.45% (point four five) of the virtual capacity set for the extent pool. For example, with the
virtual capacity of the extent pool set to 1000 GiB, the metadata will use 5 GiB space.
To complete the picture, with the 1000 (one thousand) GiB repository and the virtual capacity
of 10000 (ten thousand) GiB configured in an extent pool, the total metadata space that is
configured is 56 GiB. The total allocated space in the extent pool is 1056 GiB. If the virtual
space is used to create TSE logical volumes of 10000 GiB, the opratio (over provisioned
ratio) will be 10.
For more details about TSE logical Volume implementation in the DS8000 and FlashCopy SE
implementation, see IBM System Storage DS8000 Series: IBM FlashCopy SE, REDP-4368.
20
3.3.1 Metadata
Similar to TSE logical volumes, an ESE logical volume uses virtual capacity in the extent pool
to support the volume being allocated. When it is initially created, the volume uses no
physical capacity. However, the DS8000 must have metadata space available to support the
allocation of the ESE logical volume. The metadata holds information about extents and
volume blocks already allocated in a rank. This metadata that is used for thin provisioning
allows the DS8000 to determine whether new extents have to be allocated as data is written
to the volume.
The metadata space is determined by the virtual capacity setting of the extent pool. When the
extent pool is created, the virtual capacity of the extent pool is 0 (zero). There is no metadata
space required at this point. As ESE logical volumes are created, the virtual capacity is
automatically increased to support the total size of the volumes. As the virtual capacity is
increased, metadata space is allocated to support the virtual capacity that is set. As with TSE
logical volumes, the metadata space required is .45% (point four five) of the virtual capacity.
21
The size of the repository can be set up to the total available space in the extent pool, but it
will still be included in the available space when displaying the available space in the
extent pool. Although it is included in the available space, it cannot be used for anything but
storing data on ESE logical volumes.
Unlike a TSE repository that must be created before any TSE logical volumes can be created,
the ESE repository can be created before or after the ESE logical volumes are created. If
created after, any existing ESE logical volumes will be automatically added to the repository.
In this situation, the size of the repository must be large enough to contain all of the current
allocated extents being used by the ESE logical volumes.
Unlike the TSE repository, which cannot be changed in size or deleted unless all TSE logical
volumes are deleted, the size of the ESE repository can be changed dynamically, both to
increase or decrease its size, and deleted altogether.
Although it might seem simpler to create ESE logical volumes without a repository, there are
benefits to using a repository:
The available space to store data on the ESE volumes is protected in the pool, and it
cannot be used for standard volumes, TSE repository space, or metadata when creating
new ESE volumes.
The opratio (over provisioned ratio) is fixed. This is most important because if you add a
new standard volume to the extent pool, the opratio will not change.
If adding physical capacity to the extent pool, the percentage of the size of the repository
to the size of the extent pool is maintained. Therefore, when capacity is added to the
extent pool, the size of the ESE repository is automatically increased. In this scenario, the
opratio will decrease as a result.
Future functions might require the existence of a repository.
Note: The opratio for ESE storage is the ratio between the total virtual capacity of all ESE
logical volumes and the available physical extents in the pool to store the data for those
volumes. If you have 10 - 100 GB ESE logical volumes and the available physical extents
to store data on those volumes is 100 GB, the opratio is 10.0.
The opratio is only indicated when a repository exists in the extent pool.
22
Therefore, it is important to plan the space for the ESE logical volumes, so that adequate
space exists in the extent pool to store all the planned data that might be written to volumes
and to accommodate the virtual capacity of the volumes. The difference between the virtual
capacity of the volumes and the space on which to store data on the volumes is the opratio.
There are various ways to determine the highest possible virtual capacity. One way is to take
the available space in the extent pool (assuming there is nothing configured in the extent
pool) and multiply that number by 200. Another way is to use the indication that is provided on
the GUI. Using the GUI, when creating new volumes with SAM type of ESE selected, at the
top of the Add Volumes panel, the current virtual capacity is displayed as the available
capacity. This value is based on the current available extents in the pool that can be used for
metadata. As you add more volumes, the required space for metadata will reduce the
physical space for writing data to the actual volumes, which will increase the opratio. If you
actually created ESE volumes using all of the indicated capacity, there will be no space to
store any data on those volumes, which will make them useless.
So, to plan out the ESE logical volumes, three choices are possible:
The first method is to take an extent pool that already exists. The first step requires that
you determine the physical space (or available space) in the extent pool. From that
number, subtract the amount of space you require to store data on all the ESE volumes
that you plan to create in the extent pool. The remaining capacity will be available for ESE
volume metadata. Multiply that number by 200 to calculate an approximate virtual capacity
for the extent pool that can be used to create ESE logical volumes. The problem that will
occur is that the opratio will probably be extremely high, and not at all practical. See
Example 3-1 to review this calculation using actual numbers.
Example 3-1 Existing pool
23
24
Without an ESE repository, the real capacity is allocated using free extents from the extent
pool. Extents for standard logical volumes (if they exist) and dynamically allocated extents for
ESE logical volumes are allocated independently from the same extent pool. When the extent
pool has more than one rank, the dynamic allocation of extents follows the usual extent
allocation methods. That is, either rotate extents or rotate volumes, depending on what was
specified when the ESE logical volume was created.
Note: ESE logical volumes, TSE logical volumes, and standard volumes can coexist in the
same extent pool, although it is best to have only one type of volume per pool.
pool. An extent pool can include both an ESE and a TSE repository but there can only be one
of each type.
A lot of flexibility is available when you work with the ESE repositories. ESE repositories differ
from the TSE type in the following ways:
The actual size allocated will be rounded up to the next highest whole number percentage
of the current physical extent pool capacity, not what is specified.
You can dynamically increase or decrease the size of the repository. If storage is allocated
in the repository, the size cannot be lower than the current allocation.
You can specify a size starting at 0 GB.
If created after the ESE volumes exist, those volumes and any additional volumes will use
the repository space for storing data on the volumes.
Chapter 3. Space-efficient volumes in the DS8000
25
The ESE repository can be deleted without deleting any volumes, even if data is allocated.
The ESE repository automatically changes size when changing the physical capacity of
the extent pool, to maintain the size percentage of the repository to when it was created.
No overhead is required for the repository.
There are also certain restrictions in working with ESE repositories:
The ESE repository is only supported with FB type storage.
It can only be created, managed, and deleted by DSCLI commands.
The DS GUI does not provide any details for the ESE repository.
When using DSCLI commands, if -reptype is an optional parameter, the default value is
TSE. For example, when you use the showsestg command, be sure to use the parameter
-reptype ESE for the ESE repository details. If you do not specify the repository type, you
see the TSE repository details if the TSE repository exists, or it will respond with
Space-Efficient Storage pxx does not exist.
When you choose the capacity of the ESE repository, it is important to remember that it can
be dynamically changed to meet future needs, as required. If it is created before the ESE
volumes are created, also remember that space must be available in the extent pool for the
metadata of the volumes that you plan to create.
When you work with extent pools, an available space is indicated based on the current
configuration. Unfortunately, when you create an ESE repository, the space designated for
the repository remains in the available space for the extent pool, because the repository can
be removed at any time. Only as space in the repository is used to store volume data is the
available space reduced by the amount of the repository space that is used. Remaining
space in the repository is still considered available in the extent pool. Although it is indicated
as available space in the repository, in reality, the space cannot be used for anything else
but storing data for ESE logical volumes. Any attempt to use this reserved available space
for configuring volumes or a TSE repository will fail.
Because there is reserved capacity for storing data on the ESE volumes, the remaining
free or available extents in the extent pool can be used to increase the size of the repository,
or increase the virtual capacity of an existing ESE volume or create a new ESE volume. As
well (although not advised), it can be used to create standard volumes, or a TSE repository
and volumes.
To calculate the real available capacity, after the ESE repository is created, you must perform
these tasks:
1. Determine the available capacity (use the lsextpool command).
2. Subtract the ESE repository capacity (use the lssestg command).
3. Add the ESE repository allocated capacity (use the lssestg -l command).
Trying to determine the amount of virtual space that is available to use can be a challenge.
You can use the same means as described earlier to determine the space with which to work,
but change the space for ESE volume data to ESE repository size. The purpose of the
repository is to provide space for the ESE volume data. This will give you the details
concerning capacity when you use an ESE repository.
26
Figure 3-3 illustrates the general ESE logical volume when using an ESE repository.
With the repository in the extent pool, any extents required for storing ESE volume data will
be allocated from the extents that belong to the repository (just like TSE volumes), and not
from the free extents in the extent pool.
27
Depending on the incoming I/O operation and the current status of the volume, different
situations can occur and are handled as described:
Write access to a DS8000 block within the allocated capacity
The block is already allocated in an extent. The write operation continues normally, where
data is stored in the write cache and the write is committed to the application server. Upon
a destage from cache to disk, data is written to the appropriate block in the extent that was
allocated.
Write access to a DS8000 block where no capacity is allocated
The DS8000 dynamically allocates to the logical volume the capacity needed to store the
write data to disk. For an ESE logical volume, the capacity allocated is one extent. The
data is stored into the write cache and the write is committed to the application server. At
this time, unused data in the extent is initialized (with Quick Init). Upon a destage from
cache to disk, data is written to the appropriate block in the extent that was allocated.
Read access to a DS8000 block with allocated capacity
This is the same situation as in a standard logical volume. When the data is not already in
the read cache, a stage operation will direct the read operation to the logical block and
load the data into the read cache for the next potential reads.
Read access to a DS8000 block where no capacity is allocated
The data for this logical block is synthesized in the read cache with an initialization pattern.
Read operations to unallocated capacity will normally not happen from an application
standpoint, because applications typically read data already stored on disk. In other
words, it is unlikely that data is used, when it has never been written. From the standpoint
of the operating systems and lower levels, reads from un-allocated capacity can happen
because all blocks of volume include the virtual capacity can be addressed by the host.
The extent pool is equipped with parameters to allow monitoring of the real capacity
utilization. The most important parameters are listed. These parameters are available for real
and for virtual capacity. The values can be obtained for each extent pool with the DSCLI
command showextpool:
configured
Gives the number of real extents that are configured to the extent pool.
allowed
The number of real extents that remain, when a limit has been set. If the limit is disabled or
has been set to 100%, the allowed extent has the same number as the configured extent.
available
The number of extents that are free to be allocated either by standard logical volumes or
ESE logical volumes. If an ESE repository exists, available repository extents are included
in this number.
allocated
The value of allocated real extents. It is the sum of extents allocated in standard logical
volumes and ESE logical volumes.
28
If there is no ESE repository, this out-of-space condition will remain until new physical
capacity is made available to the DS8000 storage facility image. Therefore, one or more
additional ranks must be assigned to the specific extent pool. If ranks are available in the
DS8000 frames, but have not been configured yet, they can be configured now to the extent
pool. If ranks have been configured to the extent pool as reserved ranks, additional capacity is
made available by simply unreserving one or more of those ranks. Otherwise, one or more
new ranks have to be physically installed and subsequently added to the extent pool.
If there is an ESE repository, you can handle the situation in one of several ways. If there are
free extents in the extent pool, increase the size of the repository to use up to all of the free
extents. This will alleviate the problem, but it might only be temporary, depending on future
allocation requirements and how much additional space was added to the repository. If there
are no free extents in the extent pool, additional physical capacity will need to be added to the
extent pool. As soon as the additional physical capacity is added, the repository will
automatically increase in size, which will alleviate the out-of-space condition.
Important: Out-of-space conditions in an extent pool need to be avoided in any case,
because this definitely translates into application access loss.
An extent pool is characterized by parameters and functionality to allow monitoring of its
capacity.
One parameter is the extent threshold for the extent pool. This is important when operating
without an ESE repository. The threshold is set as a percentage of the number of remaining
available extents. For example, if the threshold is set to 15%, which is the default, a Simple
Network Management Protocol (SNMP) trap is sent out to the data center management
console as a warning that the remaining available capacity for this extent pool has fallen
below 15% of the overall initial capacity. However, real capacity (extents) can still be
allocated.
For additional safety, an extent limit can be configured. This limit provides a restricted amount
of capacity that is not initially accounted for as free extents in the extent pool. This gives you
an additional reserve that can be brought into the extent pool if you cannot install additional
capacity quickly enough after getting the first warning (from the extent threshold) that the
available capacity is already running low.
29
Figure 3-4 illustrates these concepts of threshold and extent limit without an ESE repository.
Virtual Capacity
Restricted Extents
Extent Limit
Extent Threshold
ESE LV
Free Extents
Standard
LV
Available Extents
Extent Pool
When you use an ESE repository, you can use repository parameters to monitor the
allocation of extents in the repository. One parameter is the repcapthreshold, which is used
to set the minimum percentage of available space in the repository. If the percentage of
available space falls below this parameter, the repository will be in a status of threshold
exceeded. This parameter is one of three threshold settings that exist for a repository. This
one is referred to as the user threshold. The other two thresholds are system controlled and
cannot be changed. They are 0% (repository full) and 15% (85% full). (See the mksestg
command in the DSCLI commands documentation for a complete explanation of this
parameter.) After a threshold is met, a notification will be sent out (if configured using the chsp
command).
In Figure 4-5, the layout of the extent pool is shown when using an ESE repository.
30
31
OS platforms or applications that cause the storage subsystem to claim the whole volume
capacity when attaching the DS800 logical volume cannot benefit from thin provisioning.
Such operating systems or applications need to use standard logical volumes.
32
In the DS8000, allocation of space to an extent-space-efficient logical volume has the same
granularity (1 GB extent) as a standard volume. Therefore, the performance of I/O operations
on such an extent needs to be nearly identical to that of a standard logical volume.
Additionally, the overhead involved with the management of the ESE logical volume is
generally limited to the overhead involved with real extent allocation. Because there are a
large number of tracks per extent, the number of extent allocations that might occur is
relatively limited.
Issues can also exist with sequential performance if the capacity allocations do not maintain a
sequential ordering of sets of logical tracks on the logical volume within the allocated capacity.
A large capacity allocation might be less space efficient for some applications, but it tends to
have fewer performance problems due to the reduction in the number of necessary capacity
allocations, the reduction in metadata required to determine whether capacity is allocated,
and the grouping of sequential logical tracks into capacity allocations.
A storage provisioning method used for a logical volume and its resulting performance and
storage allocation requirements might determine what applications are appropriate on a
certain logical volume. In general, use of a space-efficient logical volume must have some
mechanism to determine when to release physical space associated with the logical volume.
Or, the application must be well behaved so that it tends to limit where it stores the data that
exists on the volume to prevent allocation of more capacity than the data on the volume
requires.
33
34
Chapter 4.
Licensing
Activation
Enabling
Disabling
This chapter also describes the effects of enabling and disabling thin provisioning on existing
volumes and existing space-efficient FlashCopy targets.
Note: The Thin Provisioning feature license applies only to extent space-efficient (ESE)
volumes.
35
4.1 Licensing
Thin Provisioning is an optional chargeable licensed function that must be enabled to be
used. Thin Provisioning is not a capacity-tiered feature. It can be enabled or disabled
regardless of capacity.
Thin Provisioning function is enabled through a 242x licensed function indicator
feature (0707), plus a licensed function authorization feature number (7071). The licensed
function indicator feature numbers enable the technical activation of the function, subject to
the client applying a feature activation code made available from IBM. The licensed function
authorization feature numbers establish the extent of authorization for that function on the
242x machine for which it was acquired.
4.2 Activation
You can activate the Thin Provisioning license key after the IBM service support
representative (SSR) completes the storage complex installation or upgrades the system with
the required DS8000 Licensed Machine Code (LMC). The activation code must be retrieved
from the IBM Disk Storage Feature Activation (DSFA) website:
http://www.ibm.com/storage/dsfa
Before you connect to the IBM DSFA website to obtain your Thin Provisioning feature
activation code, ensure that you have the necessary information about your storage system.
You can collect that information from the Storage Unit General Properties page in the IBM
DS8000 Storage Manager.
You will also need the following items:
The IBM License Function Authorization documents. If you are activating code for a new
storage unit, these documents are included in the shipment of the storage unit. If you are
activating code for an existing storage unit, IBM sends these documents to you in an
envelope.
USB memory device for downloading your activation code into a file if you cannot access
the DS Storage Manager from the system that you are using to access the DSFA website.
Instead of downloading the activation code in softcopy format, you can also print the
activation code and manually enter it using the DS Storage Manager GUI or DS CLI.
After you obtain the Thin Provisioning activation code, apply it to your DS8000 storage
images by using the DS Storage Manager GUI or DS CLI. When applied, the code enables
you to use the Thin Provisioning feature and to begin configuring virtual storage on a storage
image.
The activation of licensed functions is described in detail in IBM DS8870: Architecture and
Implementation, SG24-8085.
Figure 4-1 on page 37 shows Thin Provisioning activation codes as displayed by the DS
Storage Manager GUI.
36
Example 4-1 shows Thin Provisioning activation codes listed by the DS CLI.
Example 4-1 DS CLI: Activation keys information
37
4.3 Enabling
When the Thin Provisioning license is activated on your DS8000, you can start creating
space-efficient volumes in an existing or a new extent pool and, therefore, start using the Thin
Provisioning function. You can now create volumes using the ESE storage allocation method.
Note: When you enable the Thin Provisioning function, the extent threshold for the existing
extent pools will change from 0% to 15%. Example 4-2 shows the new threshold value
after enabling thin provisioning.
Example 4-2 New threshold value after enabling thin provisioning
38
4.4 Disabling
To disable Thin Provisioning on a DS8000 where it was previously enabled and used, you
must first unconfigure all ESE volumes that are configured. Then, you can apply the
deactivation key. You need to obtain a new key from the IBM Disk Storage Feature Activation
(DSFA) website to disable thin provisioning.
You must apply the key on your DS8000 storage images by using the DS Storage Manager
GUI or DS CLI. When applied, the Thin Provisioning feature is disabled.
Deactivation of licensed functions is described in detail in IBM DS8870: Architecture and
Implementation, SG24-8085.
39
40
Chapter 5.
41
42
Figure 5-1 Open systems volumes main page - ESE volumes in chart data
43
When you create ESE volumes, the amount of available capacity and projected remaining
capacity (as shown at the top in Figure 5-2) is the supported virtual capacity in the extent
pool. This capacity is based on the available extents in the extent pool that can be used for
the metadata (overhead) required for ESE volumes that can be created.
The amount of projected remaining capacity is calculated according to the values entered for
the size and volume quantity of ESE volumes in the window.
Important: If you accidentally specify all remaining capacity for the size of your ESE
volumes and they are created, your extent pool will be full. All available storage (real
extents) will be used for space-efficient metadata. Then, no extents are available to store
data in those volumes.
The Summary display shows a total of 5 GiB allocated for the TSE and ESE repositories in all
extent pools. Currently, both of these indications might not reflect the actual setup in the
DS8000. The next two paragraphs explain what each value indicates.
The Allocated to TSE repository value includes the total for all the TSE repository space,
plus the overhead for all TSE repositories, plus the overhead for all TSE virtual capacity setup
in the extent pools. Also, it can include the overhead required for ESE virtual space in all
extent pools. When the first ESE logical volumes are created in an extent pool, the virtual
capacity of the extent pool is automatically increased in the extent pool to support the ESE
volumes. This virtual capacity requires overhead to support the volumes that use the space.
Three situations will affect the total shown in this line:
If no TSE repository exists in the extent pool, this overhead capacity is assigned to the
Allocated to ESE repository line total as expected.
If a TSE repository already exists in the extent pool where the ESE volumes are created
(which increases the total virtual capacity in the extent pool), the virtual space overhead is
added to the Allocated to TSE repository total.
If a TSE repository is added to the extent pool after the ESE volumes are created, the
virtual capacity overhead is removed from the Allocated to ESE repository total and
added to the Allocated to TSE repository total.
The Allocated to ESE repository value includes the total of the overhead space required to
support the current virtual space in all extent pools without a TSE repository, plus the space
used for data written to all ESE volumes in all extent pools. The value indicated will be the
same, regardless of whether ESE repositories exist.
45
Note: Be aware that the virtual capacity of an extent pool requires overhead to support it.
Although the virtual capacity for an extent pool can be set for either TSE or ESE by
creating new volumes (ESE or TSE) or by using the chssestg command and using the
-reptype xxx (ESE or TSE) parameter, there is only one virtual capacity for an extent pool.
If an extent pool contains a TSE repository, the virtual capacity overhead is considered
Allocated to TSE repository. Even if the same extent pool contains ESE volumes, the
virtual capacity overhead from the virtual capacity used for those volumes is considered
Allocated to TSE repository. Only when the repository does not contain a TSE repository
is the virtual capacity overhead considered Allocated to ESE repository.
The first line in the summary provides the amount of storage Available for allocation in the
DS8000. This value includes space assigned for all ESE repositories that exist in the extent
pools that are not currently storing data.
In summary, after the ESE storage is configured (ESE logical volumes created and optionally
ESE repositories created), as data is written to the volumes, the space used for the data
causes the Available for allocation total to decrease and the Allocated to ESE repository
total to increase.
A better way to understand the actual setup in the DS8000 for space-efficient storage is to
use DS CLI commands.
46
The ESE Virtual Capacity Allocated shows the total virtual capacity of the ESE volumes in the
extent pool. The ESE Physical Capacity Allocated is the amount of space used to store data
in those volumes.
The Space-efficient Overhead capacity includes the metadata (overhead) space used for the
virtual storage in the extent pool, and the TSE repository overhead if it exists.
When working with ESE volumes, it is best to use the CLI commands so that all the options to
create and correctly manage the volumes are available. The next section provides the CLI
commands that are used to work with ESE volumes.
mksestg
chsestg
lssestg, showsestg
mkfbvol
lsfbvol, showfbvol
showextpool
initfbvol
lsvolinit (does not show Quick Init)
47
Important: Thin provisioning is not supported for CKD volumes. However, the thin
provisioning parameters are added to CKD DS CLI commands (mkckdvol, lsckdvol,
showckdvol, and initckdvol)as a possible future capability.
determine how the physical space in an extent pool is to be used, especially when
working with space-efficient volumes.
Example 5-1 shows the use of the mksestg command to create an ESE repository.
Example 5-1 Using the mksestg command to create an ESE repository
48
The reppercent parameter is available with this command. This parameter cannot be
used along with the repcap parameter. If you use this parameter, the actual size of the
repository will always be 0 no matter what value is specified.
Because the virtual capacity is managed automatically as the ESE logical volumes are
created, it is not necessary to set the virtual capacity value using the vircap parameter.
The repository can be created either before or after the ESE logical volumes are created.
If it is created after the ESE logical volumes and data is stored in them, the specified size
of the repository must be at least equal to the space currently used to store data in the
ESE logical volumes.
49
The output (report) of the command provides important details about the status of the
space-efficient storage and capacity details under the following headings:
stgtype: The type of storage that the extent pool supports. Although it can be fb or ckd for
TSE, for thin provisioning (ESE), only fb storage is supported.
datastate: The state of the extents in the extent pool. Anything other than normal indicates
a likely problem. For a complete listing and explanation of all the possible values for this
field, see the IBM DS8000 Series Command-Line Interface Users Guide, GC27-4212-02.
configstate: The current state of space-efficient configuration operations. When there are
no operations in progress, the state will be normal. All the other states and their meanings
are explained in the IBM DS8000 Series Command-Line Interface Users Guide,
GC27-4212-02.
repcapstatus: The current status of the repository capacity that is available relative to its
threshold. Three threshold settings are possible for a repository: two are
system-controlled settings and the third setting is set by the user.
The two settings that are set by the system are 0% (zero percent) available or 100% full,
and 15% available or 85% full. These two values cannot be changed. The third user
setting is controlled by specifying the repcapthreshold parameter with either the mksestg
command when creating the repository, or with the chsestg command after the repository
is created. This parameter is used to specify the user-defined repository capacity
threshold percentage. By default, the value is set to 0% (zero percent), which is the same
as one of the machine settings.
The status of the user-defined threshold is displayed in this field.
The status can be one of these values:
below: The current available capacity of the repository is below the user-defined
threshold.
exceeded: The current available capacity has exceeded the threshold.
full: The repository has no available capacity.
- (a dash): No repository exists or the status is invalid. This is the case if you create
ESE volumes without an ESE repository.
When any threshold is met or exceeded, a notification is sent so that the customer is
aware of the situation (if the notification is set up).
repcap: The current size of the repository, which can be displayed in GiB (for FB volumes)
or Mod 1 (for CKD) volumes. Thin provisioning (ESE) is only supported for FB volumes.
vircap: The virtual capacity configured for space-efficient volumes in the extent pool. This
value can be increased with the chsestg command after the repository is created. When
an extent pool is created, this value is set to zero. The system automatically updates the
virtual capacity of an extent pool as you create TSE and ESE volumes.
Rather than controlling this value automatically, it can be increased with the chsestg
command with the -vircap parameter. After the increase is complete, the field shows the
value specified in the command.
50
It can also be increased by using the mksestg command with the -vircap parameter, but
only if specifying the default -reptype TSE.
Any subsequent virtual configuration process, such as adding additional space-efficient
volumes to the extent pool, can automatically increase the virtual capacity of an extent
pool, which will be reflected in this field. This will occur when the current virtual capacity is
less that the sum of the virtual capacity of the current space-efficient volumes, plus the
volumes being added.
reptype: The type of volumes that the repository supports, with a possible value of tse,
ese, or a dash (-). The dash indicates that no repositories are in the extent pool, but ESE
volumes are created.
repcapalloc: The capacity in the specific repository that is allocated, which means the
capacity currently storing volume data.
vircapalloc: The total virtual capacity allocated for all the space-efficient volumes in the
extent pool that belong to a repository indicated in the reptype field. If no ESE repository
exists, this field is 0.0.
opratio: The over-provisioned ratio for the repository. For ESE volumes, if no ESE
repository exists, this field is a dash (-). If a repository exists, this value is the total virtual
capacity of the ESE volumes compared to the size of the ESE repository. The lower the
number, the better the situation. For example, if the opratio field has a value of 4.0, the
total virtual capacity of the ESE volumes is four times greater than the capacity of the ESE
repository. (The same ratio applies for a TSE repository.)
Note: For TSE repositories with CKD volumes allocated, the repcapalloc and
vircapalloc fields represent the number of Mod 1 extents used (including tenths). As
well, for these two fields, the command includes an optional parameter percent, which
sets the fields to a percent value, rather than a number value.
There are five scenarios (among others and each scenario is shown in Example 5-3 on
page 50) that can cause the report from this command to provide various values for the vircap
and reptype fields for an individual extent pool:
Only ESE volumes are created without any ESE repository: There is one line in the report
for the extent pool and the vircap value is the total virtual capacity of the ESE volumes in
the pool. (The reptype field is a dash (-). See Example 5-3 on page 50 -- P2.)
Only ESE volumes are created with an ESE repository: There is one line in the report for
the extent pool and this value is the total virtual capacity of all of the ESE volumes in the
extent pool. (The reptype field is ESE. See Example 5-3 on page 50 -- P4.)
Only a TSE repository with TSE volumes is created, and no ESE repository and no ESE
volumes are created: There is one line in the report for the extent pool and this value is the
total virtual capacity of all of the TSE volumes in the extent pool. (The reptype field is tse.
See Example 5-3 on page 50 -- P6.)
A TSE repository with TSE volumes is created, with ESE volumes, but no ESE repository:
There is one line in the report for the extent pool and this value is the total virtual capacity
of the TSE and ESE volumes in the extent pool. (The reptype field is tse. See
Example 5-3 on page 50 -- P8.)
Both a TSE repository with TSE volumes is created and an ESE repository with ESE
volumes is created: There are two lines in the report for the extent pool, one for each
repository with the reptype field indicating the line for the ESE or TSE repository. The total
virtual capacity of both the TSE and ESE volumes in the extent pool is displayed on each
line. When the report includes two lines for an individual extent pool, the virtual capacity
will always be the same in each line. (See Example 5-3 on page 50 -- P10).
51
Note: In each of these scenario descriptions, it is assumed that the virtual capacity is
controlled automatically and that the virtual capacity has not been changed by using either
the chsestg or mksestg command. Although it might seem as though the virtual capacity is
set for a specific type (either TSE or ESE), in reality, it is just the virtual capacity configured
in the extent pool, which can be used for TSE (with a TSE repository) or ESE volumes.
We explain the additional details that are included in this report that are not included in the
lssestg report:
%repcapthreshold: The current setting of the repository capacity threshold as the
percentage available. As long as the available percentage is higher than this value, the
repcapstatus shows below.
%repcapalloc: The percentage of the ESE repository that is allocated with data.
52
%vircapalloc: The percentage of total vircap indicated (example shows 210000) that is
currently used for ESE logical volumes as shown in vircapalloc (example shows 10000). It
shows 4% in the example, but it is actually 4.75 percent, which is rounded down to a whole
number.
overhead (GiB/Mod1): Although this field is included in the ESE report, it does not provide
any overhead amount for the ESE volumes. Because this field only provides TSE
overhead, if there are no TSE volumes, this field is a dash (-).
dscli> mkfbvol -extpool P4 -cap 10 -type ds -name itsodapa4810 -sam ese 4810
CMUC00025I mkfbvol: FB volume 4810 successfully created.
Note: This command is successful, whether or not an ESE repository already exists. The
virtual capacity is automatically increased if necessary and the available space supports it
in the extent pool. It fails if the virtual capacity is insufficient to support the new volumes.
See the lsfbvol command help for additional details about the remaining details that are
provided with this command.
53
The showfbvol command displays detailed properties for an individual volume. With thin
provisioning support, the ESE value is shown as a storage allocation method (-sam). The
command also shows the number of virtual extents and the real allocated extents to the ESE
volume.
Example 5-7 shows the output of the showfbvol command for an ESE volume, with the sam
field indicating the type ESE. There are additional lines in the report that are not shown in the
example.
Example 5-7 The showfbvol command
dscli> showfbvol
Name
ID
accstate
datastate
configstate
deviceMTM
datatype
addrgrp
extpool
exts
captype
cap (2^30B)
cap (10^9B)
cap (blocks)
volgrp
ranks
dbexts
sam
repcapalloc
eam
reqcap (blocks)
realextents
virtualextents
....
000a
Testese0
000A
Online
Normal
Normal
2107-900
FB 512
0
P16
100
DS
100.0
209715200
V2
1
0
ESE
managed
209715200
22
100
See the command help report for an explanation of all the fields in this report.
Note: The repcapalloc field will be a dash (-) if the sam field is not tse.
The reports for both the lsbvol and showfbvol commands are the same, regardless of
whether an ESE repository exists in the extent pool to which the volume belongs.
55
The detailed extent pool properties output shows important values for real capacity and for
virtual capacity. These values are possible:
configured
The number of total extents configured to the extent pool.
allowed
The number of remaining extents, when a limit has been set. If the limit is disabled or has
been set to 100%, the allowed extent has the same value as the configured extent.
available
The number of free extents that can be allocated either to standard logical volumes, the
TSE repository, or ESE logical volumes, but it currently does not include the ESE
repository. You need to subtract the size of the ESE repository from this number for an
accurate value, as determined by using the lssestg command.
allocated
The number of allocated real extents. It is the sum of extents allocated for these objects:
Standard logical volumes (if they exist)
TSE repository and overhead for the repository (if it exists in the extent pool)
The data written to ESE volumes (if they exist in the extent pool)
The virtual capacity overhead of the extent pool (if there are TSE or ESE volumes)
56
57
If you have more than one storage image, select the appropriate one at the top of the
window. This is not shown in the figure.
From the Tasks pane at the bottom of the window, click Create new volumes. The Create
Volumes window (Figure 5-7 on page 59) opens.
58
2. In the Create Volumes window, select one or more of the existing extent pools in which you
want to create volumes. If you choose more than one pool, the volume assignment option
will apply. You must select the correct option to match your requirements.
Note: You can only select more than one extent pool if the pools are sequential.
When you create ESE logical volumes, include these considerations for extent pool
selection:
The virtual capacity available in the extent pool to support the virtual size of the volume
size. The amount included in the column Total Virtual GiB is the current setting and
not necessarily the amount that can be set. If no space-efficient logical volumes are
currently in the extent pool, this value will be 0 (zero). As you create the volumes, the
virtual capacity will automatically increase up to the maximum allowed. The maximum
allowed is determined by the amount of available space in the extent pool for overhead
data that is required to support space-efficient volumes. If you try to create more ESE
logical volume capacity than the extent pool allows, it will fail.
The anticipated amount of data to be written to the volume. If an ESE repository exists
in the extent pool, its size will determine the amount of space available for the written
data. Note that the displayed column Available Repository GiB only displays TSE
repository details. If no ESE repository exists, all of the available extent pool space can
be used for ESE logical volume data.
The overhead space required to support the virtual space of the ESE logical volumes
that you are creating. This space uses real extents, and is approximately .45% of the
virtual volume capacity. If no ESE repository exists and if you use the maximum
allowed capacity of an extent pool for the ESE logical volumes, the overhead will use
up all the available space in the extent pool, so that no data can be written to the
volumes.
Spreading the volumes across different servers for a balanced configuration. This
assumes that you have extent pools that are assigned to both servers 0 and 1. The
displayed column Server shows the server that is managing the extent pool volumes.
59
After you select the correct extent pools, click Next. The Add Volumes window (Figure 5-8)
opens.
There are three sections to the Add Volumes window. In the Define Volume
Characteristics section at the top (see Figure 5-8), select the Storage allocation method
(sam) Extent Space Efficient (ESE). This will set the Available Capacity value shown at
the top of the window to the available virtual capacity in the extent pools selected.
Remember that this value can be slightly higher than what you can actually create. Then,
specify the size (which is the virtual size) and quantity of volumes that you want to create.
You can change the Volume type from the default FB Volumes - DS, if necessary. The
Extent allocation method only applies to standard sam volumes. Select an appropriate
Priority Group and Resource Group setting, if required.
Complete the Optionally Choose Nickname section if you do not want the default values to
be used.
Finally, complete the Optionally Assign Volume Groups section where you can either
select a volume group that already exists to which to add these volumes, or you can create
a new volume group to which to add them. This can also be done later after the volumes
are created.
When your settings are complete, you can either click Add Another to create more
volumes, or click OK. In this example, we click OK. The Create Volumes window reopens,
as shown in Figure 5-9 on page 61.
Important: The amount of projected remaining capacity for ESE volumes is based on
the values that you specify for the Size and Volume Quantity fields. It shows the
remaining virtual capacity that can be allocated.
The DS8000 creates the virtual capacity automatically before it creates the ESE
volumes. If you accidentally use all remaining capacity, your extent pool will be full.
60
3. Now, you can select the displayed volume information and from the Action pull-down list,
click Modify, if you want to change the settings, or Delete, if you want to delete the
settings. You can also click Add, if you want to add additional volumes to the extent pools
that were selected. If the entries are correct as displayed, click Next at the bottom of the
window. The Create Volumes Select LSS window opens as shown in Figure 5-10.
4. In the Select LSS window, you can assign the volumes to a logical subsystem (LSS) using
either the Automatic method, which is the default, or Manual method. If the automatic
method is used, the volumes will be assigned to the first LSS in the list until all available
addresses are used and then it continues to the next LSS in the list. If you select the
manual method, you need to select the specific LSSs to use. Click Finish.
5. The Create Volumes Verification window (Figure 5-11 on page 62) opens, listing all the
volumes that will be created. Depending on the number of volumes, the process might
take time to complete. You can use the actions available to make changes to the settings,
or add additional volumes.
61
6. Click Create All to create all the volumes. If a failure occurs, the volumes will not be
created.
After the creation is complete, an updated FB Volumes window opens. You can select View
detail or Close. If you click Close, you are returned to the FB Volumes window. From there,
you can now execute other actions, such as Manage Existing Volumes. By using the Filter by:
Storage Allocation Method option, you can select ESE to display ESE volumes (Figure 5-12).
The steps to create ESE logical volumes by using the DS GUI are complete.
62
With the DS GUI, you can monitor and manage the capacity by using the Internal
Storage-Extent Pools and FB volumes windows. They include the following elements:
Internal Storage-Extent Pools:
Properties
Virtual and physical capacity allocated
Thresholds
Add or remove capacity to extent pool
Add space-efficient repository
Delete space-efficient storage
FB volumes:
Properties
Increase capacity
Initialize
Delete
63
The window also displays alerts for various exceeded threshold conditions and other states
that might exist. Alerts help you manage the capacity. The following alerts can be displayed:
Pools with physical threshold exceeded
Specifies that one or more extent pools have exceeded the current physical threshold
setting. The default value is 100.
Pools with virtual storage threshold exceeded
Specifies that one or more extent pools have exceeded the current virtual capacity
threshold setting. The default value is 100.
Pools with TSE repository capacity threshold exceeded
Specifies that one or more extent pools have exceeded the current repository capacity
threshold setting. The default value 100.
Pools with ranks in abnormal state
Specifies that one or more extent pools have one or more ranks in an abnormal state. For
example, a rank is in a degraded state or another error condition has occurred.
Pools with TSE repository in abnormal state
Specifies that one or more extent pools have one or more repositories in an abnormal
state.
Figure 5-13 shows the Internal Storage window with the Extent Pools tab.
By selecting an extent pool, you can check its properties or perform other actions, such as
adding and removing capacity.
The DS GUI provides no monitoring of ESE repositories in extent pools. An ESE repository
cannot be created by using the DS GUI, and no details about them are provided in the DS
GUI if they exist. If you need to know the status of an ESE repository, you must use the
lssestg and showsestg DS CLI commands.
64
When you have ESE logical volumes in an extent pool without an ESE repository, the only
monitoring that occurs concerns the extent pool utilization. As more data is written to the ESE
volumes in the pool, the percentage of available extents will continue to decrease. When the
threshold percentage for the extent pool is reached, a Physical Storage Threshold
Exceeded alert will be provided in the Internal Storage window, with the extent pool status
indicating Threshold Exceeded. When the percentage of available extents reaches zero, the
alert remains, but the extent pool will have a status of Full.
FB Volumes page
The FB Volumes main page is used to analyze open systems storage information and initiate
actions that relate to open systems volumes. It shows the amount of standard capacity and
virtual capacity for ESE and TSE logical volumes. It also shows alert information for different
error messages (Figure 5-6 on page 58).
Two type of alerts can appear for FB volumes: volumes with status errors and volumes
with a migration status.
Select Manage existing volumes in the Task area to open a window where you can manage
open systems volumes. By using the filter option, you can display only ESE volumes, and by
selecting one or more volumes, you can increase capacity, initialize a volume, add a volume
to a volume group, or delete a volume. You can also check the properties of each volume.
65
To locate the volume, you can use the Filter by box and select Storage Allocation
Method. Select ESE in the Select Storage Allocation Method box as shown in the
example.
2. Select your ESE volume and in the Action menu, select Increase capacity, which opens
the Increase Capacity window (Figure 5-15).
Note: The available capacity is indicated based on the available extents in the extent
pool.
Next, working with ESE logical volumes and DS CLI commands is described.
created yet (which is our choice in this procedure), overhead space will be required for them,
so do not use the total available space in the extent pool for the size of the repository.
When you specify the size of the repository, the -repcap parameter is used to specify a value
in GiB. The actual repository capacity will be larger than what you specify, because it will be
created with a capacity that is a whole number as a percentage of the physical size of the
extent pool.
The DS CLI command that is used to create an ESE repository is the mksestg command. This
command is the same command that is used to create a TSE repository. With this command,
you need to include the capacity for the repository and the extent pool in which it will be
created. Example 5-10 on page 67 shows an example of using the command to create a 500
GiB ESE repository.
66
To verify the actual size of the repository, use the lssestg command as shown in
Example 5-11. Note that the actual size of the repository is 509 GiB, which is 24% of the
physical size (2121 GiB) of the extent pool.
Example 5-11 Displaying ESE repository details with the lssestg command
67
dscli> mkfbvol -extpool p16 -cap 1000 -name Testese001 -sam ese 000a
CMUC00025I mkfbvol: FB volume 000A successfully created.
dscli> showfbvol
Name
ID
accstate
datastate
configstate
deviceMTM
datatype
addrgrp
extpool
exts
captype
cap (2^30B)
cap (10^9B)
cap (blocks)
volgrp
ranks
dbexts
sam
repcapalloc
eam
reqcap (blocks)
realextents
virtualextents
migrating
perfgrp
migratingfrom
resgrp
tierassignstatus
tierassignerror
tierassignorder
tierassigntarget
%tierassigned
68
000a
Testese001
000A
Online
Normal
Normal
2107-900
FB 512
0
P16
1000
DS
1000.0
2097152000
0
0
ese
managed
2097152000
0
1000
0
PG0
RG0
Unknown
Unknown
Unknown
-1
With the extent pool having the volume allocated, virtual extents are now allocated that equal
the size of the volume. This happens automatically. Now, because of the allocated ESE
volume, look at the repository and extent pool details again by using the lssestg and
showsestg commands. Example 5-14 shows the lssestg -l command for extent pool p16.
Note that the repository has no used capacity (repcapalloc), because the volume has not
been initialized yet and no data has been written to it. But, the virtual capacity (vircap) is now
1000 GiB, which happened automatically. The virtual capacity allocated (vircapalloc) is also
1000 GiB because the volume has been allocated. Also, the opratio shows an
over-provisioned ratio of 2.0. This calculation is the virtual capacity of 1000 GiB can use real
capacity in the ESE repository of 509 GiB, which is approximately two to one. (The text is
smaller to fit the report on one line.)
Example 5-14 The lssestg command with ESE volume allocated
dscli> lssestg -l p16
extpool stgtype datastate configstate repcapstatus repcap(GiB/Mod1) vircap reptype repcapalloc vircapalloc opratio
==================================================================================================================
P16
fb
Normal
Normal
below
509.0 1000.0 ese
0.0
1000.0
2.0
Note that the %vircapalloc is at 100% because all of the virtual extents (1000) have been
allocated for the volume of size 1000 GiB. Also, the overhead shows a dash (-) because this
is the TSE storage overhead, not the ESE storage overhead.
There is ESE volume overhead, which is indicated in the showextpool command as shown in
Example 5-16 on page 70. Here, the %allocated (over) field is again zero, because this field is
only for TSE volumes.
69
The allocated field now shows 5. This is the allocated space (5 GiB) used as overhead for the
ESE logical volume that is allocated. When working with ESE logical volumes, the overhead
is automatically increased as additional volumes are allocated. It is not possible to increase
the virtual capacity of the extent pool if only ESE logical volumes are in the extent pool.
The availstor and available fields now indicate that the extpool pool has 2116 available
extents, because the 5 that are allocated are being used for virtual capacity overhead.
Note: The ESE repository is not included in the allocated space and is still included in the
available space even though it was set up using 509 extents. (Because the ESE repository
can be deleted, its space is not considered allocated.)
With the inclusion of the ESE repository, the available space is really 1607 extents.
Example 5-16 The showextpool command with ESE volume allocated
70
%migrating(in)
%migrating(out)
numtiers
etmanaged
0
0
1
yes
The virconfigured, virallowed, and virallocated settings of 1000 are automatically set when the
ESE volume is created (assuming that there is no TSE storage setup) because the volume
size is 1000 GiB. The total virtual configured is also allocated, so the viravailable is 0 (zero).
In this example, while data is written to the volume, we can increase the size of the ESE
repository up to the size of the ESE volume; however, this action requires that the real
available space allows the increase. There are a number of changes that can reduce the
available space in an extent pool:
The extent pool opratio will increase if you add ESE volumes or increase the size of the
current ESE volumes. In Example 5-17, with the second volume allocated, the vircap and
vircapalloc now show 2000 GiB, and the opratio is now 3.9. The opratio doubled because the
virtual capacity doubled, but the repository capacity was unchanged.
Example 5-17 Adding additional ESE volumes
dscli> mkfbvol -extpool p16 -cap 1000 -name TestESE002 -sam ese 000b
CMUC00025I mkfbvol: FB volume 000B successfully created.
dscli> lssestg -l p16
extpool stgtype datastate configstate repcapstatus repcap(GiB/Mod1) vircap reptype repcapalloc vircapalloc opratio
==================================================================================================================
P16
fb
Normal
Normal
below
509.0 2000.0 ese
0.0
2000.0
3.9
Although not shown, the showextpool command now shows 9 allocated extents and available
extents of 2112. The 9 allocated extents are the overhead (virtual capacity overhead) for the
two ESE volumes that are now allocated.
If this procedure omits the creation of an ESE repository, the report for the showextpool
command is the same. The showsestg -reptype ese command will show that space-efficient
storage does not exist in the extent pool. The lssestg command only provides the virtual
capacity (vircap) and virtual capacity allocated (vircapalloc) fields with data.
71
After an ESE volume is initialized, and files are written to it, space in the ESE repository will
be allocated to store the data. The repcapalloc field will show the total space used in the
repository to store data for all the ESE volumes in the extent pool. This usage is also
displayed in the report for the showsestg (repcapalloc) command as shown in Example 5-19,
and the showextpool (allocated) command as shown in Example 5-20.
Example 5-19 The showsestg command with data stored on ESE volume
Example 5-20 The showextpool command with data stored on the ESE volume
%allocated(ese)
%allocated(rep)
%allocated(std)
%allocated(over)
%virallocated(ese)
%virallocated(tse)
%virallocated(init)
...
1
0
0
0
100
0
0
Note that the allocated amount of 39 includes the overhead of 9 plus the repository allocated
space of 30, which is used to store the current written data on the ESE volumes.
The %allocated and %allocated(ese) are the percentages allocated of the total extent pool
capacity, not the ESE repository capacity.
If there is no ESE repository, the lssestg command does not show any usage. The
showextpool command shows the usage with the available field reduced and the allocated
field increased while extents are used to store data on the volumes using available extents in
the extent pool as shown in Example 5-20 on page 72. The showsestg command does not
accept the -reptype ese parameter without an existing ESE repository.
73
When you use ESE logical volumes with a repository, the monitoring status for the repository
is important, even though the extent pool monitoring also exists. As long as the amount of
allocated extents in the ESE repository is under the threshold, the repcapstatus (repository
capacity status) indicates below. After the amount of allocated extents in the ESE repository
gets above the ESE repository threshold, the repcapstatus indicates exceeded. If all extents in
the ESE repository are used, the repcapstatus indicates full. At this point, no more data can
be added to the ESE logical volumes in the extent pool. The repcapstatus is provided in the
output of the lssestg and showsestg commands. The default repository threshold is 100% (0
in the report for %repcapthreshold). You can set the default repository threshold when you
use the mksestg command, or after the repository is created by using the chsestg command.
If the available space in the repository is getting low, it might be possible to free used space if
you know that files have been removed from the ESE logical volumes, and you no longer
need the data. Use the initfbvol command and specify the -action freespace parameter.
One of the effects of this change is that the overhead increases. This increase reduces the
amount of available space in the extent pool. In this case, the overhead amount went from 9
to 12 GiB, which reduced the available extents by 3, as indicated in the showextpool
command (not shown).
74
Chapter 6.
75
76
Figure 6-1 Extent pool real, repository, and virtual capacity: Reserve buffer and set threshold options
Simple Network Management Protocol (SNMP) warnings are triggered when the amount of
allocated capacity exceeds any of the specified thresholds. A threshold status changes and
can be monitored.
Important: The status levels and warning messages are listed:
Status = 0/Below. Below threshold Available space > Threshold is good.
Status = 1/Exceeded. Warning Available Space is between Threshold and zero.
Status = 10/Full. Space is zero There is no Available Space in the Extent Pool.
In a DS8000 with Licensed Machine Code (LMC) 5.4.3x.xx installed, the thresholds are set to
15% by default. Upgrading the LMC to that level also changes the thresholds on existing
systems to the new default value of 15% (default was 0% on all earlier LMC levels).
77
The extent status attribute is set to a value based on the comparison between extent
threshold and the percentage of remaining available real capacity in the extent pool. The
extent status value is set as depicted in Table 6-1.
Table 6-1 Extent status attribute value
78
Extent status
Description
Condition
10
SNMP traps and their destination (SNMP manager) can be set using the DS CLI.
Example 6-2 is an illustration.
Example 6-2 Setting the SNMP trap and destination
79
The virtual capacity that is associated with TSE and ESE volumes must be created or
expanded through the DS CLI or GUI as needed to create space-efficient volumes. The
virtual capacity determines the over-commitment ratios for TSE and ESE and therefore needs
to be carefully planned. The virtual capacity also needs to be monitored over time, because it
cannot be easily reduced when created. Virtual capacity can only be deleted when no ESE or
TSE volumes are configured in the extent pool.
80
Chapter 7.
81
82
There are similar trade-offs for the space-efficient implementation considerations. A larger
block size reduces fragmentation, allocation frequency, and allocation map structures
(metadata overhead). A smaller block size might waste less space.
The JFS2 divides the File System space into up to 128 equally sized allocation groups that
have a minimum size of 32 MB (only the last allocation group might not be full-size). The File
System distributes data across the allocation groups under certain situations to improve the
localization of data that is likely to be accessed concurrently or sequentially. One design point
of this File System is that it avoids using an unused allocation group until all active allocation
groups have collectively less than one GB of free space left.
DS8000 terminology
The DS8000 configures physical disk drives into arrays and ranks. Ranks are added into
extent pools, which contain the extents of all ranks. The extents in an extent pool are used to
create logical volumes. The DS8000 logical volumes are presented and made accessible to
open system host bus adapters (HBAs) by grouping them into a volume group.
AIX terminology
AIX configures Physical Volumes into Volume Groups. Volume Groups contain Physical
Partitions that are allocated to Logical Partitions on Logical Volumes. The Logical Volumes
are used by applications, such as File Systems and Databases.
83
Figure 7-1 shows that the storage %allocation closely tracks the File System % usage for
monotonically increasing data.
100%
80%
60%
40%
20%
0%
0
100
200
300
400
500
600
Samples
FS %Usage
Storage %Alloc
Figure 7-1 AIX with JFS2 File System: 128 KB Files - Fill 0 - 100%
Figure 7-2 shows the %Usage information for the file system and the %Alloc information for
the thin-provisioned logical volume while 128 KB files were copied into a single directory of
the file system. In this case, however, the file system was filled to about 50% full, then 25% of
the data was deleted, then filled to 75% full, then 25% of the data was deleted, and finally
filled to 100% full. As shown, after space is allocated on the logical volume, the deletion of
data from the file system does not release any of the previously allocated data. It is important
to note that while the file system is again filled with data up to the level that matches the
storage allocation after each deletion, no additional space was allocated. Therefore, the file
system reused the previously allocated space on the volume to store new data before
accessing unallocated space.
100%
80%
60%
40%
20%
0%
0
200
400
600
800
Samples
FS %Usage
Storage %Alloc
Figure 7-2 AIX with JFS2 File System: 128 KB Files - 0 - 100% with 25% deletions
84
85
In Step 4 of Figure 7-3, file 4 is shown as written to the last 25% of the volume. This step
depicts how a file system does not necessarily attempt to keep data at the beginning of a
volume. This is also shown in Figure 7-4, which shows the layout of a NTFS file system that is
75% full. After Step 4 in Figure 7-3, every block in the volume has been written and is,
therefore, full from a storage perspective. The fill percentage of a volume will never go down
(as shown in Step 5 - Step 7). Regardless of the host activity on the volume, the fill
percentage of the volume will remain 100% full.
86
Migration issues
The problem with migrating to extent space-efficient (ESE) volumes is that the traditional
logical volume managers will copy every block from the original standard volumes and write it
to the new ESE volumes. As a result, the ESE volumes fill up. All empty blocks will also be
copied to the ESE volumes and that physical capacity must be allocated for the entire ESE
volume. This type of migration defeats the purpose of thin provisioning as illustrated in
Figure 7-5.
The solution to this problem is to move up to a host-based level software that knows whether
a block is occupied or not. This will make the copy more efficient and effectively use
thin-provisioned volumes. One possible solution is IBM Data Mobility Services Softek TDMF
(IP) for Windows software with the Thin Copy feature. This feature enables migrations from
traditional storage to thinly provisioned storage in Windows environments, copying only
allocated space and reclaiming any free space on the IBM System Storage DS8000
(Figure 7-6).
87
88
The Thin Copy feature reads the NTFS allocation map and copies only the data blocks that
are in use by the NTFS file system (Figure 7-6 on page 87). While the data is copied, the
application is fully available. Any updates that occur during the copy phase are mirrored to the
target device while the updates on the application server occur. This method ensures that the
source and target disk are complete synchronized at the end of the migration.
TDMF (IP) for Windows copies data at the partition level so that it can copy drive letters or
mount points. This allows the LUN structure to be reorganized in conformance with the
particular storage device. For example, a dynamic volume that consists of five LUNs can be
reformed into a dynamic volume that consists of a single LUN that was defined as an ESE
volume on the IBM System Storage DS8000.
Because TDMF works at the volume level and is a block-based copy, it is easy to select only
the source and target drive letter to perform the copy. There is no chance of missing any files.
By default, all files, whether they are open or not, will be copied from the source volume to the
target volume. There is no chance for any change in the file permissions that might cause
application problems or corruption.
89
We used Windows Quick Format on the ESE volumes, which resulted in the extent allocation
that is shown in Table 7-1.
Table 7-1 ESE real capacity after Quick Format
ESE volume capacity
10 GB
25 GB
50 GB
100 GB
Note: In a typical migration environment, one downtime is required to install Softek TDMF
(IP) for Windows. If the migration is planned carefully, only a single reboot is necessary
during this process. This reboot is normally required to set up Softek TDMF (IP) for
Windows and also to install the virtual device driver in the kernel. A second downtime
might be required to switch over to new devices and remove Softek TDMF (IP) for Windows
from the system. To migrate in a single downtime, careful planning is required. Drive letters
must be reassigned and, if drive letters are changed, shares must also be re-created.
Figure 7-7 on page 91 shows the IBM Softek Data Mobility Console main window and the
server information and properties used for the tests.
90
Figure 7-7 IBM Softek Data Mobility Console (DMC) main window
For details about the IBM Softek Data Mobility Console, see the publication IBM Data Mobility
Services Softek Data Mobility Console Installation and User Guide, DMC-W11IU-003.
The following steps show how we migrated the standard volumes to ESE volumes:
1. In the DMC, we created mobility groups that include standard volumes and ESE volumes
on the test server. Figure 7-8 shows the mobility group properties.
91
2. When you create the mobility group, you must enable the Thin Copy feature by selecting
the corresponding check box. The target server must also be the same as the primary
server, because the Softek TDMF (IP) for Windows Thin Copy feature is only supported on
the same local server.
3. Under the Volume Pairs tab, you must add the volumes to migrate. Figure 7-9 shows the
volume pair that we added for our scenario.
After the mobility group is created, you can start the migration.
4. From the DMC main window, select the group and right-click it. A menu displays where
you click Commands (Primary) and then click Start. You must confirm that you want to
start the migration process (Figure 7-10). Click Yes.
5. By starting the mobility group, you start the driver that provides TDMF with the ability to
track and mirror changes to the source volume. To start the migration, you must issue
Launch Refresh (Full) against the group, as shown in Figure 7-11 on page 93.
92
6. You can check the migration progress by selecting the mobility group, as illustrated in
Figure 7-12.
7. After the migration completes, the Mobility Group icon turns green and its mode is Normal
and its status is Connected (Figure 7-13 on page 94). You have successfully migrated
your standard volumes to ESE volumes.
93
Standard
volume capacity
used
ESE volume
capacity
Real extents
used before
migration
Real extents
used after
migration
10 GB
0%
10 GB
25 GB
0%
25 GB
50 GB
0%
50 GB
100 GB
0%
100 GB
94
Standard volume
capacity used
10 GB
25%
10 GB
25 GB
25%
25 GB
10
50 GB
25%
50 GB
16
100 GB
25%
100 GB
30
10 GB
50%
10 GB
25 GB
50%
25 GB
15
50 GB
50%
50 GB
28
100 GB
50%
100 GB
53
10 GB
75%
10 GB
10
25 GB
75%
25 GB
21
50 GB
75%
50 GB
40
100 GB
75%
100 GB
78
The results show that you can benefit more from thin provisioning when you use larger
volumes because the ratio of allocated real extents is higher with smaller volumes.
95
ranks
dbexts
sam
repcapalloc
eam
reqcap (blocks)
realextents
virtualextents
1
0
ESE
rotatevols
20971520
5
10
96
Figure 7-14 Source standard volume and target ESE volume before the migration
Example 7-2 Volume status before the migration
97
Date/Time: 2009. kolovoz 24 17:20:39 PDT IBM DSCLI Version: 5.4.30.244 DS:
IBM.2107-7520781
Name
itsotdmf100ese
ID
4913
accstate
Online
datastate
Normal
configstate
Normal
deviceMTM
2107-900
datatype
FB 512
addrgrp
4
extpool
P5
exts
100
captype
DS
cap (2^30B)
100.0
cap (10^9B)
cap (blocks)
209715200
volgrp
V12
ranks
1
dbexts
0
sam
ESE
repcapalloc
eam
rotatevols
reqcap (blocks) 209715200
realextents
6
virtualextents 100
Figure 7-15 shows the migration status in the IBM Softek Data Mobility Console window.
98
Figure 7-16 shows the volumes in Windows Explorer while the migration is underway.
Information for the target volume is not displayed because the volume is inaccessible during
the migration.
Figure 7-16 Source volume and target volume in Windows Explorer during the migration
When the migration is finished (Figure 7-17), you can stop the mobility group (Figure 7-18 on
page 100).
99
By stopping the mobility group, the target volume becomes available (Figure 7-19). However,
it shows that the size of the volume is 25 GB. Windows does not automatically expand the
volume. It must be expanded manually.
Figure 7-19 Source volume and target volume in Windows Explorer after the migration
100
Example 7-3 shows the target ESE volume information from the DS CLI. You can see that 23
real extents are used.
Example 7-3 Target ESE volume information
101
Windows Explorer in Figure 7-21 also shows the correct capacity now.
Figure 7-21 Source volume and target volume in Windows Explorer after the expansion
102
7.3.4 Conclusion
When you migrate existing data to thinly provisioned storage, such as DS8000 ESE volumes,
the host layer is the only layer in the I/O path that has the intelligence to move only the
relevant data. Softek TDMF (IP) for Windows is host-based and moves only the data in the
NTFS file system that is still active. This approach allows an enterprise to deploy a
thin-provisioned device and realize storage savings because any free space in the file system
is returned back to the available storage pool within the DS8000.
Based on the test migrations that we performed moving Windows NTFS file systems from
standard volumes to ESE volumes by using Softek TDMF (IP) for Windows Thin Copy for
data, we can formulate the following observations and suggestions:
Good candidates for ESE volumes include large file systems with low utilization rates and
file systems with large contiguous areas of free storage within the file systems. To identify
these good candidates, use the normal drive utilization reports and the defragmentation
reports to find file systems with contiguous free storage. Note that the contiguous space is
marked by blocks of white in the Windows defragmentation reports. Figure 7-22 on
page 104 shows a defrag report for a volume with a large contiguous area, illustrating a
good candidate.
Typically, it is not advantageous to run Windows defragmentation on source volumes
before a migration using the TDMF Thin Copy option. The method that the NTFS file
system uses to allocate storage favors the reuse of space so often there is large
contiguous storage available in underutilized file systems. Consequently, a
defragmentation of the file system does not cause any substantial disk space savings
when you migrate it to an ESE volume. There might be special cases where a disk
defragmentation can help slightly but they were not observed in our tests. It is not advised
to run disk defragmentation on DS8000 ESE volumes.
103
The following software has had less evaluation, but is thought to have the described
characteristics that are not ideal for DS8000 thin provisioning:
Oracle OCFS2 on Linux
Grows space allocation faster than file system usage
Ext 2 on Linux
Large initial storage allocation when creating the file system
The following software has had less evaluation, but without any special customization that
might be available, is thought to have characteristics that do not make these products suitable
for thin provisioning with the DS800:
104
Related publications
The publications listed in this section are considered particularly suitable for a more detailed
discussion of the topics covered in this paper.
IBM Redbooks
For information about ordering these publications, see How to get Redbooks publications on
page 105. Note that some of the documents referenced here might be available in softcopy
only.
IBM DS8870 Architecture and Implementation, SG24-8085
IBM System Storage DS8000 Series: IBM FlashCopy SE, REDP-4368
Other publications
These publications are also relevant as further information sources:
IBM DS8000 Storage Allocation Overview including Thin Provisioning:
http://www.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101550
IBM DS8000 Series Command-Line Interface Users Guide, GC27-4212-02
IBM DS8870 Introduction and Planning Guide, GC27-4209
Online resources
The following websites also are relevant as further information sources:
IBM data storage feature activation (DSFA) website
http://www.ibm.com/storage/dsfa
Documentation for the DS8000: The Information Center
http://publib.boulder.ibm.com/infocenter/dsichelp/ds8000ic/index.jsp
System Storage Interoperation Center (SSIC)
http://www.ibm.com/systems/support/storage/config/ssic
105
106
Back cover
INTERNATIONAL
TECHNICAL
SUPPORT
ORGANIZATION
BUILDING TECHNICAL
INFORMATION BASED ON
PRACTICAL EXPERIENCE
IBM Redbooks are developed
by the IBM International
Technical Support
Organization. Experts from
IBM, Customers and Partners
from around the world create
timely technical information
based on realistic scenarios.
Specific recommendations
are provided to help you
implement IT solutions more
effectively in your
environment.