Front cover DS8000 Thin Provisioning Avoid allocating unused capacity Read about new ESE repository capability and new controls Understand applications and OS implications Bert Dufrasne Peter Kimmel Bruce Wilson ibm.com/redbooks Redpaper International Technical Support Organization DS8000 Thin Provisioning July 2014 REDP-4554-01 Note: Before using this information and the product it supports, read the information in “Notices” on page v. Second Edition (July 2014) This edition applies to the IBM DS8870 with Licensed Machine Code (LMC) 7.7.20.xx.xx (bundle version 87.20.xxx.xx) or later. © Copyright International Business Machines Corporation 2014. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 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 Chapter 2. Planning considerations and guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1 General considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.1 Thin provisioning benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.2 Recommendations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.3 Sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.1.4 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.1.5 Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2 Planning steps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.1 Planning examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Chapter 3. Space-efficient volumes in the DS8000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 DS8000 logical volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Track space-efficient volumes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Repository for track space-efficient logical volumes . . . . . . . . . . . . . . . . . . . . . . . 3.3 ESE logical volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Optional ESE repository for ESE logical volumes. . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3 Capacity allocation for ESE volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.4 Out-of-space condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.5 Volume creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.6 Releasing space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.7 Migration considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.8 Performance considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 18 18 19 21 21 21 27 28 31 32 32 32 Chapter 4. Enabling thin provisioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Activation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Enabling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 36 36 38 © Copyright IBM Corp. 2014. All rights reserved. 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 Chapter 6. Managing and monitoring thin-provisioned volumes . . . . . . . . . . . . . . . . . 6.1 Management and monitoring capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1 Options to reserve space and buffer capacity. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.2 Options to set thresholds and receive warnings . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.3 SNMP trap: Extent pool threshold. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.4 Managing out-of-space situations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 76 76 76 78 79 Chapter 7. Host considerations and migration to ESE volumes . . . . . . . . . . . . . . . . . 81 7.1 ESE volumes in IBM AIX with JFS2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 7.1.1 Introduction to AIX JFS2 concepts and terminology . . . . . . . . . . . . . . . . . . . . . . . 82 7.1.2 Test results on AIX with JFS2 File System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 7.2 Migration considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 7.2.1 Thin provisioning usage cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 7.2.2 Migration tools and utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 7.3 Examples of migrating to ESE volumes on Windows . . . . . . . . . . . . . . . . . . . . . . . . . . 88 7.3.1 Softek TDMF product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 7.3.2 Typical scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7.3.3 Migration from standard volumes to ESE volumes . . . . . . . . . . . . . . . . . . . . . . . . 90 7.3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 7.4 Thin provisioning software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How to get Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv DS8000 Thin Provisioning 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. © Copyright IBM Corp. 2014. All rights reserved. v 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® The following terms are trademarks of other companies: Linux is a trademark of Linus Torvalds in the United States, other countries, or both. Microsoft, Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. UNIX is a registered trademark of The Open Group in the United States and other countries. Other company, product, or service names may be trademarks or service marks of others. vi DS8000 Thin Provisioning Preface Ever-increasing storage demands have a negative impact on an organization’s 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 Master’s 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. © Copyright IBM Corp. 2014. All rights reserved. vii For their input and advice during the preparation of this paper: Rick Ripberger, Dale H. Anderson IBM US Now you can become a published author, too! Here’s an opportunity to spotlight your skills, grow your career, and become a published author—all at the same time! Join an ITSO residency project and help write a book in your area of expertise, while honing your experience using leading-edge technologies. Your efforts will help to increase product acceptance and customer satisfaction, as you expand your network of technical contacts and relationships. Residencies run from two to six weeks in length, and you can participate either in person or as a remote resident working from your home base. Find out more about the residency program, browse the residency index, and apply online at: http://www.ibm.com/redbooks/residencies.html 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 Stay connected to IBM Redbooks publications Find us on Facebook: http://www.facebook.com/IBMRedbooks Follow us on Twitter: http://twitter.com/ibmredbooks Look for us on LinkedIn: http://www.linkedin.com/groups?home=&gid=2130806 viii DS8000 Thin Provisioning 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 x DS8000 Thin Provisioning 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. July 2014, Second Edition This revision reflects the addition, deletion, or modification of new and changed information described below. New or changed information Added support for the extent space-efficient (ESE) repository, introduced with the IBM DS8870 with Licensed Machine Code (LMC) 7.7.20.xx.xx. The ESE repository is described in Chapter 3, “Space-efficient volumes in the DS8000” on page 17. Updated Chapter 5, “DS GUI and DS CLI support for thin provisioning” on page 41 to include new controls for DSCLI commands and support for the ESE repository. © Copyright IBM Corp. 2014. All rights reserved. xi xii DS8000 Thin Provisioning 1 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. © Copyright IBM Corp. 2014. All rights reserved. 1 1.1 General description Thin provisioning applies to shared storage environments. The concept of thin provisioning is to allocate storage (blocks or other elements of storage capacity) when application data is effectively written to a host-attached volume. This is the fundamental difference with the traditional, fully provisioned volume, where the volume capacity is entirely allocated at the time the volume is created. In this case, the host to which the fully provisioned volume is attached owns the full capacity, therefore consuming unused storage in the back-end system. Figure 1-1 illustrates the general differences between full provisioning and thin provisioning. Server 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 A volume supporting thin provisioning is referred to as a space-efficient volume. At the time the volume is created, real capacity as required for metadata only is physically allocated. The DS8000 uses specific metadata to manage and determine when capacity must be allocated for write operations. The volume is created with the full capacity requested by the user, but because the allocation will only take place with the first host write to the volume, this capacity is virtual. The sum of all space-efficient volume capacity represents the storage subsystem virtual capacity. When a space-efficient volume is assigned to a host, the host sees the whole (virtual) capacity of the volume, as though it were a fully provisioned volume. All I/O activities performed by the storage subsystem to allocate space when needed are fully transparent to the host. 2 DS8000 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. 1.1.1 Thin provisioning model Figure 1-2 illustrates the thin provisioning model of the DS8000, independent of any specific host platform. We explain the elements of this common model in the sections that follow the figure. Virtual capacity pool 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 Real capacity pool Figure 1-2 Common model of DS8000 thin provisioning Virtual capacity pool The virtual capacity pool is the container from which host volumes will be created. These volumes are designated as space-efficient volumes (see description below). There is no real physical capacity in the virtual capacity pool. The capacity specified with each space-efficient volume is taken from that pool. You can create as many space-efficient volumes as free virtual capacity is available. Real capacity pool The real capacity pool is a defined area of physical capacity in the DS8000, and is the reservoir for physical capacity allocation when it is requested. When capacity allocation takes place, each allocation of real capacity is mapped to the space-efficient volume. Chapter 1. Thin provisioning 3 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.1.2 Thin provisioning usage examples This section provides some typical usage examples of thin-provisioned volumes. Thin provisioning for user data As a simple example, consider typical user data in a business environment. Such data is normally the same kind for all users and might consist of local mail replica, cached data from web browsers, or other application data commonly used by users in a business environment. In addition, most users have similar capacity requirements for this type of data. However, some users can also have specific applications with different capacity requirements. For example, users who are working most of the time with documents, spreadsheets, and presentations require less capacity than those working with images, other multimedia data, or other binary and scientific data. Assuming that no user is requesting more than 10 GB of data and that the average of effectively used data is below 6 GB per user, the storage administrator can decide to allocate 10 GB of virtual capacity for each user (as thin-provisioned volumes). However, in the back-end storage, the real capacity per user only amounts to 6 GB. If we assume 100 users, this means that the virtual capacity is 1 TB, but only 600 GB of real capacity is available in the storage subsystem. This is a valid approach only because the administrator knows from previous observations that not all users will request the whole amount of physical capacity at the same time. Some will only request 4 GB or less, some might request the whole 10 GB. But the assumption remains that on average they all request no more than 6 GB of real capacity. It remains the responsibility of the storage administrator to monitor the allocation of real capacity to avoid any out-of-storage condition. Thin provisioning in data centers In data centers, a shared storage infrastructure provides storage for many different applications running on different servers. The initial storage capacity for those servers has been requested usually during their deployment phase. The requested capacity is most likely a combination of the initial required storage and an estimation of the growth over the estimated application lifetime. Looking across all applications in a data center with focus on their storage capacity demand over time, experience has shown that some applications grow quite fast. However, other applications have almost no change in storage need, or do not even fully use their assigned initial capacity. From the overall storage management point of view, this circumstance offers the opportunity to improve the use of the shared storage capacity. A policy can be established where assigned but unused capacity can be reassigned to applications that exhibit a more dynamic storage demand. To allow redistribution of capacity in the storage subsystem, the storage allocation must be separated from the storage configuration process. Thin provisioning offers this capability. 4 DS8000 Thin Provisioning 1.2 DS8000-specific implementations The DS8000 provides two types of space-efficient volumes. Each type has a slightly different implementation. This section gives a brief overview. The details for each type of implementations are described in 3.2, “Track space-efficient volumes” on page 18 and 3.3, “ESE logical volumes” on page 21. 1.2.1 Track space-efficient (TSE) volumes Track space-efficient (TSE) volumes were introduced with the DS8000 Release 3.0 (License Machine Code, LMC 5.3x.xx). TSE volumes were designed solely to support the IBM space-efficient FlashCopy® or FlashCopy SE feature. The allocation of real capacity for TSE logical volumes is operated from a so-called repository volume, which has to be created per extent pool. To create a repository volume, the amount of real capacity that it requires has to be supplied. In addition, the repository also requires a virtual capacity to provide a pool for the TSE logical volumes. The ratio of the virtual capacity to the real capacity represents the storage over-commitment. Because FlashCopy SE operates as a normal FlashCopy and the FlashCopy relations for FlashCopy SE are no-copy relations, on-going writes to the primary volume will result in a copy-on-write situation. Therefore, before a write to a track at the primary volume can take place, the current content of the track has to be copied to the target volume. This happens on a per track basis. TSE storage allocation has been implemented to allocate storage according to the track-based copy process of the FlashCopy. The granularity of space allocation for the TSE volumes is exactly one track, which is 64 KB. 1.2.2 Extent space-efficient (ESE) volumes The ESE volumes are thin-provisioned volumes designated for standard host access. The virtual capacity pool for ESE volumes is created per extent pool. Until Release 7.2, support for an ESE repository did not exist. Now with Release 7.2, there is an option to create an ESE repository in the extent pool where the ESE logical volumes exist or are planned to be created. The best approach is to create an ESE repository in each extent pool that will be used for ESE logical volumes. If there is no repository, the real capacity pool for allocation is simply the unused space in the extent pool. For details, see 3.3.2, “Optional ESE repository for ESE logical volumes” on page 21. The allocation of real capacity for ESE volumes happens with writes to an unallocated address (as is the case with TSE volumes). However, before the write, a new extent will be dynamically allocated and assigned to the volume. After the extent has been allocated, the extent has to be formatted. The extent initialization is done by the Quick Init process introduced with the DS8000 microcode Release 4.3. With Quick Init, volume initialization is much faster and replaces the previous initialization process. Quick Init is invoked within standard volume creation, volume expansion, and dynamic allocation of extents in thin provisioning. It also enables concurrent copy services operations. The granularity with the ESE volume is one extent, which means 1 GB. With this approach, the DS8000 takes advantage of its standard entities. At allocation time, there might be a slight impact on the write performance. The response time for the first write operation might go up, but not significantly. After the extent has been allocated and formatted, the ESE volume performs the same as standard logical volumes. Chapter 1. Thin provisioning 5 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. 6 DS8000 Thin Provisioning 2 Chapter 2. Planning considerations and guidelines This chapter presents general guidelines and discusses important considerations for taking advantage of the thin provisioning functionality. The information applies to the Thin Provisioning feature that is available for the IBM DS8870 with Licensed Machine Code (LMC) 7.7.20.xx.xx. Note: In this chapter, the term thin provisioning is used as it relates to the extent space-efficient (ESE) implementation only. The track space-efficient (TSE) implementation is only supported for use with space-efficient FlashCopy target volumes. © Copyright IBM Corp. 2014. All rights reserved. 7 2.1 General considerations We start with general considerations regarding the use of thin provisioning. 2.1.1 Thin provisioning benefits Thin provisioning offers the following typical advantages: Reduced storage management efforts: – Exploiting over-provisioning in file systems, databases, and logical volume managers without the underlying physical capacity to be present. – Real capacity can be added transparently to the software stack later, as required. Improved capacity utilization: – Physical capacity is not allocated until it is actually used. – Unused capacity for a set of volumes resides in a shared pool of overall available capacity. – Contingency capacity can therefore be shared between this set of volumes. The average contingency capacity per volume can be less - compared to the case where it cannot be shared and every volume has contingency capacity allocated. This leads to higher utilizations of the existing physical storage capacity; therefore, acquisitions of additional physical capacity might be reduced or deferred to a later point in time. – By sharing the capacity in a pool used to provision a set of space-efficient logical volumes, deviations in allocation requirements of specific volumes tend to average out over the whole capacity pool. This increases the amount of tolerable over-commitment overall and makes it more predictable. – The limit of tolerable over-provisioning without running into out-of-space conditions depends on the following circumstances: • • • Characteristics of the applications using the space-efficient volumes Granularity of incremental capacity allocations to the space-efficient volumes Rates at which capacity is consumed versus being released In general, there is a trade-off between performance and space-efficiency, which depends on the granularity of capacity allocation: A fine granularity leads to the best space efficiencies, but might introduce performance problems, because of the overhead involved in the administration for accessing metadata, capacity allocations, and updating metadata on a small scale. This might also introduce issues with sequential performance, when the sequential ordering of the data written is not maintained, and therefore not transformed into a sequential set of logical tracks within the allocated capacity on the DS8000 logical volume. A coarse granularity might be less space efficient for the applications but it tends to have less impact on performance due to the following circumstances: – Larger capacity allocated at one time, therefore fewer allocations are necessary for a certain amount of data. – Reduction in metadata accesses to determine whether capacity is allocated. – Fewer updates required to the metadata to reflect the changes in allocations. – More friendly for sequential workload, because sequential logical tracks are grouped into fewer capacity allocations. 8 DS8000 Thin Provisioning 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. Chapter 2. Planning considerations and guidelines 9 A generic recommendation about sustainable over-provisioning ratios is difficult to give, because the workloads and client requirements vary broadly. A conservative approach when starting with over-provisioning in an existing environment is to use ESE volumes exclusively, assume a 1:1 over-commit ratio initially, and monitor what storage remains unallocated. This way, the storage administrator gets a better understanding of which volumes tend to under-provision their configured size, which allows a better estimation of how much over-commitment is sustainable in this environment. For any ESE volume that is overcommitted, the client must have an understanding of the impact of running out of space in their environment and what actions will need to be taken to recover from the situation. The DS8000 provides options to reserve a capacity buffer and to set thresholds for monitoring purposes, as described in Chapter 6, “Managing and monitoring thin-provisioned volumes” on page 75. Another better approach, available with DS8870 R7.2 and higher, is to create an ESE repository. See 3.3.2, “Optional ESE repository for ESE logical volumes” on page 21. The trade-off between cost savings and risk of outage is controlled by the over-provisioning factor. This value must be obtained carefully. The following procedure is proposed to help you determine an acceptable over-provisioning value: 1. Perform an analysis of the current storage utilization on a per server or application basis. Use the ratio of the assigned capacity to the used capacity as a first general indication for a possible over-provisioning value. 2. Create an estimate of future capacity needs to determine if the over-provisioning value obtained in step 1 will remain constant over time. Perform a review of the storage demands history across all applications that are candidates for thin provisioning. The outcome of this review will be an indication of how to adjust the over-provisioning ratio. For example, if you have in your environment many applications with low or moderate storage growth and only a few applications with dynamic storage growth, you can adopt a more aggressive over-provisioning value because the demands of the few dynamic applications can be supplied by a huge base of applications with unused storage capacity. Every application is driven by the business for which it was designed. In this sense, knowing the expected development of the business behind that application will also give some indication of the future storage demands. If a high growth of storage demand is expected, it might be appropriate to reduce the over-provisioning ratio to lower the risk. You can order a Capacity on Demand feature from IBM as an option to have additional contingency capacity. This feature ensures that the physical hardware required for a capacity upgrade is already installed. Therefore, it only has to be activated when needed. 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 DS8000 Thin Provisioning 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. The following options are available to release allocated extents The current implementation of DS8000 thin provisioning does not provide a mechanism to release space on less than an entire logical volume: Deleting an ESE volume will release all its allocated extents (real and virtual capacity). The real and virtual extents become available for reallocation. Requesting volume initialization through DS CLI/GUI will release all its real extents. A SCSI Format Unit command issued by the attached host will release its real extents. Important: For critical applications, standard logical volumes might be a better choice to avoid any risk of running into an out-of-space situation. Chapter 2. Planning considerations and guidelines 11 2.1.3 Sizing The following size maximums apply to the DS8000 ESE thin provisioning implementation: Up to 4 PB total capacity (real and virtual) per storage facility image Up to 4 PB total capacity (real and virtual) per extent pool Up to 2 PB virtual capacity per extent pool Up to 2 TB logical unit numbers (LUNs) for open systems Up to 65280 logical devices 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 DS8000 Thin Provisioning 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. 2.2 Planning steps To determine an appropriate DS8000 configuration with thin provisioning in a specific environment, the following data is required. The data must be carefully gathered. The order is not relevant at this point, but all steps and related information are required to specify what DS8000 features to order: 1. Determine the needed capacity for standard volumes, and plan for growth. 2. Determine the desired capacity for ESE, and plan for growth. 3. Consider defining an ESE repository. 4. Determine a sustainable over-provisioning ratio for ESE based on applications, workloads, buffers, monitoring, and a contingency plan. 5. Determine the desired capacity for TSE, and plan for growth. 6. Determine a sustainable over-provisioning ratio for TSE (typically higher ratio tolerable than ESE). 7. Determine other factors for DS8000 configuration, and model the workload with Disk Magic. 8. Calculate the required real capacities and model the required feature codes by using Capacity Magic. Based on results, determine the required DS8000 configuration and feature codes. 2.2.1 Planning examples The following sections describe several planning illustrations for different thin provisioning scenarios. Chapter 2. Planning considerations and guidelines 13 Examples including thin provisioning and FlashCopy SE To determine an appropriate DS8000 configuration, we use the following steps: 1. Specify the required standard and virtual capacities. 2. Specify sustainable over-provisioning ratios for both TSE and ESE. 3. For all volume types, calculate the real capacity that is needed, including metadata overhead. 4. The overall real capacity that is needed plus the performance requirements (results from Disk Magic modeling) determine the correct feature codes to order. Input parameters are needed as specified in steps 1 and 2. In step 3, the overall required real capacity is calculated based on the over-provisioning ratios and needed metadata. In step 4, the results from the Disk Magic modeling need to be included to determine which drive types, sizes, and RPM speeds are required for the provided capacity to meet the performance criteria and the capacity criteria. In our illustrations, we cover steps 1 to 3 only. We also made the following assumptions: Only RAID-5. No Serial Advanced Technology Attachment (SATA) disks. Usable disk capacity: 90%. The number of frames needed will be listed for a single drive type configuration only. A mix of drive types can lead to the need for more spare drives. A mix of drive types also depends on the creation order of the different arrays. After the required real capacity is calculated, you can use Capacity Magic to determine the configurations and drive sets to order. The calculations for our examples are summarized in Table 2-1. Two example configurations for the required capacities have been calculated already. Two columns are left empty so that you can start calculating your required capacity configuration along the same lines. Table 2-1 Calculation of required capacities and number of drivesets needed by disk capacity 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 Input: Virtual TSE capacity required (GiB) 512 2048 Input: Overcommit ratio for TSE 8:1 8:1 DS8000 Thin Provisioning 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) -> base frame with 8 arrays 6+P and 8 arrays 7+P (8 drivesets total) and first expansion frame with 4 arrays 6+P (2 drivesets total) -> base frame with 8 arrays 6+P and 8 arrays 7+P (8 drivesets total) and first expansion frame with 16 arrays 6+P and 16 arrays 7+P (16 drivesets total) and second expansion frame with 4 arrays 6+P and 2 arrays 7+P (3 drivesets total) 300 GB disks (6+P: 1620 GB) (7+P: 1890 GB) -> base frame with 6 arrays 6+P and 4 arrays 7+P -> 5 drivesets total -> base frame with 8 arrays 6+P and 8 arrays 7+P (8 drivesets total) and first expansion frame with 4 arrays 6+P and 4 arrays 7+P (4 drivesets total) -> number of drivesets needed for this real capacity: - 6+P arrays - 7+P arrays Chapter 2. Planning considerations and guidelines 15 450 GB disks (6+P: 2430 GB) (7+P: 2835 GB) Example 1 Example 2 -> base frame with 4 arrays 6+P and 4arrays 7+P -> 4 drivesets total -> base frame with 8 arrays 6+P and 8 arrays 7+P (8 drivesets total) For Reference, to determine the number of frames needed: 16 Base frame max # drivesets: 8 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 DS8000 Thin Provisioning 3 Chapter 3. Space-efficient volumes in the DS8000 This chapter describes the design and implementation of space-efficient (SE) volumes in the DS DS8000. As seen in the introduction chapter, there are two types of space-efficient volumes in the DS8000: Track space-efficient (TSE) volumes Extent space-efficient (ESE) volumes TSE logical volumes are designed for use as space-efficient FlashCopy targets and are supported only in that usage. ESE logical volumes are meant to support thin provisioning in general. Applications and operating systems that are appropriate for thin provisioning can use ESE logical volumes for their storage needs. Although TSE logical volumes require that a TSE repository exists in the extent pool, the ESE logical volumes have no such requirement. Until Release 7.2 (IBM DS8870 with Licensed Machine Code (LMC) 7.7.20.xx.xx), support for an ESE repository did not exist. Now with Release 7.2, there is an option to create an ESE repository in the extent pool where the ESE logical volumes exist or are planned to be created. The preferred practice is to create an ESE repository in each extent pool that will be used for ESE logical volumes. © Copyright IBM Corp. 2014. All rights reserved. 17 3.1 DS8000 logical volumes With the introduction of DS8000 Release 4.3 and thin provisioning, three types of volumes are now available: Standard logical volumes Standard logical volumes are the regular type of volumes. These volumes are fully provisioned with real capacity. Track space-efficient logical volumes Track space-efficient logical volumes are used as target volumes of a FlashCopy SE operation (with a nocopy option). Because in a nocopy relation, only modified data is copied to the target volumes, this kind of space-efficient volume can operate with a high over-provisioning ratio. Extent space-efficient volumes Extent space-efficient volumes are implemented to allow thin provisioning in general and are dynamically provisioned using the DS8000 regular extents. When an ESE logical volume is initially created, the volume has no real data capacity. However, the DS8000 will use some real capacity for metadata that it uses to manage space allocation. 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 or not. 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. 3.2 Track space-efficient volumes A FlashCopy with the nocopy option is typically used with the goal of taking a backup from the FlashCopy target volumes. Without the use of space-efficient volumes, target volumes consume the same physical capacity as the source volumes. Moreover, these target volumes are often nearly empty because space is only occupied on demand, when a write to the source volume occurs. Only changed data is copied to the target volume. A space-efficient volume only uses the space needed for updates to the source volume. The DS8000 provides the function FlashCopy SE, where the target volume of a FlashCopy is defined as a TSE logical volume. TSE logical volumes can only be created when the FlashCopy SE licensed feature is installed on the DS8000. The logical volumes can be either fixed block (FB) or count key data (CKD). TSE logical volumes appear to a server as standard logical volumes. 18 DS8000 Thin Provisioning 3.2.1 Repository for track space-efficient logical volumes The definition of TSE logical volumes begins at the extent pool level. TSE logical volumes are defined from virtual space in that the size of the TSE logical volume does not initially use physical storage. However, any data written to a TSE logical volume must have enough physical storage to contain this write activity. The repository provides this physical storage. The repository is an object within an extent pool with a physical size that cannot be greater than the physical capacity of the extent pool in which it is created. It is the physical space that is available for all TSE logical volume data, in the extent pool. The repository is striped across all ranks within the extent pool. There can only be one TSE repository per extent pool. There is metadata (overhead) space required for the TSE repository, which is based on the size of the repository. The metadata space is approximately 1% of the repository size. For example, if the TSE repository is 1000 GiB in size, the metadata space configured in the extent pool to support the repository is 11 GiB. Important: The size of the repository and the size of the virtual space are part of the extent pool definition. Each extent pool can have a TSE logical volume repository, but this physical space cannot be shared between extent pools. Initially, the virtual capacity of an extent pool is 0 (zero), but it is automatically increased as space-efficient volumes are created. After the repository exists, the virtual capacity can be increased using the chsestg command. It is not possible to decrease the virtual capacity of an extent pool. The virtual size of an extent pool is the sum of virtual storage that is available for TSE and ESE logical volumes. For example, there can be a repository of 100 GB physical storage, and you define a virtual capacity of 200 GB. In this case, you can define 10 TSE LUNs with 20 GB each, which means the logical capacity can be larger than the physical capacity. Of course, you cannot fill all the volumes with data because the total physical capacity is limited to 100 GB in this example. The virtual capacity of an extent pool is reset to 0 (zero) whenever the TSE repository is deleted, if it increased from 0 (zero) as a result of allocating TSE logical volumes or using the chsestg command to change its size, after the TSE repository was created. Note: In the current implementation of TSE volumes, it is not possible to expand the size of the repository. Therefore, you must plan carefully for the size of the repository before you use it. If a repository needs to be expanded, you must delete all TSE logical volumes within the extent pool. Then, delete and re-create the repository with a different size. Space for a TSE logical volume is allocated when a write occurs. More precisely, it occurs when a destage from the cache occurs. The allocation unit is a track, which is 64 KB for open systems logical unit numbers (LUNs) or 57 KB for CKD volumes, which you must consider when you plan for the size of the repository. The amount of space that gets physically allocated might be larger than the amount of data that was written. If there are 100 random writes of, for example, 8 KB (800 KB in total), we probably allocate 6.4 MB (100 x 64 KB). If there are other writes changing data within these 6.4 MB, there will be no new allocations at all. Chapter 3. Space-efficient volumes in the DS8000 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 Figure 3-1 Concept of TSE logical volumes 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 DS8000 Thin Provisioning 3.3 ESE logical volumes ESE logical volumes are used for general thin provisioning with the DS8000. The allocation management for ESE logical volumes is generally based on the DS8000 standard storage entities. This means that the dynamic allocation increments for ESE logical volumes is based on the same existing 1 GB extents used for standard volumes. Because there is no extra work to access ESE logical volumes, write operations to ESE volumes are similar in performance to write operations on standard volumes. To create ESE logical volumes, the Thin Provisioning licensed feature must be installed on the DS8000. This feature only supports FB type logical volumes. 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. Managing virtual capacity The easiest way to manage the virtual capacity of the extent pool is to increase the virtual capacity automatically. As new ESE logical volumes are created, the DS8000 will automatically increase the virtual capacity of the extent pool to support the total capacity of the ESE logical volumes. This is the only choice you have if there is no ESE repository in the extent pool. The second way to manage virtual capacity is by using the chsestg command, but this will only work if there is an ESE (or a TSE) repository that is already created in the extent pool. Although this command uses the -reptype parameter, which can be ESE or TSE (TSE is the default value), it is really setting the total virtual capacity of the extent pool and not for a specific type of space-efficient volume. 3.3.2 Optional ESE repository for ESE logical volumes Before R7.2 in the DS8000, the creation of ESE logical volumes did not allow for the use of an ESE repository. The ESE logical volumes were able to use all of the available space in the pool for allocated extents. With the introduction of R7.2, there is now an option to create an ESE repository for the ESE logical volumes. This repository can be created within an extent pool, just like the TSE repository. An extent pool can contain a maximum of one TSE and one ESE repository. If an extent pool is going to be used for ESE logical volumes, it is better that the extent pool has no standard volumes and only the ESE repository for the ESE logical volumes. Chapter 3. Space-efficient volumes in the DS8000 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. ESE volumes without an ESE repository When using ESE logical volumes without a repository, there is no reserved space for storing data on those volumes. The amount of space available to write data on the ESE logical volumes is the “available” space in the extent pool. If the “available” space is subsequently reduced because new standard, TSE (and TSE repository), or ESE logical volumes are created, the amount of space available to write data on the current ESE logical volumes is also reduced because no reserved space exists for the ESE logical volumes. When an extent pool is created, the virtual capacity of the pool is 0 (zero). When an ESE logical volume is created, the virtual capacity is automatically increased to support the size of the ESE volume. There is a limit to the virtual capacity of an extent pool. This limit is based on using all of the “available” space in the extent pool for metadata for space-efficient volumes. Because ESE logical volumes do not require a repository, all of the extent pool can be used for metadata, but that means that no space exists for writing data to the ESE logical volumes. 22 DS8000 Thin Provisioning 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 Available capacity (GUI) .... 481,694 GiB Total extent pool capacity .... 2,122 GiB - actual physical capacity Space for ESE volume data ..... 1,000 GiB - your decision Allocated extent pool space ....... 0 GiB - assumes there is no TSE repository or standard volumes Space available for metadata .. 1,122 GiB Approximate total virtual capacity for ESE volumes is 224,400 GiB This would result in an opratio of 224:1 - an extremely high value A second method is to determine the opratio that you want, with as low a number as possible to start. Remember that you might be able to increase this number if usage allows it, as monitored over time. Multiply the opratio by the space you want to be used to store data for the ESE volumes that are created. The result will be your total virtual capacity in the extent pool to create ESE volumes. See Example 3-2 on page 24 to review this calculation using actual numbers. Chapter 3. Space-efficient volumes in the DS8000 23 Example 3-2 Using opratio Available capacity (GUI) .... 481,694 GiB Total extent pool capacity .... 2,122 GiB - actual physical capacity Space for ESE volume data ..... 2,080 GiB - your decision Allocated extent pool space ....... 0 GiB - assumes there is no TSE repository or standard volumes Space used for metadata .......... 42 GiB Opratio ........................... 4:1 Approximate total virtual capacity for ESE volumes is 8,320 GiB A third and more practical approach is to determine your ESE volume capacity requirements, divide that number by your opratio requirement, and add space for metadata (ESE volume capacity multiplied by .5). This will provide you with the required storage capacity when you set up the extent pool. See Example 3-3 to review this calculation using actual numbers. Example 3-3 ESE capacity requirements Total ESE volume capacity .... 10,000 GiB Space for ESE volume data ..... 2,500 GiB Space required for metadata ...... 50 GiB Opratio required 4:1 Total extent pool capacity .... 2,550 GiB Tools are available to assist you in planning your overall storage requirements in a DS8000. They are explained in Chapter 2, “Planning considerations and guidelines” on page 7. The DS8000 will create the virtual capacity needed for ESE logical volumes as they are created. If you want, you can set the virtual capacity for the extent pool, or let it grow as volumes are created. The total virtual capacity represents the sum of virtual storage that is available for ESE logical volumes. Figure 4-2 illustrates the general concept of ESE logical volume allocation without a repository. Note: If the total virtual capacity is used and a new ESE logical volume must be created, the virtual capacity of the pool can be expanded dynamically. This will happen automatically when new ESE volumes are created. The creation of the new volume will only be successful if there are sufficient available extents in the extent pool for the metadata required for the new volume. It is not possible to reduce the size of the pool’s virtual capacity. 24 DS8000 Thin Provisioning Figure 3-2 Concept of ESE logical volume without a repository 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. ESE volumes with an ESE repository The repository for ESE volumes can be created before any ESE volumes are created, or after the volumes are created. Like the TSE repository, only one ESE repository can be in an extent 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 DS8000 Thin Provisioning Figure 3-3 illustrates the general ESE logical volume when using an ESE repository. Figure 3-3 Concept of ESE logical volume with a 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. 3.3.3 Capacity allocation for ESE volumes When a host writes data to an extent of an ESE logical volume and the extent does not have an associated real extent, the write operation is held in abeyance until a real extent from the extent pool is dynamically allocated to the ESE logical volume. If there is a repository, an available extent that belongs to the repository will be allocated. If there is no repository, an available extent in the extent pool will be allocated. This process is applied primarily in the cache of the DS8000 storage facility image. Now, the write data is accepted into the write cache. Whenever a real extent is allocated to an ESE volume, the Quick Init process is invoked to dynamically initialize the tracks on the real extent that have not been written by the requesting write operation. This quick initialization is performed in parallel with the host access. When the quick initialization has finished, the extent is ready for normal operations. Any subsequent write operations that might cause one or more destages of tracks can also now be applied to the new extent. Chapter 3. Space-efficient volumes in the DS8000 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. 3.3.4 Out-of-space condition When a write operation requires another extent allocation, but all real extents are already used up, the write operation is rejected by the DS8000. 28 DS8000 Thin Provisioning 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. Chapter 3. Space-efficient volumes in the DS8000 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 Used Extents for ESE LV Used Extents for Standard LV Standard LV Available Extents Extent Pool Figure 3-4 Extent pool space without an ESE repository 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 DS8000 Thin Provisioning Figure 3-5 Extent pool space with an ESE repository 3.3.5 Volume creation ESE logical volumes are created using virtual extents. The number of virtual extents that can be created in the pool is based on the virtual capacity of the pool. The ESE logical volume will initially have some real capacity allocated. This is necessary to store the volume’s internal metadata and is referred to as “overhead”. The metadata consists of a structure and data about the extent, such as status information, address information, and other information used by the DS8000 microcode. The capacity required by metadata is low (below 0.5% of the logical volume capacity), but it uses real storage nevertheless. The overhead per extent pool can be shown with the DSCLI command showsestg. The more volume capacity that is created in the pool, the more metadata space is required. This, in turn, will reduce the amount of space to store data on the volumes. Without a repository setup for the ESE logical volumes, the available space to store data on the ESE volumes will decrease as you add more volumes, whether they are ESE or standard, or if you add a TSE repository for TSE volumes. When an ESE logical volume is made accessible to the host, certain allocation operations might be executed at the host to make the volume usable by the operating system and the applications. Depending on the host platform, the allocation tasks will differ. For example, on an IBM AIX® host, the volume will be allocated to the volume manager by creating a volume group first. During this process the Volume Group Descriptor Area (VGDA) and Volume Group Status Area (VGSA) will be written to the volume, which will cause the dynamic allocation of an extent. Allocation of the logical volume on the AIX host will also cause some writes to the volume. The Enhanced Journaled File System (JFS2) then causes another write operation. All of these steps taking place at the AIX host with JFS2 result in two extents being allocated at the DS8000 back end. For more information, see Chapter 7, “Host considerations and migration to ESE volumes” on page 81. Chapter 3. Space-efficient volumes in the DS8000 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. 3.3.6 Releasing space After a file system or an application has allocated its initial storage and has been turned over to production, new data will eventually be added, resulting in new storage allocation. Data will also be modified or deleted. These operations will produce portions of unused space on the volume from the host point of view, but also on the logical volumes of the storage subsystem. This is generally known as fragmentation and occurs on space-efficient logical volumes and on standard logical volumes in the same way. For standard logical volumes, this situation is almost insignificant, because the whole capacity (used or unused by the application) is exclusively assigned to the logical volume anyway. It is more important to ESE logical volumes, because unused capacity resulting from data deletions cannot be reused for the thin provisioning until it is released back to the real capacity pool. Currently, the only method to release space back to the real capacity pool is to remove the ESE logical volume, or to issue an initfbvol command, which will initialize the whole volume. To release space with this condition, a migration procedure to a new ESE logical volume is enforced. Depending on the operating system or the application, this migration might require downtime. 3.3.7 Migration considerations Considerations are described about how to bring thin provisioning into production. It is assumed that the applications and the operating system on which the applications are running are viable candidates for thin provisioning. Applications that currently use standard logical volumes need to be carefully analyzed to determine how much storage capacity is not used from the server perspective. ESE logical volumes are then assigned to the server and data can be migrated from the original standard volumes to ESE volumes. At the end of the migration, the real capacity allocated to the ESE logical volume needs to be typically equal to the capacity that was effectively used on the standard logical volume. Depending on the application and operating system, it is possible that a bit more capacity might be allocated. This might happen due to the additional metadata required for thin provisioning and the behavior of the file system. The actual data needs to be migrated using the host-based application methods or a Logical Volume Manager (LVM)-based mirroring. Other methods that are provided by lower levels of the operating system might not produce the intended result. For example, using the UNIX dd command copies each block of the source device to the target device, which as a result allocates all the capacity on the ESE logical volume. 3.3.8 Performance considerations In general, a trade-off exists between space-efficiency and performance that depends on the granularity of capacity allocation. A small granularity capacity allocation leads to the best space efficiencies. However, it might have performance problems because of the overhead involved with capacity allocation and the overhead involved with accessing metadata that determines whether the capacity is allocated. 32 DS8000 Thin Provisioning 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. Chapter 3. Space-efficient volumes in the DS8000 33 34 DS8000 Thin Provisioning 4 Chapter 4. Enabling thin provisioning Thin Provisioning is a licensed feature of the IBM System Storage DS8000. This chapter covers the following topics: 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. © Copyright IBM Corp. 2014. All rights reserved. 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 DS8000 Thin Provisioning Figure 4-1 DS Storage Manager GUI - Activation keys information Example 4-1 shows Thin Provisioning activation codes listed by the DS CLI. Example 4-1 DS CLI: Activation keys information dscli> lskey IBM.2107-7520781 Date/Time: 2009. kolovoz 04 18:46:16 CEST IBM DSCLI Version: 5.4.30.210 DS: IBM.2107-7520781 Activation Key Authorization Level (TB) Scope ========================================================================== High Performance FICON for System z (zHPF) on CKD IBM FlashCopy SE 276 All IBM HyperPAV on CKD IBM System Storage DS8000 Thin Provisioning on All IBM database protection on FB Metro/Global mirror (MGM) 106,7 All Operating environment (OEL) 105,6 All Parallel access volumes (PAV) 105,6 CKD Point in time copy (PTC) 105,6 All Remote mirror and copy (RMC) 105,6 All Remote mirror for z/OS (RMZ) 105,6 CKD dscli> Restriction: Thin Provisioning is activated for ALL (fixed block (FB) and count key data (CKD) volumes) although it is not supported with CKD. Chapter 4. Enabling thin provisioning 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 dscli> showextpool P10 Date/Time: 2009. august 04 21:16:40 CEST IBM DSCLI Version: 5.4.30.210 DS: IBM.2107-7520781 Name gero_0 ID P10 stgtype fb totlstor (2^30B) 452 availstor (2^30B) 0 resvdstor (2^30B) 0 rankgrp 0 numranks 1 numvols 1 status full %allocated 100 %available 0 configured 452 allowed 452 available 0 allocated 452 reserved 0 %limit 100 %threshold 15 virextstatus full %virallocated 0 %viravailable 0 virconfigured 0 virallowed 0 viravailable 0 virallocated 0 virreserved 0 %virextlimit %virextthreshold encryptgrp %allocated(ese) 0 %allocated(rep) 0 %allocated(std) 100 %allocated(over) 0 %virallocated(ese) %virallocated(tse) %virallocated(init) dscli> 38 DS8000 Thin Provisioning Effect on existing FlashCopy TSE target volumes To configure ESE logical volumes, there must be sufficient available virtual extents in the extent pool to support the logical volumes. If track space-efficient (TSE) logical volumes are already created in the same extent pool (and therefore already using virtual extents), you must be aware of the total virtual capacity used by TSE and ESE. Virtual capacity can be configured and expanded in an extent pool through DS CLI or it can be done automatically by using the DS GUI to create TSE or ESE volumes. Virtual capacity can be expanded as required up to the supported limits as described in Chapter 2, “Planning considerations and guidelines” on page 7. Virtual capacity can be deleted from an extent pool if there are no TSE or ESE logical volumes configured in the extent pool. 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. Chapter 4. Enabling thin provisioning 39 40 DS8000 Thin Provisioning 5 Chapter 5. DS GUI and DS CLI support for thin provisioning This chapter explains the use of the DS GUI and DS CLI commands in support of thin provisioning-related functions. © Copyright IBM Corp. 2014. All rights reserved. 41 5.1 DS GUI and DS CLI support for thin provisioning The creation of volumes in the DS8000 requires the specification of the Storage Allocation Method or SAM attribute. This attribute determines the type of the logical volume that will be created. You can create the following types of logical volumes: Standard logical volume Track space-efficient logical volume (TSE) Extent space-efficient logical volume (ESE) This chapter explains the various ways that ESE logical volumes can be implemented in the DS8000. If you are familiar with TSE logical volumes, you know that they require the creation of a repository before the volumes can be created in the extent pool. With ESE logical volumes, you have a choice of whether you want to use an ESE repository for your ESE logical volumes. This chapter provides details for both scenarios. Thin provisioning allows you to create ESE logical volumes by specifying the ESE SAM during volume creation. Virtual capacity must exist in the extent pool to configure an ESE logical volume. The virtual capacity is automatically configured in the extent pool when you create ESE logical volumes but it is limited by the available capacity of the extent pool. The DS8000 maximum supported limit is 2 PB per extent pool. Thin provisioning is only supported for fixed block (FB) volumes, and is not supported for IBM System z CKD logical volumes. In the next two sections, the procedures to create and manage ESE volumes are explained. The first section covers the use of the DS GUI and the second section covers the use of the DS CLI commands. 5.2 DS Storage Manager GUI When using the thin provisioning feature to create and manage ESE logical volumes, it is possible to use the DS GUI for certain functions. Although the GUI allows for the creation of ESE logical volumes, it does not allow for the creation of the ESE repository. You can create an ESE repository only by using a DS CLI command. Because it is possible to use the DS GUI to create ESE logical volumes, we look at the windows in the DS GUI that reference thin-provisioned storage in the DS8000, and then discuss the process for creating the volumes. The details for the DS GUI that are explained here assume that the icon navigation option is used. The following GUI windows are used to create and manage ESE volumes: 42 FB Volumes main window Add Volumes window Internal Storage window and Extent Pools tab Add Space-Efficient Repository window (storage in extent pools) Extent pool properties window DS8000 Thin Provisioning FB Volumes main window The FB Volumes window displays open systems storage information. You can use this window to initiate actions that relate to open systems volumes. The top pane provides summary information about the amount of standard capacity used by standard FB volumes and the amount of virtual capacity used by the TSE and ESE volumes. The capacities for each type are placed in four categories: Host Assigned Includes allocated capacity only for those volumes (standard, TSE, or ESE) in volume groups that are assigned to a host connection Unassigned in volume group (VG) Includes allocated capacity only for those volumes (standard, TSE, or ESE) in volume groups that are not assigned to a host connection Ungrouped Includes allocated capacity only for those volumes (standard, TSE, or ESE) that are not in volume groups Unallocated The amount of standard and virtual capacity that is not allocated to volumes Figure 5-1 shows the top pane of the FB Volumes window with the summary displayed as a bar chart that includes TSE and ESE volumes. The quantities of each type by category are shown on the right. Under each of the categories, the capacity of a volume type is only included if it exists in the storage system. Figure 5-1 Open systems volumes main page - ESE volumes in chart data Chapter 5. DS GUI and DS CLI support for thin provisioning 43 Add Volumes window The Add Volumes window is used to define the properties for the volumes being created. The properties include selecting the storage allocation method. The thin provisioning feature allows you to create an ESE logical volume by specifying the ESE storage allocation method (SAM) during volume creation. This is depicted in Figure 5-2. Figure 5-2 Storage allocation method: ESE 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. Internal Storage window and Extent Pools tab The Internal Storage window has three sections: Summary in the top section, Alerts in the middle section, and Manage Internal Storage in the bottom section. The Summary section provides information about the amount of total used real capacity for open systems and System z. It includes a comparison of assigned real capacity and available real capacity. The real capacity provides information for TSE and ESE volumes. There is no detail provided on virtualized capacity. Figure 5-3 on page 45 shows an example with configured ESE volumes. This display will be the same regardless of whether ESE repositories are used. 44 DS8000 Thin Provisioning Figure 5-3 Extent pools main page - ESE storage capacity 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. Chapter 5. DS GUI and DS CLI support for thin provisioning 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. Add space-efficient repository storage in extent pools The DS GUI will allow the creation of a TSE repository only, although it is referred to as a space-efficient repository. Also, the DS GUI will provide details for TSE repositories only if they exist. An ESE repository can only be created and managed by using DS CLI commands. Figure 5-4 shows the new Add Space-Efficient Repository window where the only two required inputs are repository capacity (minimum 16 GiB) and the repository capacity threshold. Notice that there is no type selection available. Figure 5-4 Add Space-Efficient Repository window Extent pool properties The Single Pool Properties window displays additional information for ESE volumes under the Space-Efficient Storage tab as shown in Figure 5-5 on page 47. The repository information (capacity, capacity allocated, data state, and configuration state) relates to TSE volumes only. The total virtual capacity is shown for both TSE and ESE volumes in that extent pool. Also shown is the allocated ESE physical and virtual capacity. 46 DS8000 Thin Provisioning 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. Figure 5-5 Extent pool properties 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. 5.3 DS CLI commands All of the functions required to create and manage ESE logical volumes are possible through the use of CLI commands. This section reviews each command that can be used in the creation and management of ESE logical volumes. Because these commands are not new, only the parameters and output details that refer to ESE storage are covered. The following DS CLI commands are reviewed: mksestg chsestg lssestg, showsestg mkfbvol lsfbvol, showfbvol showextpool initfbvol lsvolinit (does not show Quick Init) Chapter 5. DS GUI and DS CLI support for thin provisioning 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. The mksestg command The mksestg command is used to create a space-efficient repository in an existing extent pool. You can only create one TSE and one ESE repository in an extent pool. After the repository is created, if you need to change the size, you must use the chsestg command. The mksestg command can also be used to specify the virtual capacity setting for the extent pool. Usually this is not necessary because the virtual capacity will automatically increase as additional space-efficient volumes are created in an extent pool. You cannot decrease the virtual capacity with this command. The mksestg command is used to create an ESE repository if you plan to use an ESE repository for the ESE logical volumes. Other space-efficient parameters can be controlled with this command. Because the virtual capacity is controlled automatically, only the use of the command to create the repository is described. To create an ESE repository, you need to use these parameters: –reptype with the option ese when you want to create an ESE repository. If this parameter is not specified, it defaults to type tse. –repcap is used to specify the capacity of the repository. Use any value from zero up to the physical size of the extent pool. The default is zero. You can increase or decrease the size of the repository later without deleting any ESE logical volumes. Note: Although you can specify the -repcap parameter equal to the physical size of the extent pool (if it is all available), it is not practical to do so. You will not be able to create any ESE volumes in the extent pool, because no space is available for the virtual capacity overhead that is required for ESE volumes. Careful planning must be made to 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 dscli> mksestg -reptype ESE -repcap 100 p6 CMUC00342I mksestg: The space-efficient storage for the extent pool P6 has been created successfully. Remember these important considerations when you use this command to create an ESE repository: The default capacity type is gb (GiB). It is possible to use the –captype parameter to specify a different unit type, such as block. (Only use this if you plan to specify volume sizes using the block type parameter.) The actual capacity of the repository will be increased to the next highest whole number percentage value that represents the repository capacity as a percentage of the physical capacity of the extent pool. The size of the repository is adjusted automatically to maintain this percentage if the physical capacity of the extent pool is ever changed. 48 DS8000 Thin Provisioning 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. The chsestg command The chsestg command is used to change the space-efficient attributes for an extent pool. When working with thin provisioning, the main purpose of using this command is to change the size of an ESE repository, when an ESE repository already exists. Example 5-2 shows the use of the command to change the size of the ESE repository. Example 5-2 The chsestg command used to change repository capacity dscli> chsestg -reptype ESE -repcap 1000 P5 CMUC00343I chsestg: The space-efficient storage for the extent pool P5 has been modified successfully. When changing the ESE size, unless a value of zero is used or the physical capacity of the extent pool (do not specify), as with the mksestg command, the actual size of the repository is set to a value equal to the next whole number percentage value. Note: Designating the size of the ESE repository to be equal to the physical capacity of the extent pool (assuming it was all available) will not allow you to create any ESE volumes in the extent pool, because no extents are available for the virtual space overhead. This command can also be used to change the virtual capacity and the repository thresholds, but that information is not covered in this paper. The lssestg command The lssestg command reports the current space-efficient storage that is set up in the extent pools using fields to provide specific details. You can select the report for a specific pool or for all of the pools. Only those pools that have space-efficient storage will be displayed. If a TSE or an ESE repository exists in an extent pool, the details are provided for the appropriate repository. If there is no ESE repository, but there are ESE logical volumes in the extent pool, details are provided, but most of the fields will be either 0.0 or a dash (-). An optional –l parameter displays additional details, as shown in Example 5-3 on page 50. (To fit the full line of output on one line, the font is smaller than usual.) Chapter 5. DS GUI and DS CLI support for thin provisioning 49 Example 5-3 Report from the lssestg command dscli> lssestg -l extpool stgtype datastate configstate repcapstatus repcap(GiB/Mod1) vircap reptype repcapalloc vircapalloc opratio ================================================================================================================== P2 fb Normal Normal 0.0 1000.0 0.0 P4 fb Normal Normal below 110.0 1000.0 ese 0.0 1000.0 9.1 P6 fb Normal Normal below 100.0 1000.0 tse 0.0 1000.0 10.0 P8 fb Normal Normal below 100.0 2000.0 tse 0.0 1000.0 10.0 P10 fb Normal Normal below 100.0 2000.0 tse 0.0 1000.0 10.0 P10 fb Normal Normal below 125.6 2000.0 ese 0.0 1000.0 8.0 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 User’s 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 User’s 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 DS8000 Thin Provisioning 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). Chapter 5. DS GUI and DS CLI support for thin provisioning 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. The showsestg command The showsestg command reports the current space-efficient storage that is set up in a specific extent pool. For this command, you must specify the -reptype parameter with the value ese to display the details for an ESE repository. The report for the lssestg command in Example 5-4 only shows the main details (a few details are omitted for brevity). You must also specify the extent pool ID in the command. Example 5-4 shows the report (output) for the showsestg command. Example 5-4 Report from the showsestg command dscli> showsestg -reptype ese p10 extpool P10 stgtype fb datastate Normal configstate Normal repcapstatus below %repcapthreshold 0 repcap(GiB) 125.6 repcap(Mod1) repcap(blocks) 263486176 repcap(cyl) repcapalloc(GiB/Mod1) 0.0 %repcapalloc 0 vircap(GiB) 2000.0 vircap(Mod1) vircap(blocks) 4194304000 vircap(cyl) vircapalloc(GiB/Mod1) 1000.0 %vircapalloc 4 overhead(GiB/Mod1) 9134.4 reqrepcap(GiB/Mod1) 125.6 reqvircap(GiB/Mod1) 210000.0 reptype ese opratio 8.0 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 DS8000 Thin Provisioning %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 (-). The mkfbvol command The mkfbvol command creates open systems fixed block (FB) volumes in a storage image. With thin provisioning, the ESE value is added to the storage allocation method (-sam) parameter. This parameter designates that an ESE logical volume is being configured (provisioned) with a set of virtual extents that are associated with the space-efficient storage in the same extent pool. Example 5-5 shows the mkfbvol command using the storage allocation method (-sam) parameter with a value of ESE. Example 5-5 Using the mkfbvol command 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. The lsfbvol and showfbvol commands The lsfbvol command displays a list of fixed block volumes in a storage image and status information for each volume in the list. With thin provisioning support, the ESE value is added to the storage allocation method (-sam) parameter. This parameter designates that only ESE logical volumes will be displayed. If you specify the -l parameter, the output will include a sam column and other additional attributes. Example 5-6 shows the lsfbvol command using storage allocation method parameter (-sam) with the ESE value. Example 5-6 The lsfbvol command dscli> lsfbvol -sam ese -l Name ID accstate datastate configstate deviceMTM datatype extpool sam captype cap (2^30B) cap (10^9B) cap ==================================================================================================================== Testese 0000 Online Normal Normal 2107-900 FB 512 P4 ESE DS 100.0 Testese 0001 Online Normal Normal 2107-900 FB 512 P4 ESE DS 100.0 Testese 0002 Online Normal Normal 2107-900 FB 512 P4 ESE DS 100.0 Testese 0003 Online Normal Normal 2107-900 FB 512 P4 ESE DS 100.0 Testese 0004 Online Normal Normal 2107-900 FB 512 P4 ESE DS 100.0 Testese 0005 Online Normal Normal 2107-900 FB 512 P4 ESE DS 100.0 Testese 0006 Online Normal Normal 2107-900 FB 512 P4 ESE DS 100.0 Testese 0007 Online Normal Normal 2107-900 FB 512 P4 ESE DS 100.0 See the lsfbvol command help for additional details about the remaining details that are provided with this command. Chapter 5. DS GUI and DS CLI support for thin provisioning 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. The showextpool command The showextpool command displays the detailed properties (by default), the detailed properties with tier distribution (using parameter -tier), or performance metrics of an extent pool (using parameter -metrics). The following list of space-efficient related fields in the detailed report for the showextpool command are shown in Example 5-8 on page 55: %allocated(ese): Percentage of real space in the extent pool allocated to store data in ESE volumes, regardless of whether an ESE repository exists in the extent pool. %allocated(rep): Percentage of real space in the extent pool used for the TSE repository. 54 DS8000 Thin Provisioning %allocated(std): Percentage of real space allocated to standard volumes. %allocated(over): Percentage of real space used for overhead of TSE volumes only. %virallocated(ese): Percentage of virtual space (as indicated in the virconfigured field) allocated to ESE volumes %virallocated(tse): Percentage of virtual space (as indicated in the virconfigured field) allocated to TSE volumes %virallocated(init): Percentage of virtual space that is not available (in a sense, allocated) while it is initialized Example 5-8 The showextpool command dscli> showextpool P4 Name fb_r5_0 ID P4 stgtype fb totlstor (2^30B) 3104 availstor (2^30B) 999 resvdstor (2^30B) 0 rankgrp 0 numranks 8 numvols 116 status below %allocated 67 %available 32 configured 3104 allowed 3104 available 999 allocated 2105 reserved 0 %limit 100 %threshold 15 virextstatus below %virallocated 8 %viravailable 91 virconfigured 12000 virallowed 12000 viravailable 11000 virallocated 1000 virreserved 0 %virextlimit 100 %virextthreshold 0 encryptgrp %allocated(ese) 14 %allocated(rep) 11 %allocated(std) 39 %allocated(over) 1 %virallocated(ese) 7 %virallocated(tse) 0 %virallocated(init) 0 Chapter 5. DS GUI and DS CLI support for thin provisioning 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) The initfbvol command The initfbvol command can be used to initialize a logical volume. As well, for space-efficient logical volumes, this command can be used to release space by including the -action releasespace parameter in the command. For TSE volumes, the action releases tracks in the repository, reducing the repository allocated space. For example, if a space-efficient logical volume is used as a FlashCopy target volume and the data stored on those tracks is no longer needed, use the initfbvol command to free the extents that were assigned to this logical volume. This allows the extents to be reused by other TSE logical volumes. For ESE volumes, the action releases extents being used in the extent pool, reducing the extent pool allocated extents. This allows the extents to be used by either other ESE volumes, or if no ESE repository exists, other standard volumes. Important: The initfbvol -action releasespace command deletes all data on the specified volume. Example 5-9 illustrates the use of the initfbvol command with the -action parameter. Example 5-9 The initfbvol command dscli> initfbvol -action releasespace 4611 CMUC00337W initfbvol: Are you sure that you want to submit the command releasespace for the FB volume 4611?[Y/N]:y CMUC00340I initfbvol: 4611: The command releasespace has completed successfully. 56 DS8000 Thin Provisioning The lsvolinit command The lsvolinit command displays volumes that are being initialized using the FlashInit method. The new Quick Initialization (Quick Init) method is not supported with this command. 5.4 Logical configuration process for ESE volumes The logical configuration process for ESE volumes is mostly similar to that of standard logical volumes. An ESE logical volume is configured with a user-specified capacity. The difference with ESE logical volumes compared to standard logical volumes is that with standard volumes, the selected extent pool must have available space to support the size of the standard volumes. However, the available space must only support the overhead space required for the ESE logical volumes. All space-efficient volumes use virtual capacity, which requires overhead to support that capacity. The overhead uses real extents in the extent pool to store metadata required to support the virtual capacity. When created or expanded, an ESE (or a TSE) logical volume is allocated using one or more virtual extents from the virtual capacity of the extent pool to provide sufficient capacity to provision the user-specified capacity. When working with ESE and TSE logical volumes, the virtual capacity is managed automatically by the DS8000. It can also be managed manually by using the chsestg command. When an ESE logical volume is deleted, all real and virtual extents allocated to the logical volume are released and become available for reallocation. When space is released from an ESE logical volume, the real extents that are released become available for reallocation. Note: The overhead required for an ESE logical volume is not deleted when the volume is deleted because the virtual capacity that the volume was using still exists. Before you configure an ESE logical volume, one or more extent pools must already be configured in the DS8000 because the volume uses available capacity in an extent pool. The storage allocation method attribute ESE must be specified to designate that an extent space-efficient logical volume needs to be created. The amount of physical capacity available to provision a set of ESE logical volumes might be less than the sum of the capacities of all the ESE logical volumes, within an extent pool. This practice is referred to as storage over-committing or over-provisioning. With ESE volumes, it is a user’s responsibility to determine the over-provisioning ratio that is permissible for the logical volumes that are allocated in a specific extent pool. The other consideration when configuring ESE logical volumes is whether a repository is used. The benefits for using an ESE repository are provided in this chapter. For details about ESE logical volume concepts and implementation, see 3.3, “ESE logical volumes” on page 21. Chapter 5. DS GUI and DS CLI support for thin provisioning 57 5.4.1 Configuring ESE volumes with the DS GUI illustrated When configuring ESE volumes, if you require the creation of an ESE repository, be aware that the ESE repository creation is not possible by using the DS GUI. An ESE repository can only be created by using the mksestg command. This command is not included in the steps in this procedure. It is included in the next section, which describes the configuration steps using DS CLI commands. These procedures and screen captures are based on the DS GUI using the icon navigation option. Creating ESE volumes Follow these steps to create ESE volumes using the DS GUI without an ESE repository: 1. Place the mouse over the Volumes icon and click FB Volumes in the pop-up window. This opens the FB Volumes window as shown in Figure 5-6. Figure 5-6 FB Volumes window 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 DS8000 Thin Provisioning Figure 5-7 Create Volumes window 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. Chapter 5. DS GUI and DS CLI support for thin provisioning 59 After you select the correct extent pools, click Next. The Add Volumes window (Figure 5-8) opens. Figure 5-8 Add Volumes window 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 DS8000 Thin Provisioning Figure 5-9 Create Volumes window 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. Figure 5-10 Select LSS 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. Chapter 5. DS GUI and DS CLI support for thin provisioning 61 Figure 5-11 Create Volumes Verification 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). Figure 5-12 Displaying ESE volumes The steps to create ESE logical volumes by using the DS GUI are complete. Managing ESE volumes by using the DS GUI The correct ESE volume management requires that you monitor and track your capacity utilization for both virtual and real capacity (especially when there is no ESE repository). It is your responsibility to manage the capacity. Chapter 6, “Managing and monitoring thin-provisioned volumes” on page 75 provides information about various monitoring tools. 62 DS8000 Thin Provisioning 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 Internal Storage window and Extent Pools tab The Internal Storage window and Extent Pools tab are used to analyze the current storage status and initiate associated extent pool processing that includes space-efficient storage designation for a selected storage image. The bar chart shows a graphical comparison between the assigned total storage capacity and the total available capacity for open systems volumes (standard and space-efficient volumes ESE and TSE) and for System z volumes (CKD). The chart gives you a quick overview of the storage allocation in your DS8000. Note: The summary on the right side of the window includes the total amount of allocated GiB to TSE and ESE repositories. It is important to know that these two values do not indicate the size of the repositories. The “Allocated to TSE repository” value includes the sum of these objects: TSE repositories in the DS8000 Overhead required for the TSE repositories in the extent pools Overhead required for the virtual space in the extent pools that include a TSE repository The “Allocated to ESE repository” value includes the sum of these objects: Overhead required for the virtual space in the extent pools that do not include a TSE repository Data written to the ESE volumes in the extent pools The “Allocated to ESE repository” value does not include the ESE repository space, if used in any extent pool. The “Available for allocation” space includes unused ESE repository space, because ESE repositories are not allocated. (TSE repositories are allocated.) Chapter 5. DS GUI and DS CLI support for thin provisioning 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. Figure 5-13 Extent pool summary 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 DS8000 Thin Provisioning 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. Expanding an ESE volume by using DS GUI An existing ESE logical volume can be expanded by using DS GUI by specifying a new requested capacity. If no virtual extents are available to expand an ESE volume, DS Storage manager GUI expands the virtual capacity automatically. Note: Volume expansion is not supported on a logical volume that has an existing copy services relationship. Volume expansion is supported on a logical volume that is in the process of Quick Init. Follow these steps to expand an ESE volume: 1. In the DS GUI welcome window, with your mouse over the Volumes icon, click FB Volumes. This action opens the FB Volumes window (Figure 5-6 on page 58). Click Manage existing volumes and the Manage Volumes window (Figure 5-14) opens. Figure 5-14 Manage Volumes window Chapter 5. DS GUI and DS CLI support for thin provisioning 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. Figure 5-15 Increasing volume capacities Next, working with ESE logical volumes and DS CLI commands is described. 5.4.2 Configuring ESE volumes with the DS CLI illustrated Before you configure an ESE logical volume, at least one extent pool must already be configured in the DS8000. When an ESE logical volume is configured, it is always associated with only one extent pool. The storage allocation method attribute (SAM) ESE must be specified to indicate that an extent space-efficient logical volume is to be created. There is now an option to use an ESE repository when you create ESE logical volumes in an extent pool. This illustration will include the creation and use of a repository with the volumes. Although you can create the repository before or after the volumes are created, we begin with creating the repository and then the volumes. Creating an ESE repository To create an ESE repository, you must decide its capacity based on the available extents in the extent pool where it will be created. Remember that because the volumes have not been 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 DS8000 Thin Provisioning Example 5-10 Creating the ESE repository dscli> mksestg -reptype ese -repcap 500 p16 CMUC00342I mksestg: The space-efficient storage for the extent pool P16 has been created successfully. 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 dscli> lssestg -l p16 extpool stgtype datastate configstate repcapstatus repcap(GiB/Mod1) vircap reptype ================================================================================== P16 fb Normal Normal below 509.0 0.0 ese The vircap (virtual capacity) of the extent pool is still at the initial value of 0 GiB and will remain at that value until space-efficient volumes are created. Another command that you can use to display the details of the ESE repository is the showsestg command as shown in Example 5-12. You must include the -reptype parameter with the value ese for the report to provide the details of the ESE repository, because the default value of this parameter is TSE. Example 5-12 Displaying ESE repository details with the showsestg command dscli> showsestg -reptype ese p16 extpool P16 stgtype fb datastate Normal configstate Normal repcapstatus below %repcapthreshold 0 repcap(GiB) 509.0 repcap(Mod1) repcap(blocks) 1067534208 repcap(cyl) repcapalloc(GiB/Mod1) 0.0 %repcapalloc 0 vircap(GiB) 0.0 vircap(Mod1) vircap(blocks) 0 vircap(cyl) vircapalloc(GiB/Mod1) 0.0 %vircapalloc 0 overhead(GiB/Mod1) reqrepcap(GiB/Mod1) 509.0 reqvircap(GiB/Mod1) 0.0 reptype ese opratio 0.0 Note: No overhead exists with the creation of the ESE repository. However, overhead exists when a TSE repository is created. Chapter 5. DS GUI and DS CLI support for thin provisioning 67 Creating ESE logical volumes To configure an ESE logical volume by using the mkfbvol command requires virtual extents in the extent pool to support the logical volume. When an extent pool is created, the number of virtual extents is zero. As space-efficient volumes are created, virtual extents will be created automatically by the DS8000 up to the maximum allowed in the extent pool to support the volumes that are being created. Example 5-13 shows the creation of an ESE logical volume by using the mkfbvol command with the -sam parameter that indicates that it will be an ESE logical volume. The last parameter of 000a is the volid. The volid consists of the LSS identifier and the volume number of the LSS. The LSS identifier range is 00 - FE. The volume number range is 00 - FF. The left 00 is the LSS ID and the right 0a is the eleventh volume of the LSS. (Ensure that the specified volid is not already used for an existing volume.) The volume virtual capacity is 1000 GiB and is allocated in extent pool p16. Also, the showfbvol command report for the volume that is created is included in the example. Example 5-13 Configuring ESE logical volume 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 DS8000 Thin Provisioning 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 The showsestg command report is shown in Example 5-15. Example 5-15 The showsestg command with ESE volume allocated dscli> showsestg -reptype ese p16 extpool P16 stgtype fb datastate Normal configstate Normal repcapstatus below %repcapthreshold 0 repcap(GiB) 509.0 repcap(Mod1) repcap(blocks) 1067534208 repcap(cyl) repcapalloc(GiB/Mod1) 0.0 %repcapalloc 0 vircap(GiB) 1000.0 vircap(Mod1) vircap(blocks) 2097152000 vircap(cyl) vircapalloc(GiB/Mod1) 1000.0 %vircapalloc 100 overhead(GiB/Mod1) reqrepcap(GiB/Mod1) 509.0 reqvircap(GiB/Mod1) 1000.0 reptype ese opratio 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. Chapter 5. DS GUI and DS CLI support for thin provisioning 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 dscli> showextpool p16 Date/Time: February 10, 2014 2:05:17 PM Name TesteseP16 ID P16 stgtype fb totlstor (2^30B) 2121 availstor (2^30B) 2116 resvdstor (2^30B) 0 rankgrp 0 numranks 1 numvols 1 status below %allocated 0 %available 99 configured 2121 allowed 2121 available 2116 allocated 5 reserved 0 %limit 100 %threshold 20 virextstatus full %virallocated 100 %viravailable 0 virconfigured 1000 virallowed 1000 viravailable 0 virallocated 1000 virreserved 0 %virextlimit 100 %virextthreshold 0 encryptgrp %allocated(ese) 0 %allocated(rep) 0 %allocated(std) 0 %allocated(over) 0 %virallocated(ese) 100 %virallocated(tse) 0 %virallocated(init) 0 70 DS8000 Thin Provisioning %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: Adding ESE volumes Increasing the size of the current ESE volumes Adding TSE volumes, which also requires a TSE repository Adding standard volumes 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. Using ESE logical volumes Now, we initialize an ESE volume and add files to the ESE volume, and then review these commands to view the repository details. The assignment of the volume to a volume group, the initialization of the volume, and writing files to the volume on a host are not shown. With these steps completed, Example 5-18 shows the lssestg command report, which indicates that repository space was allocated (repcapalloc). Example 5-18 The lssestg command showing that repository space was allocated dscli> lssestg -l p16 Date/Time: February 10, 2014 2:45:02 PM EST IBM DSCLI Version: 7.7.30.163 DS: IBM.2107-75ZA571 extpool stgtype datastate configstate repcapstatus repcap(GiB/Mod1) vircap reptype repcapalloc vircapalloc opratio ================================================================================================================== P16 fb Normal Normal below 509.3 2000.0 ese 30.0 2000.0 3.9 Chapter 5. DS GUI and DS CLI support for thin provisioning 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 dscli> showsestg -reptype ese p16 ... repcapalloc(GiB/Mod1) 30.0 %repcapalloc 5 vircap(GiB) 2000.0 vircap(Mod1) vircap(blocks) 4194304000 vircap(cyl) vircapalloc(GiB/Mod1) 2000.0 %vircapalloc 100 overhead(GiB/Mod1) reqrepcap(GiB/Mod1) 509.3 reqvircap(GiB/Mod1) 2000.0 reptype ese opratio 3.9 Example 5-20 The showextpool command with data stored on the ESE volume dscli> showextpool p16 ... totlstor (2^30B) 2122 availstor (2^30B) 2083 resvdstor (2^30B) 0 rankgrp 0 numranks 1 numvols 2 status below %allocated 1 %available 98 configured 2122 allowed 2122 available 2083 allocated 39 reserved 0 %limit 100 %threshold 0 virextstatus full %virallocated 100 %viravailable 0 virconfigured 2000 virallowed 2000 viravailable 0 virallocated 2000 virreserved 0 %virextlimit 100 %virextthreshold 0 encryptgrp 72 DS8000 Thin Provisioning %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. Managing ESE volumes using DS CLI With the DS CLI, you can monitor and manage the capacity of extent pools, space-efficient storage, and ESE volumes. You can also change the real and the virtual capacity of extent pools, space-efficient storage, and ESE volumes. Use the following commands for monitoring and management: List commands: lsextpool, lsfbvol, and lssestg Show commands: showextpool, showfbvol, and showsestg Change commands: chextpool, chfbvol, and chsestg For information about these commands, see 5.3, “DS CLI commands” on page 47. Detailed information about the commands is in the DS8000 Command-Line Interface User’s Guide, GC27-4212. Note: Monitoring and management involve the threshold settings for the extent pool. Monitoring is determined by whether an ESE repository exists. When using ESE logical volumes without a repository, there is only monitoring status for the extent pool. As more data is written to the volumes, the available extents in the pool are reduced. As long as the extent pool is under the threshold, the status shows below. After the extent pool gets above the extent pool threshold, the extent pool status indicates exceeded. If all extents in the pool are used, the pool status shows full. At this point, no more data can be added to the ESE logical volumes in the extent pool. This status is shown in the report (output) of the showextpool and lsextpool commands. The default setting for the extent pool threshold is 100% (0 in the showextpool report for %threshold). You can set the extent pool threshold when you create the extent pool, or after the extent pool is created by using the chextpool command. Chapter 5. DS GUI and DS CLI support for thin provisioning 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. Expanding ESE volumes using DS CLI To expand the ESE logical volume virtual capacity in an extent pool, the DS8000 automatically increases the virtual capacity of the extent pool, up to the maximum allowed for the extent pool. Example 5-21 shows the expansion of an existing ESE volume. In this example, the volume was not yet initialized, so the change will not affect a host operating system. Example 5-21 Expanding an ESE volume 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 dscli> chfbvol -cap 1500 000a CMUC00332W chfbvol: Some host operating systems do not support changing the volume size. Are you sure that you want to resize the volume? [y/n]: y CMUC00026I chfbvol: FB volume 000A successfully modified. dscli> lssestg -l p16 extpool stgtype datastate configstate repcapstatus repcap(GiB/Mod1) vircap reptype repcapalloc vircapalloc opratio ================================================================================================================== P16 fb Normal Normal below 509.0 2500.0 ese 0.0 2500.0 4.9 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 DS8000 Thin Provisioning 6 Chapter 6. Managing and monitoring thin-provisioned volumes This chapter describes the DS8000 monitoring and management capabilities for the Thin Provisioning and space-efficient FlashCopy features. In general, the complete set of management capabilities is described in this chapter for both types of space-efficient implementations in the DS8000: extent space-efficient (ESE) and track space-efficient (TSE). You can obtain more details about the TSE implementation for IBM FlashCopy SE in IBM System Storage DS8000 Series: IBM FlashCopy SE, REDP-4368, and in Chapter 3, “Space-efficient volumes in the DS8000” on page 17. © Copyright IBM Corp. 2014. All rights reserved. 75 6.1 Management and monitoring capabilities Important: In the DS8000, thin provisioning and the associated virtual capacity are manageable at the extent pool level. 6.1.1 Options to reserve space and buffer capacity Figure 6-1 on page 77 shows an extent pool with its associated real capacity, virtual capacity, and repository capacity. The two important options to reserve contingency capacity are extent limit and reserve ranks. They apply to real capacity (real extents): Extent limit This option allows you to limit the percentage of real extents that can be allocated to logical volumes in an extent pool. The remaining percentage of real extents is therefore reserved as a contingency buffer for allocation to logical volumes of all types. The extent limit can be adjusted as required using the DS CLI or GUI. Reserve ranks This option allows you to reserve the unallocated capacity of an entire rank in an extent pool for future use, making the reserved capacity unavailable for allocation to logical volumes of all types. This capability works both for entire ranks but also for the remaining unallocated capacity of ranks in an extent pool, because all existing allocations remain unchanged and are not affected by this command. The reserve ranks can be dynamically switched on and off using the chrank command. This capability allows you to release some reserve space for usage, as required. Use this sequence of operations: a. Release a rank (or the unused parts of the rank). b. Use the free extents, for example, to create a volume. c. Reserve the unused space of the rank again. Important: The larger value of these two options (extent limit and reserve ranks) determines the baseline, from which the threshold for real capacity (-realcap) is starting to count. Capacity on Demand (CoD) feature This optional, chargeable feature that you can order for the DS8000 provides physical capacity in terms of drive sets (16 disks) to be installed in the DS8000 for future usage. New capacity can be brought online by acquiring and entering a license key without any further activity at the physical level. The new capacity can be configured according to the needs in terms of RAID levels and storage type. The new capacity can be assigned to all matching extent pools where capacity is needed. 6.1.2 Options to set thresholds and receive warnings The detailed description to set up the thresholds using DS CLI or GUI is in Chapter 5, “DS GUI and DS CLI support for thin provisioning” on page 41. Figure 6-1 on page 77 shows that three possible thresholds can be set for the real capacity, repository capacity, and virtual capacity. 76 DS8000 Thin Provisioning 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). Real capacity threshold: -extent_threshold_percentage The extent threshold specifies a percentage of available space, or available extents, in the extent pool. It is client configurable between 0% and 100% by using the extent pool command chextpool. As shown in Figure 6-1, all three volume types and virtual capacity can contribute to changes in the number of free extents: Standard volumes when created or deleted. ESE volumes when real data extents are assigned as necessary, or when their extents are released again (through initialization, SCSI format unit, or volume deletion). TSE volumes when their repository is created or deleted. Virtual capacity when created or increased or through deletion. In virtual capacity, associated metadata uses real extents in the extent pool. Chapter 6. Managing and monitoring thin-provisioned volumes 77 Repository capacity threshold: - repository_threshold_percentage This threshold specifies the minimum percentage of available physical repository capacity. If the available, free capacity in the repository drops below the percentage value, warnings are sent and the status changes. It is client configurable between 0% and 100% by using the commands related to space-efficient storage, such as chsestg. The repository threshold is unique because it has two fixed thresholds set by the system. These thresholds cannot be changed: 0% (Repository full) and 15% (Repository 85% full). For both system set thresholds, SNMP warnings are sent every 5 minutes when exceeded (but the status reported for the repository is based on the threshold that was configured by the client). Virtual capacity threshold: -virtual_extent_threshold_percentage This threshold is the same as the real extent threshold. A threshold can be set to receive warnings when the available virtual capacity drops below a certain limit. But, in this case, all changes to the available virtual capacity must be triggered explicitly by the user, so this threshold is not as important as the other thresholds. 6.1.3 SNMP trap: Extent pool threshold The DS8000 can trigger SNMP traps. A new event trap (event trap 223) was introduced with the Thin Provisioning feature. The trap is sent when certain extent pool capacity thresholds are reached and cause a change in the extent status attribute: Extent status is not zero (available space already below threshold) when the first ESE volume is configured. Extent status changes state if ESE volumes are configured in the extent pool. Example 6-1 shows an illustration of generated event trap 223. Example 6-1 Specific event trap 223 2009/08/01 17:05:29 PDT Extent Pool Capacity Threshold Reached UNIT: Mnf Type-Mod SerialNm IBM 2107-922 75-03460 Extent Pool ID: P1 Limit: 95% Threshold: 95% Status: 0 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 %Available Real Cap. = 0 Full - extent pool full 1 Ext. Threshold >= %Avail. Real Cap. > 0 Exceeded - threshold exceeded 0 %Avail. Real Cap. > Ext. Threshold Below - below threshold DS8000 Thin Provisioning 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 dscli>chsp -snmp on snmpaddr 9.155.87.211,9.155.66.14,9.145.243.185 -desc "ATS DS8000 S/N 75-20780" -name ATS_Mainz_20780 Date/Time: August 13, 2009 12:51:07 PDT IBM DSCLI Version: 5.4.30.244 DS: IBM.2107-7520781 Storage-complex IBM.2107-7520781 successfully modified. dscli> showsp Date/Time: August 13, 2009 12:51:57 PDT IBM DSCLI Version: 5.4.30.244 DS: Name ATS_Mainz_20780 desc ATS DS8000 S/N 75-20780 acct SNMP Enabled SNMPadd 9.155.87.211,9.155.66.14,9.145.243.185 emailnotify Disabled emailaddr emailrelay Disabled emailrelayaddr emailrelayhost numkssupported 4 The following examples are software that can be used to manage and monitor thin-provisioned volumes: IBM Tivoli® Storage Productivity Center supports thin-provisioned volumes by marking them clearly with an asterisk. IBM Tivoli Enterprise Console® can be set up to receive the SNMP traps sent by the DS8000 and trigger the necessary actions. Any other system management and monitoring tools that can receive SNMP traps are supported. 6.1.4 Managing out-of-space situations Over-provisioning or over-commitment of capacity can result in a situation where the needed capacity exceeds the available capacity. In the DS8000 implementation of thin provisioning, only the amount of data that can actually be written to disk, therefore for which real disk capacity exists, is accepted for a write operation by the host. For write operations exceeding this amount, a write inhibit is sent to the host, which typically causes the software to fail. The DS8000 rejects write accesses to the affected volumes until the required additional real capacity is made available for allocation. The options to provide contingency capacity that are described in 6.1.1, “Options to reserve space and buffer capacity” on page 76 and the warnings that are received that relate to the set thresholds can help you avoid an out-of-space situation. However, when these options are exhausted, the following options still exist to release space on ESE volumes: Issue SCSI format unit command from the host. Issue release space request through DS CLI or GUI. Delete or remove the ESE volume. Chapter 6. Managing and monitoring thin-provisioned volumes 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 DS8000 Thin Provisioning 7 Chapter 7. Host considerations and migration to ESE volumes This chapter presents our observations of the DS8000 thin provisioning behavior as briefly tested with several host platforms and file systems. The first part of the chapter reviews the AIX Logical Volume Manager (LVM) concepts and our observations with extent space-efficient (ESE) volumes in that environment. The second part of this chapter describes the migration from standard to ESE volumes in a Microsoft Windows environment. This part presents tools and methods that can be used in that context. This part is divided into the following sections: Migration considerations Methods and tools for migration Examples of migrating to ESE volumes This chapter also presents general performance comparisons between ESE volumes and standard volumes. © Copyright IBM Corp. 2014. All rights reserved. 81 7.1 ESE volumes in IBM AIX with JFS2 This section describes our observations of thin-provisioned volumes when used with the AIX JFS2. The section starts with a brief review of the AIX Enhanced Journaled File System (JFS2) concepts and terminology. Note: The logical volumes on the DS8000 are the Physical Volumes as seen by AIX (and therefore different from the Logical Volumes used by AIX). The term volume group has two meanings as well, depending on the context. In this section, the entities in lowercase represent the DS8000 view (that is, logical volume and volume group). The entities in uppercase represent the AIX terminology (that is, Physical Volume, Logical Volume, File System, and Volume Group). 7.1.1 Introduction to AIX JFS2 concepts and terminology The IBM AIX operating system includes a Logical Volume Manager (LVM). LVM allows the creation of a Volume Group. Each Volume Group is configured with one or more Physical Volumes. The Physical Volumes are divided into one or more Physical Partitions for which you can specify a size at the Volume Group creation. The Physical Partitions are allocated to Logical Partitions of a Logical Volume. Each Logical Partition has at least one Physical Partition allocated, but there can be two additional Physical Partitions allocated to provide mirrored copies for that Logical Volume. For more information about AIX LVM, see the following web page: http://ibm.co/1pjr6Sg The available sizes of the Logical Partitions and Physical Partitions are limited to an integral number of binary megabytes (MiB) so that the integer is a power of 2. The number of Physical Partitions in a Volume Group depends on the Volume Group type, which can be normal, big, or scalable. For example, a big Volume Group has a limit of 128 x 1016 Physical Partitions. The number of Logical Volumes is limited to 512; the number of Physical Volumes is limited to 128; and the number of Physical Partitions on a Physical Volume is limited to 1016, by default. Flexibility exists because the number of Physical Partitions per Physical Volume can be increased by a factor of N if, at the same time, the number of Physical Volumes is reduced by a factor of N (so that the maximum number of Physical Partitions in the Volume Group remains constant). The Journal File System (JFS) and Enhanced Journal File System (JFS2) are part of the base IBM AIX operating system. JFS2 was introduced in AIX 5.1 and supports 64-bit kernels. The File System is created in a Volume Group and uses two Logical Volumes, by default: one for the Journal Log File and one for the File System data. Typically, the Journal Log File Logical Volume is configured with a single Logical Partition. The File System data Logical Volume uses the remaining one or more Logical Partitions. (There is another option to create the JFS2 File System in an existing Logical Volume, but this option is not described in detail in this paper). The Journal Log File can also be configured to be placed inline within the File System Logical Volume. Multiple File Systems can share a common Log File, or a pair of common Log Files, which can be resized as the File System size grows. The File System can be 16 MB - 32 TB in size with a maximum file size of 16 TB. The File System Logical Volume can also be resized by the user, as needed. The File System can be defined to use either a 512 byte, 1 KB, 2 KB, or 4 KB byte block size to allocate space. The default size is 4k bytes. 82 DS8000 Thin Provisioning 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. Terminology overlaps between AIX and DS8000 Similar terms are used by the DS8000 and AIX to describe different objects or concepts. 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. 7.1.2 Test results on AIX with JFS2 File System In the tests performed with the AIX JFS2 file system and thin provisioning, the file system created metadata in up to three places on the ESE volume. Depending on the Partition Sizes and Logical Volume structures that are used, the file system allocates 1- 3 extents per DS8000 logical volume, resulting in an initial allocation of up to three 1 GB real extents for that logical volume. Using a 100 GB file system, this is only a 3% initial allocation, but for a 10 GB file system, it is already a 30% initial allocation. These tests also revealed that the JFS2 reuses space well. After deleting data from the file system, the previously allocated space is not released, but the space is reused to store new data that is written to the volume. A new extent is allocated to the ESE volume only if the new data to be written is larger than the unused, previously allocated space. Based on the behavior that was shown, we expect that JFS2 on AIX and any application that is using this file system will behave well regarding data placement and efficiency for use with DS8000 thin provisioning. When you create a mirrored Logical Volume, we advise you to set it up that way initially, creating the second or third copy directly at the creation of the Logical Volume. Adding copies to an existing Logical Volume results in full allocation of the Physical Volumes (therefore full extent allocation to the DS8000 ESE logical volume) added when LVM synchronizes the new copies. For the test results and additional details, see the IBM white paper by Rick Ripberger and Yan Xu, IBM DS8000 Storage Allocation Overview including Thin Provisioning, which is available at the following web page: http://www.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101550 Chapter 7. Host considerations and migration to ESE volumes 83 Figure 7-1 shows that the storage %allocation closely tracks the File System % usage for monotonically increasing data. File System Usage and Storage Allocation 128 KB Files, 129 Root Directories, 16383 Total Directories, Concurrent Copies 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. File System Usage and Storage Allocation 128 KB Files, 129 Root Directories, 16383 Total Directories, Concurrent Copies 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 DS8000 Thin Provisioning 7.2 Migration considerations Enabling thin provisioning on the DS8000, as described in Chapter 4, “Enabling thin provisioning” on page 35, does not mean that existing volumes will immediately or automatically be transformed into thin-provisioned (ESE) volumes. It also does not mean that you will automatically benefit from thin provisioning. To take advantage of thin provisioning, you need to migrate data on existing standard volumes to thin-provisioned volumes. You will therefore first need to configure new extent space-efficient (ESE) volumes and use them as additional, new volumes or migrate your existing standard volumes onto the ESE volumes. You must also ensure that the host operating systems and applications that you intend to use with the ESE volumes behave in a way so that they can take advantage of thin provisioning. You need to understand how the OS or application allocates space for data. Ideally, to benefit from thin provisioning, space allocation needs to use contiguous blocks, and applications need to be able to reclaim deleted and unused blocks of storage. However, this is not necessarily the case in practice. Certain applications always consume new space before reusing already written but available space. These applications are not good candidates for thin provisioning. Space allocation theory: Host view versus storage system view There is often confusion about how space allocation occurs. The confusion is about from which standpoint is the allocation considered: the host standpoint or the storage system standpoint. In general, volumes have a file system installed on them, and how full the file system might be is not the same as how full the volume is. Assuming that the file system is configured to have access to the complete volume, the volume will always be at least as full as the file system. From a storage system perspective, the percentage of a volume used will always increase and never decrease. Figure 7-3 on page 86 shows why an individual volume’s usage never decreases. The figure shows a theoretical case of how a file system and a volume are used as files and are written and deleted from the file system. Steps 1 and 2 in Figure 7-3 on page 86 show that the file system and the volume both report the same percentage used while files are written to the file system. Step 3 in Figure 7-3 on page 86 shows where a difference occurs between what the host or file system reports and what the storage reports. In this step, files 1 and 2 are deleted; therefore, the blocks used by these files are available to the file system. The only file still visible in the file system is file 3. So, the file system reports that it is 25% full. However, the storage is still reporting that it is 75% full. The storage shows 75% full because the storage does not know that the data written for files 1 and 2 is no longer needed. The space in the graphic is shaded because, from the storage perspective, those blocks still contain valid data. When a file is deleted, the file system does not send any type of erase or delete command to the storage array. It simply changes a pointer in its tables that pointed to the file and makes those blocks available for future use. Because the blocks that contain the files are not actually erased, undelete utilities are able to recover files after the user has deleted them. Chapter 7. Host considerations and migration to ESE volumes 85 Figure 7-3 Volume capacity: Host view versus storage view 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. Figure 7-4 Volume usage 86 DS8000 Thin Provisioning 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. Figure 7-5 Traditional copy 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). Figure 7-6 Thin Copy feature Chapter 7. Host considerations and migration to ESE volumes 87 7.2.1 Thin provisioning usage cases The following use cases are considered when using thin provisioning: Migrate from standard to empty or non-empty ESE volumes Copy ESE to ESE volume Defragment and release unused space on the ESE volume 7.2.2 Migration tools and utilities Migration to ESE volumes can be similar to traditional migration of data from one type of storage to another type. To make it more efficient and not to defeat thin provisioning, only copy used blocks the original standard volumes to the new ESE volumes. The following tools and utilities can be used to migrate your data to ESE volumes efficiently: Standard OS copy command Volume manager (AIX LVM or Veritas Storage Foundation - Smart Move) Software tools (IBM Softek TDMF (IP) for Windows using the Thin Copy feature) 7.3 Examples of migrating to ESE volumes on Windows This section describes different test scenarios that illustrate migrating to ESE volumes in Windows environments with IBM Softek TDMF (IP) for Windows using the Thin Copy feature. The intent of the testing with the TDMF Thin Copy feature is to show how TDMF can be used to perform a data migration from standard volumes to the new ESE volumes. The preferred practices are documented along with tips when migrating to ESE volumes. 7.3.1 Softek TDMF product IBM Softek TDMF is host-based software that runs on both open systems and System z Series platforms. It migrates data nondisruptively while applications are still online for business use. The data is moved on a per volume basis quickly because the data is moved at the block level. TDMF can be used for both local storage subsystems replacement, remote migrations for data center relocation, or storage and server consolidation. The supported operating system platforms include Microsoft Windows, AIX, HP-UX, Solaris, Linux, and IBM z/OS®. See the following web page for additional information about TDMF products: http://www.ibm.com/services/us/index.wss/offerfamily/gts/a1028233 The TDMF software can be used to migrate to the new thin-provisioned volumes that exist on the IBM System Storage DS8000. Specifically, the TDMF (IP) for Windows Thin Copy feature allows only the data blocks that are in use on an NTFS file system to be moved from a traditional “fat” logical unit number (LUN) to a new “thin” (ESE) LUN on the IBM System Storage DS8000. This copy function is a significant performance improvement and a valuable function for any thin-provisioned storage device, such as the IBM System Storage DS8000. It migrates data in the background while maintaining application availability. Without this type of functionality, it is difficult to migrate existing data to a thin-provisioned device because a normal copy defeats the purpose of the thin-provisioned device by causing the IBM System Storage DS8000 to fully back the virtual disk container with physical disk resources. 88 DS8000 Thin Provisioning 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. 7.3.2 Typical scenarios This section shows cases that were tested using various volume sizes and different percentages of file system usage within the NTFS file system. It also describes scenarios that you might consider: Windows Quick Format allocation Migration from standard volume to ESE volume Migration from smaller standard volume to bigger ESE volume and extension of the NTFS file system on Windows Copy ESE to ESE Defragment and release unused space on the ESE volume The test environment consists of the following products: Windows Server 2008 SP2 IBM Softek Data Mobility Console 1.1.1 Windows Server 2003 R2 EE SP2 IBM Softek TDMF (IP) for Windows 3.1.0 IBM System Storage DS8300 R4.3 Windows Quick Format allocation Four standard volumes and four extent space-efficient volumes of different capacities (10 GB, 25 GB, 50 GB, and 100 GB) were attached to the Windows test server. Chapter 7. Host considerations and migration to ESE volumes 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 Real (DS8000) extents used 10 GB 5 25 GB 5 50 GB 5 100 GB 6 Remember: One extent is 1024 MB or 1 GB. Normal formatting does not cause any additional extents to be allocated above the extents that are shown in Table 7-1. It deletes old files and checks for bad blocks but does not cause any backing of the real storage from the storage pool. 7.3.3 Migration from standard volumes to ESE volumes After the volumes were formatted, we tested migration to the empty ESE volumes. The tests included volumes of different capacities (10 GB, 25 GB, 50 GB, and 100 GB) and different space allocation percentages in the file system (25%, 50%, 75%, and 100%). We migrated by using the Softek Data Mobility Console (DMC), which is the management console for IBM Softek TDMF (IP) for Windows. Important: IBM Softek TDMF (IP) for Windows with the Thin Copy feature supports the migration of standard volumes to ESE volumes on the local server only. Therefore, you must attach the old storage and the new storage to the same server. 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 DS8000 Thin Provisioning 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. Figure 7-8 Mobility group properties Chapter 7. Host considerations and migration to ESE volumes 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. Figure 7-9 Volume pair 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. Figure 7-10 Start the mobility group 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 DS8000 Thin Provisioning Figure 7-11 Start migration 6. You can check the migration progress by selecting the mobility group, as illustrated in Figure 7-12. Figure 7-12 Mobility group migration 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. Chapter 7. Host considerations and migration to ESE volumes 93 Figure 7-13 Successful migration status Migrating an empty standard volume to an ESE volume In this test, we migrated an empty standard volume to a newly defined ESE volume. We recorded the number of used real extents on the DS8000. The results shows that the number of allocated extents (on the DS8000) did not change after the volume was migrated, as depicted in Table 7-2. Table 7-2 Empty standard volume to ESE volume migration Standard volume capacity Standard volume capacity used ESE volume capacity Real extents used before migration Real extents used after migration 10 GB 0% 10 GB 5 5 25 GB 0% 25 GB 5 5 50 GB 0% 50 GB 5 5 100 GB 0% 100 GB 6 6 Migrating a non-empty standard volume to an ESE volume With this test, we migrated non-empty standard volumes to ESE volumes. We used different percentages of the file system usage within the NTFS file system and we recorded the percentage of storage used on the DS8300. The results are shown in Table 7-3 on page 95. Note: The file generator tool used in the tests to consume space on the standard volumes was generating 1024 KB files in a specific folder, and it filled the files with random characters. 94 DS8000 Thin Provisioning Table 7-3 Non-empty standard volume to ESE volume Standard volume capacity Standard volume capacity used ESE volume capacity Real extents used after migration 10 GB 25% 10 GB 6 25 GB 25% 25 GB 10 50 GB 25% 50 GB 16 100 GB 25% 100 GB 30 10 GB 50% 10 GB 8 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. Migrating from a standard volume to a non-empty ESE volume When you migrate to a non-empty ESE volume, you must release all the space on the ESE volume. Example 7-1 shows how to use the DS CLI initfbvol command to release the space (on the DS8000). It shows the status before and after you release the space. This action deletes old data on the ESE volume. Example 7-1 Release the space for an ESE volume dscli> showfbvol 4910 Date/Time: August 24, 2009 15:26:09 PDT IBM DSCLI Version: 5.4.30.244 DS: IBM.2107-7520781 Name itsotdmf10ese ID 4910 accstate Online datastate Normal configstate Normal deviceMTM 2107-900 datatype FB 512 addrgrp 4 extpool P5 exts 10 captype DS cap (2^30B) 10.0 cap (10^9B) cap (blocks) 20971520 volgrp V12 Chapter 7. Host considerations and migration to ESE volumes 95 ranks dbexts sam repcapalloc eam reqcap (blocks) realextents virtualextents 1 0 ESE rotatevols 20971520 5 10 dscli> initfbvol 4910 Date/Time: August 24, 2009 15:26:26 PDT IBM DSCLI Version: 5.4.30.244 DS: IBM.2107-7520781 CMUC00337W initfbvol: Are you sure that you want to submit the command releasespace for the FB volume 4910?[Y/N]:y CMUC00340I initfbvol: 4910: The command releasespace has completed successfully. dscli> showfbvol 4910 Date/Time: August 24, 2009 15:26:37 PDT IBM DSCLI Version: 5.4.30.244 DS: IBM.2107-7520781 Name itsotdmf10ese ID 4910 accstate Online datastate Normal configstate Normal deviceMTM 2107-900 datatype FB 512 addrgrp 4 extpool P5 exts 10 captype DS cap (2^30B) 10.0 cap (10^9B) cap (blocks) 20971520 volgrp V12 ranks 0 dbexts 0 sam ESE repcapalloc eam rotatevols reqcap (blocks) 20971520 realextents 0 virtualextents 10 Migrating from a smaller standard volume to a larger ESE volume In this test, we migrate from a standard volume to a larger ESE volume. We migrate the data by using Softek TDMF (IP) for Windows. The source standard volume (volume id 4811 - Q:) has a capacity of 25 GB and is 75% used. The target ESE volume (volume id 4913 - P:) is configured as a 100 GB capacity volume and is initially empty (Figure 7-14 on page 97). Although it is initially empty, the ESE volume consumes six real extents. Example 7-2 on page 97 shows the volume status on the DS8000 before the migration. 96 DS8000 Thin Provisioning Figure 7-14 Source standard volume and target ESE volume before the migration Example 7-2 Volume status before the migration dscli> showfbvol 4811 Date/Time: 2009. kolovoz 24 17:20:25 PDT IBM DSCLI Version: 5.4.30.244 DS: IBM.2107-7520781 Name itsotdmf25std ID 4811 accstate Online datastate Normal configstate Normal deviceMTM 2107-900 datatype FB 512 addrgrp 4 extpool P4 exts 25 captype DS cap (2^30B) 25.0 cap (10^9B) cap (blocks) 52428800 volgrp V12 ranks 1 dbexts 0 sam Standard repcapalloc eam rotatevols reqcap (blocks) 52428800 realextents 25 virtualextents 0 dscli> showfbvol 4913 Chapter 7. Host considerations and migration to ESE volumes 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. Figure 7-15 Migration status in the DMC window 98 DS8000 Thin Provisioning 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). Figure 7-17 Status of the finished migration Chapter 7. Host considerations and migration to ESE volumes 99 Figure 7-18 Stopping the mobility group 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 DS8000 Thin Provisioning 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 dscli> showfbvol 4913 Date/Time: 2009. kolovoz 24 18:08:16 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 23 virtualextents 100 dscli> Using Softek TDMF (IP) for Windows, you can expand the volume. In the IBM Softek Data Mobility Console window, select the mobility group that corresponds to the migrated volumes. Click the Command tab and select the util command. Enter the parameter -x and click Go. Chapter 7. Host considerations and migration to ESE volumes 101 Figure 7-20 shows that the command completed successfully. Figure 7-20 Expanding the target ESE volume 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 DS8000 Thin Provisioning Copying an ESE volume to an ESE volume To copy an ESE volume to another ESE volume, use the following steps: 1. Quiesce applications on the source ESE volume. 2. Release all space on the target ESE volume. 3. Copy only files from the source to the target using a compatible File System or Softek TDMF (IP) for Windows. 4. Resume applications. Defragmenting and releasing unused space on an ESE volume To defragment and release unused space on an ESE volume, use the following steps: 1. Quiesce applications. 2. Copy files to a temporary volume. 3. Release all space on the ESE volume. 4. Copy files back to the ESE volume by using a compatible File System or Softek TDMF (IP) for Windows. 5. Resume applications. 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. Chapter 7. Host considerations and migration to ESE volumes 103 Figure 7-22 Defragmentation report 7.4 Thin provisioning software IBM JFS2 File System on AIX has had some evaluation by IBM and is thought to be well behaved for DS8000 thin provisioning. The following additional software has had less evaluation, but is thought to be well behaved for DS8000 thin provisioning: IBM JFS (JFS2) File System on Linux Veritas File System (VxFS) on HP, SUN, Linux, and AIX HP-UX JFS (VxFS) ReiserFS on Linux Softek TDMF (IP) for Windows – Thin Data Copy Option 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 IBM General Parallel File System (GPFS™) on AIX and on Linux HP-UX Hierarchical File System (HFS) Solaris UNIX File System (UFS) SGI XFS Episode Distributed File System (DFS) Ext3 on Linux DS8000 Thin Provisioning 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 User’s 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 How to get Redbooks publications You can search for, view, or download Redbooks, Redpapers, Technotes, draft publications and Additional materials, as well as order hardcopy Redbooks publications, at this website: ibm.com/redbooks © Copyright IBM Corp. 2014. All rights reserved. 105 Help from IBM IBM Support and downloads ibm.com/support IBM Global Services ibm.com/services 106 DS8000 Thin Provisioning Back cover ® DS8000 Thin Provisioning Redpaper Avoid allocating unused capacity Read about new ESE repository capability and new controls Understand applications and OS implications Ever-increasing storage demands have a negative impact on an organization’s 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. 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. For more information: ibm.com/redbooks REDP-4554-01 ™