Real Time Compression
Real Time Compression
Real Time Compression
Christian Burns
Bosmat Tuv-El
Jorge Quintal
Jon Tate
ibm.com/redbooks Redpaper
International Technical Support Organization
March 2015
REDP-4859-01
Note: Before using this information and the product it supports, read the information in “Notices” on
page vii.
This edition applies to those hardware and software products as detailed in the paper only.
© Copyright International Business Machines Corporation 2012, 2015. All rights reserved.
Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule
Contract with IBM Corp.
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Now you can become a published author, too! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Stay connected to IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Chapter 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Current IT challenges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 The solution: IBM Real-time Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Common use cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1 General-purpose volumes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.2 Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.3 Virtualized infrastructures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 IBM Real-time Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Chapter 4. Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1 Candidate data sets for compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.1 Data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
iv IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
5.5.12 Easy Tier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.5.13 Regular or generic volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.5.14 Thin-provisioned volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.5.15 Mirrored volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.5.16 Compressed volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.5.17 IBM Tivoli Storage Productivity Center for Replication . . . . . . . . . . . . . . . . . . . . 81
5.5.18 IBM Storage Management Console for VMware vCenter . . . . . . . . . . . . . . . . . . 82
Contents v
vi IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
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.
The following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both:
AIX® IBM FlashSystem® Storwize®
DB2® Real-time Compression™ System Storage®
Easy Tier® Real-time Compression Appliance™ Tivoli®
FlashCopy® Redbooks® XIV®
FlashSystem™ Redpaper™
IBM® Redbooks (logo) ®
Intel, Intel logo, Intel Inside logo, and Intel Centrino logo are trademarks or registered trademarks of Intel
Corporation or its subsidiaries in the United States and other countries.
Linux is a trademark of Linus Torvalds in the United States, other countries, or both.
LTO, the LTO Logo and the Ultrium logo are trademarks of HP, IBM Corp. and Quantum in the U.S. and other
countries.
Microsoft, Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States,
other countries, or both.
Other company, product, or service names may be trademarks or service marks of others.
viii IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Preface
IBM® Real-time Compression™ software that is embedded in IBM SAN Volume Controller
(SVC) and IBM Storwize® V7000 solution addresses all the requirements of primary storage
data reduction, including performance, by using a purpose-built technology called real-time
compression. This IBM Redpaper™ publication addresses the key requirements for primary
storage data reduction and gives real world examples of savings that can be made by using
compression.
SVC and Storwize V7000 is designed to improve storage efficiency by compressing data by
as much as 80% through supported real-time compression for block storage. This process
enables up to five times as much data to be stored in the same physical disk space. Unlike
other approaches to compression, IBM Real-time Compression is used with active primary
data, such as production databases and email systems. This configuration dramatically
expands the range of candidate data that can benefit from compression. As its name implies,
IBM Real-time Compression operates as data is written to disk, avoiding the need to store
data that is awaiting compression.
Authors
This paper was produced by a team of specialists from around the world working for the IBM
International Technical Support Organization in Tel Aviv, Israel.
Bosmat Tuv-El
Jorge Quintal
Eyal Traitel
Barry Whyte
Thanks to the following people for their contributions to this project, and the previous version
of this paper:
Eric Bartlett
John Fairhurst
Robin Findlay
Stuart Jones
John Lindley
Andy Martin
Craig McAllister
Paul Merrison
Simon Swindells
IBM Hursley, UK
Amir Lidor
Navin Manohar
Nir Rigai
Tzahi Shahak
Ori Bauer
IBM Israel
Thomas Vogel
IBM Germany
Bruce McNutt
Chris Saul
IBM US
x IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
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:
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:
ibm.com/redbooks
Send your comments in an email to:
[email protected]
Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. HYTD Mail Station P099
2455 South Road
Poughkeepsie, NY 12601-5400
Preface xi
xii IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Summary of changes
This section describes the technical changes that are made in this edition of the paper and in
previous editions. This edition also might include minor corrections and editorial changes that
are not identified.
Summary of Changes
for IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
as created or updated on May 16, 2018.
New information
This edition is updated to document the many changes to the hardware and software of the
SAN Volume Controller (SVC) and Storwize V7000 family.
Changed information
The values that are associated with compression are updated to encompass the latest
hardware and software changes.
Chapter 1. Overview
Continued data growth and economic pressures are driving the rapid adoption of data
reduction technologies. Although much of the attention around data reduction has focused on
backup, many businesses are applying data reduction throughout the entire data lifecycle.
IBM Real-time Compression Software that is embedded in IBM System Storage SAN Volume
Controller (SVC), IBM Storwize V7000, and IBM FlashSystem V840 addresses all the
requirements of primary storage data reduction, including performance. It does so by using a
purpose-built technology called real-time compression. This publication addresses the key
requirements for primary storage data reduction.
This chapter describes the current challenges of data growth and addresses how to
overcome these challenges by using compression.
2 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
No changes to the existing environment are required: IBM Real-time Compression is part
of the storage system. It was designed with transparency in mind so that it can be
implemented without changes to applications, hosts, networks, fabrics, or external storage
systems. The solution is not apparent to hosts, so users and applications continue to work
as-is. Compression occurs within the Storwize V7000, FlashSystem V840, or SVC system
itself.
Overall savings in operational expenses: More data is stored in a rack space, so fewer
storage expansion enclosures are required to store a data set. This reduced rack space
has the following benefits:
– Reduced power and cooling requirements: More data is stored in a system, therefore
requiring less power and cooling per gigabyte or used capacity.
– Reduced software licensing for additional functions in the system: More data stored per
enclosure reduces the overall spending on licensing.
Disk space savings are immediate: The space reduction occurs when the host writes the
data. This process is unlike other compression solutions in which some or all of the
reduction is realized only after a post-process compression batch job is run.
Explanation: The expected compression ratios are based on samples that are taken from
that industry. Real-life ratios can vary from the stated values, and depend on individual
customers’ environments and data structures.
For more information about expected compression savings and candidate data types, see
Chapter 4, “Planning” on page 25.
There can be many file types that are stored in general-purpose servers. However, for
practical information, the estimated compression ratios are based on actual field experience.
Expected compression ratios are 50% - 60%.
File systems that contain audio, video files, and compressed files are not good candidates for
compression. The overall memory savings on these file types are minimal.
Chapter 1. Overview 3
1.3.2 Databases
Database information is stored in table space files. It is common to observe high compression
ratios in database volumes. Examples of databases that can greatly benefit from real-time
compression are IBM DB2®, Oracle, and Microsoft SQL Server. Expected compression ratios
are 50% - 80%.
Examples of virtualization solutions that can greatly benefit from real-time compression are
VMWare, Microsoft Hyper-V, and KVM. Expected compression ratios are 45% - 75%.
Tip: Virtual machines with file systems that contain compressed files are not good
candidates for compression, as described in 1.3.1, “General-purpose volumes” on page 3.
4 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
2
One of the first methods for reducing the amount of data was the use of symbols and
representations in mathematical format. For example, instead of writing the words “multiplied
by,” the related representation that is used is the asterisk character (*). In the same way, the
word “minus” is represented with the dash character (-).
In 1838, the invention of Morse code allowed messages to be transmitted quickly over long
distances. Roman letters and Arabic numbers were replaced with symbols formed from lines
and dots. To reduce the number of dots or lines that is used to represent each letter, statistical
analysis of the commonality of letters was performed. The most common letters are
represented with a shorter combination of dots and lines. The commonality is different for
each language, as is the Morse code. For example, in the English language, the letter “s” is
represented in the Morse code by three dots, whereas the letter “h” is represented by four
dots. The representation therefore consists of seven dots. However, in some languages “sh”
is a common combination, so the dots were replaced by lines. In this scheme, “sh” is
represented by four lines, effectively saving transmission time.
Later in the 20th century, the development of IT technologies raised the need for complex
algorithms that reduce the amount of data. This compression is done by interpreting the
information beyond the simple substitution of specific strings or letters.
One of the first techniques of mathematical data compression was proposed by Claude E.
Shannon and Robert Fano in 1949. In the Shannon-Fano coding, symbols are sorted from the
most probably to the least probable, and then encoded in a growing number of bits. If the
source data contains A B C D E, where A is the most common and E is the least common
letter, the Shannon-Fano coding is 00-01-10-110-111.
In 1952, a Ph.D. student at MIT named David A. Huffman proposed a more efficient algorithm
for mapping source symbols to unique string of bits. In fact, Huffman proved that his coding is
the most efficient method for this task, with the smallest average output bits per source
symbol.
Later, Abraham Lempel and Jacob Ziv in 1977 proposed a method of replacing repeating
words with code words. The method was applicable also to a pattern of text, such as
expressions. This was the actual dawn of modern data compression. In 1984, Terry Welch
improved the algorithm proposed by Lempel and Ziv (also known as LZ78) and developed a
method that is known as LZW. Today, this algorithm is the basis of modern compression
techniques that are used in PKZIP for general file compression, or within GIF and TIFF
formats for images.
Over time, many data compression algorithms have been developed around the Lempel-Ziv
method:
LZ - Storer-Szymanski (LZSS)
LZ with Arithmetic encoding (LZARI)
LZ + Huffman (LZH) encoding, which is used by the ARJ utility
6 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
The IBM Real-time Compression Appliance™ also uses compression based on LZH. For
more information about both algorithms, see the following links:
Software Version 7.2 introduced the implementation of LZ4 compression algorithm as part of
the IBM Random Access Compression Engine (RACE). This new compression algorithm
delivers significant performance improvement to many compressed workloads, especially
sequential ones, and also reduces CPU utilization.
D eDetected
te c te d S p a c e b y by
space th ehost
H ost
Free space
F re e S (unallocated)
p a c e (a llo c a te d )
Used
U s e d space (allocated)
S p a c e (a llo c a te d )
Usually, when you need either capacity or performance, you add drives. There are many
situations when you must add drives to accommodate a specific performance, but those
drives are not needed for capacity. In these situations, the infrastructure is oversized in terms
of capacity.
IBM Easy Tier (Figure 2-2) is a feature that can provide an optimized balance between
capacity and performance. It provides balance by identifying specific hot zones and by
moving them from slower drives to faster drives automatically. You can use a combination of
solid-state drives (SSDs) with much slower but higher capacity SATA drives, instead of using
many faster drives to accommodate the load.
8 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
2.2.4 Archiving and space management
Archiving and space management, also known as information lifecycle management (ILM), is
a concept rather than a dedicated technology solution. It can be used in environments where
you need long-term storage that optimizes the space that is occupied on different storage
types, such as tapes and hard disk drives (HDDs). The old or rarely used data can be moved
out of the production area and placed on much cheaper support. That is, moving data from
enterprise storage systems to low-end storage systems, and from HDDs to tapes. The
historical information is usually kept in a database that holds metadata to provide accurate
information about the managed data.
Comparison: All the technologies that are presented in 2.2, “Data efficiency technologies”
on page 7 are used to optimize the way that the available storage capacity is used. None of
those technologies change information, but rather optimize how this information is stored
or how much of this information is duplicated within the storage system. Data compression
technologies can interpret data. They can provide storage optimization, both regarding the
amount of data that is stored and the performance that is needed for the storage system
that is used in back-end systems.
Examples of lossless data compression include audio, image, video compression, reports,
and graphics that are generated to visualize large amounts of data and statistics. For
example, the data might be runners at the Olympic Games who manage to go under
10.1 seconds in the 100-meter race. The system might retain the data that 35% of the
runners managed to go under 10.1 seconds. However, this data does not include the times of
individual runners.
In this way, lossless data compression offers the advantage of completely and accurately
re-creating the input information. In comparison, the irreversible method offers only some
specific information that is related to the original information.
Because of the massive amounts of data and calculations that are necessary for compressing
data, there are two approaches:
Real-time compression: This method processes the data before it is written to the storage
device. The key advantage of this approach is that it reduces the storage resources that
are required for a data set. If done correctly, the capacity-reduction application preserves
the inherent performance of the storage environment. Already optimized data is written to
storage, which mitigates the capacity explosion challenge at the point of origin. It
accomplishes this mitigation by eliminating the need to allocate the additional storage
capacity that is required by post-processing solutions. Because the primary storage is
used, any compression technique must be run in real time and maintain the high
availability features of the existing storage system.
Post-processing optimization: These solutions eliminate the need to deal with the
performance issues in real time, and usually do not have any advanced high availability
capabilities. The challenge with post-processing optimization is that it uses storage
resources for the capacity-reduction application, which requires significant storage I/O
resources. Post-processing solutions require a full read of the original data. They then
scan and compress the data writing out a new compressed copy before deleting the
original data.
Over the years, IBM has introduced a series of lossless, real-time compression algorithms
and solutions that are used in wide range of technologies:
The LTO-DC algorithm that is used in IBM Linear Tape Open, formally known as LTO tape
drives.
The Streaming Lossless Data Compression (SLDC) algorithm that is used in IBM
Enterprise-class TS1130 tape drives.
The Adaptive Lossless Data Compression (ALDC) that is used by the IBM Information
Archive for its disk pool collections.
The RACE that is used inside Storwize V7000, SAN Volume Controller (SVC), and
Real-time Compression Appliance.
10 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
3
Based on industry requirements, the best model was chosen for the IBM Real-time
Compression support. This is a combination of a lossless data compression algorithm with a
real-time compression technology.
The RACE technology is the core of the IBM Real-time Compression solution, and is now
available in these IBM storage systems:
SVC
Storwize V7000 Gen2
FlashSystem V840
Tip: For simplicity, throughout this chapter we refer to these supported systems as
“RtC-supported system” or “RtC-supported systems”. In cases where information is
provided that does not apply to all of these systems, we indicate as much.
Note: To use the IBM Real-time Compression feature on the FlashSystem V840, two
compression accelerator cards are required. To use the IBM Real-time Compression
feature on the SAN Volume Controller 2145-DH8 node, at least one compression
accelerator card is required. For more information, see “Intel Quick Assist Acceleration
Technology (Coletto Creek) compression acceleration cards” on page 23.
RACE technology is based on over 40 patents that are not about compression. Rather, they
define how to make industry-standard LZ compression of primary storage operate in real-time
and allow random access. The primary intellectual property behind this is the RACE engine.
At a high level, the RACE component compresses data that is written into the storage system
dynamically. This compression occurs transparently, so Fibre Channel and iSCSI connected
hosts are not aware of the compression. RACE is an in-line compression technology,
meaning that each host write is compressed as it passes through the RtC-supported system
software to the disks. This has a clear benefit over other compression technologies that are
post-processing based. These technologies do not provide immediate capacity savings, and
therefore are not a good fit for primary storage workloads, such as databases and active data
set applications.
RACE is based on the Lempel-Ziv lossless data compression algorithm that operates in a
real-time method. When a host sends a write request, it is acknowledged by the write cache
of the system, and then staged to the storage pool. As part of its staging, it passes through
the compression engine, and is then stored in compressed format onto the storage pool.
Writes are therefore acknowledged immediately after received by the write cache, with
compression occurring as part of the staging to internal or external physical storage.
12 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Capacity is saved when the data is written by the host because the host writes are smaller
when written to the storage pool.
Compression utilities
Compression is probably most known to users because of the widespread use of
compression utilities such as zip and gzip. At a high level, these utilities take a file as their
input, and parse the data by using a sliding window technique. Repetitions of data are
detected within the sliding window history, most often 32 KB. Repetitions outside of the
window cannot be referenced. Therefore, the file cannot be reduced in size unless data is
repeated when the window “slides” to the next 32 KB slot.
ASJKDFHASJHWRETORIUFSDFWEIRU
CMNXSDFKWIOEUZXCMZXNVSFJSDFL
SJCXABCDEFHWEIOUOCZXCVKMSNDK
SFSJZXM23NB33KJK1J1HJGJHHJ1VFH
JGFHJ1GHJG23GJ123ABCDEFDHJKWE
IORUWOEIRIXCVLXVJLASDFSDF’LSD
GRERMNJDFJKGDGJERTYUIRDJKGHD
KJTEHTREUITYEUIDWOSIOSDFWEOI
RUKDFHSDFJHWEIORWERYWEFUWYE
IRUWERYXDKJFHSWETR5DFGCVBNA1
SFSKLJFSKLDFJSLKDFJSLKDFJSKLDFJ
SDLFKJSDFKLJSDFKLJSDABCDEFLFJS
DFKLSJDFKLSJDEI4SDFDFDFDSDSDFS
DFSDFSDFDSDFSDFSSDF2834HKJH
However, there are drawbacks to this approach. An update to a chunk requires a read of the
chunk followed by a recompression of the chunk to include the update. The larger the chunk
size that is chosen, the heaver is the I/O penalty to recompress the chunks. If a small chunk
size is chosen, the compression ratio is reduced because the repetition detection potential is
reduced.
Figure 3-2 shows an example of how the data is broken into fixed size chunks (in the
upper-left side of the figure). It also shows how each chunk is compressed independently into
compressed chunks (in the upper-right side of the figure). The resulting compressed chunks
are stored sequentially in the compressed output.
Data
1
3
4
Compressed
Data
1 2
3
4 5
6
7
14 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
This method enables an efficient and consistent method to index the compressed data
because it is stored in fixed-size containers.
Compressed
Data
Data
1 1
2 2
3 3
4 4
5 5
6 6
Compressed
Data
1
2
3
4
5
6
This traditional approach to data compression is also called location-based compression. The
data repetition detection is based on the location of data within the same chunk.
Predecide mechanism
Some data chunks have a higher compression ratio than others. Compressing some of the
chunks saves a little space, but still requires resources such as CPU and memory. To avoid
spending resources on uncompressible data, and to provide the ability to use a different,
more effective (in this particular case) compression algorithm, IBM has invented a predecide
mechanism that was first introduced in software Version 7.1.
The chunks that are below a given compression ratio are skipped by the compression engine,
thus saving CPU time and memory processing. Chunks that are determined to not be
compressed with the main compression algorithm, but that still can be compressed well with
the other, are marked and processed accordingly. The result might vary because predecide
does not check the entire block, only a sample of it.
16 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
3.2.3 Temporal compression
RACE offers a technology leap beyond location-based compression: temporal compression.
When host writes arrive at RACE, they are compressed and fill up fixed size chunks that are
called compressed blocks. Multiple compressed writes can be aggregated into a single
compressed block. A dictionary of the detected repetitions is stored within the compressed
block. When applications write new data or update existing data, it is typically sent from the
host to the storage system as a series of writes. Because these writes are likely to originate
from the same application and be from the same data type, more repetitions are detected by
the compression algorithm.
This type of data compression is called temporal compression because the data repetition
detection is based on the time the data was written into the same compressed block.
Temporal compression adds the time dimension that is not available to other compression
algorithms. It offers a higher compression ratio because the compressed data in a block
represents a more homogeneous input data.
1 Location
Compression
Window
2
# = Host write
Temporal
Compression
Window
1 2 3
Time
Figure 3-5 Location-based versus temporal compression
RACE technology is implemented into the thin provisioning layer, and is an organic part of the
stack. The software stack is shown in Figure 3-6 on page 19.
18 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Figure 3-6 SAN Volume Controller V6.4.0 software stack
Compression is transparently integrated with existing system management design. All of the
advanced features of the RtC-supported system are supported on compressed volumes. You
can create, delete, migrate, map (assign), and unmap (unassign) a compressed volume as
though it were a fully allocated volume. In addition, you can use IBM Real-time Compression
along with IBM Easy Tier on the same volumes. This compression method provides
nondisruptive conversion between compressed and uncommpressed volumes. This
conversion provides a uniform user-experience and eliminates the need for special
procedures when dealing with compressed volumes.
When the upper cache layer de-stages to the RACE, the I/Os are sent to the thin-provisioning
layer. They are then sent to RACE and, if necessary, the original host write or writes are
compressed as they are sent to disk. The metadata that holds the index of the compressed
volume is updated if needed, and is compressed as well.
This capability enables customers to regain space from storage pool, which can then be
reused for other applications.
With virtualization of external storage systems, the ability to compress already stored data
enhances and accelerates the benefit to users. It allows them to see a tremendous return on
their storage investment. On initial purchase of a SVC, Storwize V7000, or FlashSystem V840
with IBM Real-time Compression, clients can defer their purchase of new storage. As new
storage must be acquired, IT purchases a lower amount of the required storage before
compression.
20 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
3.3 Software and hardware updates that enhance IBM Real-time
Compression
For RtC-supported systems, recent hardware updates and software versions 7.3 and 7.4
introduced improvements that enhance and extend the applicability of the IBM Real-time
Compression feature. This section provides an overview of these enhancements:
Software enhancements:
– Cache rearchitecture
– RACE multi-threading
Hardware enhancements:
– Additional/enhanced CPU options
– Increased memory options
– Intel Assist Acceleration Technology (Coletto Creek) compression acceleration cards
Cache
As described inIBM SAN Volume Controller 2145-DH8 Introduction and Implementation,
SG24-8229 and Implementing the IBM Storwize V7000 Gen2, SG24-8244, Storwize software
Version 7.3 introduced an enhanced, dual-level caching model. This model differs from the
single level cache model of previous software versions.
In the previous model, the IBM Real-time Compression Software component sits below the
single level read/write cache. The benefit of this model is that the upper level read/write cache
masks from the host any latency that is introduced by the IBM Real-time Compression
Software component. However, in this single level caching model, the de-staging of writes for
compressed I/Os to disk might not be optimal for certain workloads because the RtC
component is interacting directly with uncached storage.
In the new, dual-level caching model, the IBM Real-time Compression Software component
sits below the upper-level fast write cache and above the lower-level advanced read/write
cache. The advantages to this dual-level model with respect to IBM Real-time Compression
are several:
Host writes, whether to compressed or uncommpressed volumes, are still serviced directly
through the upper level write cache, preserving low host write I/O latency. Response time
can improve with this model, as the upper cache flushes less data to RACE more
frequently.
The performance of the de-staging of compressed write I/Os to storage is improved
because these I/Os are now de-staged through the advanced lower-level cache, as
opposed to directly to storage.
The existence of a lower-level write cache below the IBM Real-time Compression
component in the software stack allows for the coalescing of compressed writes and, as a
result, a reduction in back-end I/Os because of the ability to perform full-stride writes for
compressed data.
The existence of a lower-level read cache below the IBM Real-time Compression
component in the software stack allows the temporal locality nature of RtC to benefit from
pre-fetching from the back-end storage.
RACE multi-threading
Software Version 7.4 introduces multi-threading for the RACE process that handles metadata
operations for compressed volumes. This approach allows each node to run multiple threads,
allowing for more efficient metadata processing for compressed volumes, and as a result,
improved performance for compressed workloads. For more information about the
improvements to performance of compressed volumes in software Version 7.4, see
Chapter 6, “Performance guidelines” on page 83.
RACE multi-threading in software Version 7.4 is supported on the following storage systems:
SVC 2145-DH8 nodes
Storwize V7000 Gen2 systems with 64 GB of memory
FlashSystem V840
Note: RACE multi-threading is a transparent feature, that is, no user action is required to
take advantage of this feature. For supported systems running software Version 7.4, the
system automatically uses RACE multi-threading. For earlier systems running software
Version 7.4. the system uses RACE in a single threaded manner.
Note: To use the IBM Real-time Compression feature on 2145-DH8 nodes and
FlashSystem V840 systems, the secondary processor is required.
The Storwize V7000 Gen2 offers updated 8-core processors, as compared to the 4-core
processor that is available in the previous hardware version.
22 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Note: To use the IBM Real-time Compression feature on 2145-DH8 nodes, the additional
32 GB memory option is required.
Note: To use the IBM Real-time Compression feature on 2145-DH8 nodes, at least one
Quick Assist compression acceleration card is required. To use the IBM Real-time
Compression feature on the FlashSystem V840, both Quick Assist compression
acceleration cards are required. With a single card, the maximum number of compressed
volumes per I/O group is 200. With the addition of second Quick Assist card, the maximum
number of compressed volumes per I/O group is 512.
Chapter 4. Planning
This chapter describes planning guidelines that contribute to successful solution design. It
addresses the requirements for configuring real-time compression and the best candidate
data sets for using compression in IBM Storwize V7000 and IBM SAN Volume Controller
(SVC).
Attention: Use compression for data with a compression ratio of 25% or higher. Do not
attempt to compress data that is compressed by nature. Selecting such data to be
compressed provides little or no savings while consuming processor resources by
generating additional I/Os. Compression relies on reduced I/Os to achieve the same or
better performance than an uncompressed volume. In addition, workloads that create
compressed data should not be stored on compressed volumes. Use the Comprestimator
tool or have a full understanding of the data types before attempting compression.
The following examples represent workloads and data that are already compressed.
Compressed audio, video, and image file formats
File types such as JPEG, PNG, MP3, medical imaging (DICOM), and MPEG2
In cases where data is encrypted by the client or the application that is used, no savings can
be achieved by using any compression method. Because of the high entropy that is found in
encrypted data, compression algorithms cannot find similarities or repetitions within them,
and are ineffective. Do not spend system resources on compressing encrypted data or
storing that data on compressed volumes.
The following common workloads are typically suitable for use with compression:
Database applications: Oracle, IBM DB2, Microsoft SQL, and SAP
Server/Desktop virtualization: VMware, KVM, and Hyper-V
Messaging: IBM Notes, and Microsoft Exchange (if attachments are not compressed file
types)
Others: Engineering, collaboration, and seismic
4.2 Requirements
This section describes the requirements for using compression in Storwize V7000 and SVC.
Compression works on a specific type of hardware node starting with SVC Version 6.4.0.
26 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
4.2.1 Supported hardware configurations
Version 7.3 supports the new hardware models Storwize V7000 Gen2 (2076-524) and SVC
(2145-DH8). These models deliver outstanding performance for many workloads and are
preferred when using IBM Real-time Compression.
The following hardware configurations are preferred with IBM Real-time Compression:
Storwize V7000 Gen2 with 64 GB and 2X Compression Accelerator Cards (per node
canister)
SVC (2145-DH8) with one or two Compression Accelerator Cards (per node canister)
Table 4-1 SAN Volume Controller and Storwize V7000 models that support compression
Model 100 300 V7000 8F2 8F4 8G4 CF8 CG8 DH8
Gen2
Storwize Yes Yes Yes N/A N/A N/A N/A N/A N/A
V7000
Note: For the four core SAN Volume Controller CG8, treat these nodes per the guidelines
for the SAN Volume Controller CF8. To check a node’s model type, run svcinfo lsnodevpd,
and if the output returns Xeon 5630, it is a 4-core SAN Volume Controller CG8.
The minimum code level that is required to support compression is Version 6.4.0.
The system does not allow a non-supported node type, such as an 8F4, to be added to an I/O
Group that is enabled for compression.
Remember: Compression is enabled when the first compressed volume is created, and
disabled when the last compressed volume is removed from an I/O Group.
Compression requires dedicated hardware resources within the nodes that are assigned or
de-assigned when compression is enabled or disabled. That is, when you create the first
compressed volume in an I/O Group, hardware resources are assigned.
Chapter 4. Planning 27
There are fewer cores that are available to the Fast Path I/O code (normal host to disk I/O
processing cores). Therefore, avoid creating compressed volumes if the processor utilization
(before creating compressed volumes) is consistently sustained above the percentages that
are shown in Table 4-2.
Attention: If any node in a particular I/O Group already has sustained processor utilization
greater than those values in Table 4-2, do not create compressed volumes in this I/O
Group. Doing so might affect existing non-compressed volumes that are owned by this I/O
Group. If you have any questions, speak to your IBM representative.
If the nodes in your I/O Group are sustaining processor usage higher than the suggested
maximum processor usage, this can cause problems when using compression. Add an I/O
Group (or Storwize V7000 control enclosure) to your cluster before attempting to create
compressed volumes.
For more information about what resources are assigned and the implications, see 6.2.3,
“Benchmarking compression performance” on page 86.
Consideration: When a data format is already compressed, very little additional savings
can be achieved by using storage system compression. Do not spend system resources on
data that cannot be compressed further. Workloads that create compressed data should
not be stored on compressed volumes.
28 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Table 4-3 provides typical compression ratios for types of data.
4.3 Comprestimator
Comprestimator is a command-line host-based utility that can be used to estimate the
expected compression rate for block-devices. The utility uses advanced mathematical and
statistical algorithms to perform sampling and analysis efficiently. The utility also displays its
accuracy level by showing the compression accuracy range of the results that are achieved
based on the formulas it uses. The utility runs on a host that has access to the devices to be
analyzed. It runs only read operations, so it has no effect on the data that is stored on the
device. The following sections provide useful information about installing Comprestimator on
a host and using it to analyze devices on that host.
This version of Comprestimator is supported to run on the following host operating systems:
ESXi 4, 5
Red Hat Enterprise Linux Version 5.x, 6
HP-UX 11.31
Sun Solaris 10 and 11
SUSE SLES 11
Ubuntu 12
CentOS 5.x
IBM AIX® V6.1, V7.1
IBM i through VIOS 2.1 or 2.2
Windows 2003 Server, Windows 7, Windows 2008 Server, Windows 8, and Windows 2012
Chapter 4. Planning 29
By default, the files are copied to the following locations:
In Windows 64-bit: C:\Program Files (x86)\IBM\Comprestimator
In Windows 32-bit: C:\Program Files\IBM\Comprestimator
30 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Using Comprestimator on a Linux, ESXi, VIOS, or AIX server
To use Comprestimator on a Linux, ESXi, VIOS, or AIC server, complete the following steps:
1. Log in to the server by using the root account.
2. Obtain a list of device names by using one of the following procedures:
– Use the fdisk -l command with a Linux host.
– Use the esxcli storage core device list | grep Dev command with an ESXi 5
server.
– Use the lsdev -Cc disk command with an AIX/VIOS host.
3. Run Comprestimator with the -d <device_name> flag to analyze a device or a partition.
Example 4-1 shows the syntax for the comprestimator command with a Linux host.
[root@lbsserv34 sbin]#
Chapter 4. Planning 31
-v Verbose output
-h Print this help message
-P Display results using a paragraph format
-I Allow larger scale of storage io-error threshold rate
(up to 5%)
--config=file Configuration file that contains list of devices to
analyze
--storageVer=version Target Storwize/SVC/Flex storage system version.
Options include 6.4, 7.1, 7.2, 7.3; default is 7.3
C:\RtCA\v7k_comp_redbook\Comprestimator\Comprestimator\Windows>
Size (GB) The total size of the device as reported by the operating system in
gigabytes.
Compressed Size (GB) The estimated size of the device if it is compressed by using SVC or
V7000 Real-time Compression.
Total Savings (GB) The total estimated savings from thin-provisioning and compression
in gigabytes.
Total Savings (%) The estimated savings from thin provisioning and compression, in
percentage of the size of the device. This value is calculated by the
following method:
Total Savings(%) = 1 - (Compressed Size(GB) / Size(GB))
Thin Provision Savings The estimated savings from thin provisioning (areas with zeros are
(%) stored using minimal capacity).
Before implementing IBM Real-time Compression, use the Comprestimator utility to decide
whether the volume is good candidate for compression. As a general guideline, enable
compression on volumes that show 25% or more Compression Savings.
Evaluate the workload with compression for volumes with Compression Savings lower than
25%.
A Linux example for the Comprestimator utility is shown in Example 4-3 on page 33.
32 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Example 4-3 Comprestimator utility for Linux
[root@swfc205 ~]# /comprestimator_1.5.1.1_u0087 -d /dev/sda
Version: 1.5.1.1 (Build u0087)
Start time: 27/08/2014 17:21:06
Device name: /dev/sda
Device size: 278.5 GB
Number of processes: 10
Exhaustive: no
Sample# | Device | Size(GB) | Compressed | Total | Total | Thin Provisioning | Compression | Compression
| Name | | Size(GB) | Savings(GB)| Savings(%) | Savings(%) | Savings(%) | Accuracy Range(%)
---------+----------+----------+------------+------------+------------+-------------------+-------------+------------------
3516 |/dev/sda | 278.5| 86.30 | 192.1| 69.0% | 22.3% | 60.1% | 4.7%
C:\RtCA\v7k_comp_redbook\Comprestimator\Comprestimator_V1.5.1.1\Windows_32bit>comprestimator_win32.exe -n 0
Version: 1.5.1.1 (Build w0087)
Start time: 20/07/2012 14:56:25.265625
Device name: \\?\ide#diskwdc_wd1200bevs-08ust0___________________02.01a02#5&1635548a&0&0.0.0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
Device size: 100 GB
Number of processes: 10
Exhaustive: no
Sample# | Device | Size(GB) | Compressed | Total | Total | Thin Provisioning | Compression | Compression
| Name | | Size(GB) | Savings(GB)| Savings(%) | Savings(%) | Savings(%) | Accuracy Range(%)
---------+----------------------+----------+------------+------------+------------+-------------------+-------------+------------------
3102 |5&1635548a&0&0.0.0 | 100.0 | 17.875 | 82.125 | 65.30% | 24.81% | 76.22% | 5.0%
C:\RtCA\v7k_comp_redbook\Comprestimator\Comprestimator_V1.5.1.1\Windows_32bit>
In addition, the volume mirroring capability enables the evaluation of system performance and
an effective compression ratio with compressed volumes without deleting the original volume
copy. You can then complete the migration to compressed format by deleting the original
volume copy.
Remember: Available space is needed just in case you want to compress existing
volumes.
Calculating the free space that is needed for compressed volume mirroring is easy. Because
a compressed volume is basically a thin-provisioned volume, you create a much smaller
volume. The amount of free space that is needed is the estimated compressed size of the
data. The calculation depends on the type of data that is stored on the volume you want to
compress.
Chapter 4. Planning 33
As an example, a 100 GB volume stores several Linux VMware VMDK files, and the expected
compression ratio is 45 - 55%. In that case, you need at least 55 GB of available space in the
storage pool that contains the compressed volume copy. If you have a type of data that is not
mentioned in Table 4-3 on page 29, use the Comprestimator tool to predict the amount of
space that is needed.
Tip: In both cases, have about 10% of extra space in the pool for additional metadata and
to gap the error margin.
4.3.9 Licensing
To use compression on Storwize V7000 or SVC, a software license is required.
In SVC, real-time compression is licensed by the total number of terabytes of virtual capacity,
which is the amount of storage that the host sees. You do not need to purchase a
compression license for the whole cluster. The effects of compression are within an I/O
Group. Therefore, you can have one I/O Group enabled for compression while other I/O
Groups are not.
In Storwize V7000, IBM Real-time Compression is licensed by the total number of enclosures.
There is a new simplified licensing structure:
Flexible options: Purchase a license per advanced Storwize V7000 function (such as Easy
Tier and IBM Real-time Compression).
Full Bundle: Purchase a license for all advanced Storwize V7000 for a lower price.
In both options, all enclosures should get a license for every feature.
For more information about how to install the compression license, see 5.2, “Software
licensing for the SAN Volume Controller and Storwize V7000” on page 40.
Create compressed volumes by using the preferred settings that are described in Chapter 5,
“Configuring compressed volumes” on page 39.
The migratevdisk command can be used to migrate a compressed volume from one storage
pool to another. However, the extent sizes must be the same on both storage pools.
The addvdiskcopy command can be used to migrate or compress existing generic volumes by
using the add mirrored copy function. The original copy can then be deleted if wanted and
the compressed copy can be mapped to the host. The Volume Mirroring or Adding a Mirrored
Copy is therefore available for converting between compressed volume copies and other
kinds of volumes. This function can be used to compress or migrate existing data to a
compressed volume, and is the preferred method. This method can even be used if the extent
sizes of the two pools are not the same.
Follow the established guidelines that exist for SVC and Storwize V7000. For more
information, see IBM System Storage SAN Volume Controller and Storwize V7000 Best
Practices and Performance Guidelines, SG24-7521.
34 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
4.4.1 Compression ratio recommendations
Software Version 7.4 introduces performance improvements when using SAN Volume
Controller 2145-DH8 or Storwize V7000 Gen2 models because of the new hardware
advances and the dual IBM Random Access Compression Engine (RACE) architecture.
Use the threshold for volume compressibility values in Table 4-5 and Table 4-6 to help you
decide whether to compress a volume.
Table 4-5 Recommendations when using SAN Volume Controller (2145-DH8) or Storwize V7000 Gen2
(2076-524) models with Version 7.4 and above
Data compression rate Recommendation
Table 4-6 Recommendations when using SAN Volume Controller (2145-CG8) or Storwize V7000
(2076-112, 2076-124)
Data compression rate Recommendation
Starting with Version 7.1, Easy Tier supports compressed volumes. A new algorithm is
implemented to monitor read operations on compressed volumes instead of reads and writes.
The extents with the highest number of read operations that are smaller than 64 KB are
migrated to solid-state disk (SSD) MDisks. As a result, frequently read areas of the
compressed volumes are serviced from SSDs. Easy Tier on non-compressed volumes
operates as before and it is based on read and write operations smaller than 64 KB.
Chapter 4. Planning 35
For more information about Easy Tier with compression, see Implementing IBM Easy Tier
with IBM Real-time Compression, TIPS1072:
http://www.redbooks.ibm.com/abstracts/tips1072.html
For larger numbers of compressed volumes in systems with more than one I/O Group,
distribute compressed volumes across I/O Groups. If a clustered pair of Storwize V7000
control enclosures requires 100 compressed volumes, configure 50 volumes per I/O Group
instead of 100 compressed volumes in one I/O Group. Also, ensure that the preferred nodes
are evenly distributed across both nodes in the I/O Group. This is the default behavior when
you create consecutive volumes.
Consideration: Each I/O Group of SVC DH8 model and Storwize V7000 Gen2 with 64 GB
of memory can accommodate 512 compressed volumes. You can have up to 2048
compressed volumes in a full 8-node cluster. The older models (SVC CF8, CG8, and
Storwize V7000 Gen1) are restricted to 200 compression volumes per I/O Group.
36 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Regardless of the type of block device that is scanned, it is also important to understand a few
characteristics of common file systems space management. When data is deleted from a file
system, the space it occupied before it was deleted is freed and available to the file system. It
is available even though the data on disk was not deleted. When data is deleted in the file
system/application level, the file system index and pointers are updated to reflect this change.
The data is not deleted from the device that stores this file system. When using
Comprestimator to analyze a block device that is used by a file system, all underlying data in
the device is analyzed. The data is analyzed regardless of whether this data belongs to files
that were deleted from the file system.
Creating a volume
To format a new volume from the GUI, complete the following steps:
1. Click Pools → Volumes by Pools.
2. Click New Volume.
3. Click Advanced, and select Format Before Use.
To format a new volume from the CLI, when creating a volume by using the mkvdisk
command, add the -fmtdisk command-line argument.
Remember: The format process can take some time to complete. The volume remains
offline until the format is completed.
This process creates a formatted volume faster than the zeroing option with rate control, and
the volume is online immediately.
Chapter 4. Planning 37
You can convert a fully allocated volume into a compressed (or thin-provisioned) volume
nondisruptively by using the following procedure:
1. Start with a single copy of a fully allocated volume. Fill the free capacity on the volume with
a file that contains all zeros. For example, create a file and use /dev/zero as the source
file.
2. Add a compressed (or thin-provisioned) copy to the volume. Use a small real capacity,
such as 2%, and the autoexpand feature.
3. Wait until volume mirroring synchronizes the copies.
4. Delete the fully allocated copy.
Any grains of the fully allocated volume that contain all zeros do not cause any real capacity
to be allocated on the compressed (or thin-provisioned) copy.
38 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
5
Compressed volume copies can be freely mixed with fully allocated and regular
thin-provisioned (that is, not compressed) volume copies. This mixture means that Volume
Mirroring is available for converting between compressed volume copies and other types.
Compressed volumes can be moved between clusters in the same way as thin-provisioned
volumes. They can be moved by using image mode and the import setting on mkvdisk. They
can be distinguished from other types of volumes in both CLI and GUI views.
The first part of the chapter covers the creation of a compressed volume and mapping with
both the CLI and GUI.
The second part of the chapter describes some of the interactions of a compressed volume
and other SVC and Storwize V7000 components. These components include copy services,
data migration, and thin provisioning.
40 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
5.2.1 Licensing for the SAN Volume Controller using the GUI
To apply your SVC compression license, complete the following steps:
1. Click the Settings icon and select General → Licensing, as shown in Figure 5-1.
2. Enter the total number of terabytes of virtual capacity that is licensed for compression.
3. Click Apply Changes to complete the process, as shown in Figure 5-2.
2. Enter the total number of enclosures that are licensed for compression.
42 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
3. Click Apply Changes to complete the process, as shown in Figure 5-4.
You can also explore SVC and Storwize V7000 IBM Redbooks publications, residencies, and
workshops by subscribing to the IBM Redbooks weekly newsletter at the following website:
http://www.redbooks.ibm.com/Redbooks.nsf/subscribe?OpenForm
3. Select Compressed as the preset for the volume from the following presets:
– Generic: Create volumes that use a set amount of capacity from the selected storage
pool.
– Thin-Provision: Create large-capacity volumes that use only the capacity that is
written by the host application from the pool.
– Mirror: Create volumes with two physical copies that provide data protection. Each
copy can belong to a different storage pool to protect data from storage failures.
– Thin Mirror: Create volumes with two physical copies to protect data from failures
while using only the capacity that is written by the host application.
– Compressed: Create volumes where data is compressed when it is written and stored
on the disk.
Tip: You can create a compressed volume or compressed mirror by selecting any of the
presets:
1. Select the preset that you want, such as Generic.
2. Click Advanced.
3. Click the Capacity Management tab.
4. Select Compressed and select the following options:
– Real Capacity is set to 2% of Virtual Capacity.
– Automatically Expand is selected.
– Warning Threshold is set to 80%.
If the values are not set to these settings, the volume can go offline prematurely for thin
provisioning and compression alike.
44 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
5. Select the pool that you want to use for the compressed volume, as shown in Figure 5-6.
46 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
7. The Advanced section (Figure 5-8) provides a way to change the defaults for volume
characteristics, capacity management, and mirroring.
48 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
9. Here are the options for capacity management when compressed is selected, as shown in
Figure 5-10.
10.The capacity management settings provide several controls to gain an extra degree of
protection against out of space conditions with compressed volumes.
– Real Capacity: The capacity to be allocated to each copy of the volume. This option is
also called rsize, and provides a method for setting the amount of real capacity that is
reserved at volume creation for the compressed volume. The setting can be specified
in whole integer units (bytes, kilobytes, megabytes, gigabytes, terabytes, or petabytes)
or as a percentage (0-100%). The default setting for rsize is 2%, which is required for
compressed volumes.
– Automatically Expand: Automatically increase the real capacity as data is written to
the compressed volume. This option is also called autoexpand, and should be selected
for a compressed volume. Autoexpand attempts to maintain a fixed amount of unused
real capacity. This capacity is known as contingency capacity, which is initially set to
the real capacity specified by rsize.
50 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
12.You can create the volume at this time by selecting Create and entering the details, as
shown in Figure 5-12. Mapping the volume to a host is described in 5.3.4, “Mapping a
compressed volume to a host” on page 59.
This section shows how to create a compressed mirror volume by using one of the methods
that are described in 5.3, “Configuring compressed volumes using the SAN Volume Controller
and Storwize V7000 GUI” on page 43. The new volume can be modified to be the primary
copy and original volume can then be deleted if wanted after the mirroring completes.
52 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
The column names are not shown by default. You can add them by right-clicking anywhere
on the column heading and selecting items to be displayed, as shown in Figure 5-15.
3. Select the volume type as compressed, select the storage pool, and click Add Copy, as
shown in Figure 5-16.
5. Figure 5-18 shows two copies of volcomp2, which are 0 and 1. Volume copy 0 is the
original generic volume, and 1 is the new compressed version.
54 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
6. You can keep the compressed copy and delete the generic copy after both copies are
synchronized. Select the compressed copy as the Primary copy by completing the
following steps:
a. Monitor the synchronization by selecting Running Tasks at the bottom of the GUI
window, as shown in Figure 5-19. You see the current list of Running Tasks.
b. Select the correct Volume Synchronization Task, monitor the synchronization progress,
and wait until the task completes (Figure 5-20).
56 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
d. After you have verified that the new copy is working, you can delete the original generic
volume copy, as shown in Figure 5-22. The copy with the asterisk symbol (*) is the
Primary.
3. Select Thin Mirror as the preset for the mirror, as shown in Figure 5-24. Select the
primary pool, secondary pool, select the volume name and sizes, and finally select
Advanced.
58 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
4. From the Capacity Management tab under the Advanced settings, select Compressed,
as shown in Figure 5-25, and then click OK.
5. Select Create, as shown in Figure 5-24 on page 58, and the mirrored compressed volume
is created.
Tip: The preset for Thin Mirror already has the correct defaults for Real Capacity
(rsize), Automatically Expand, and Warning Threshold.
By design, SVC and Storwize V7000 compression is transparent to a host or platform. The
host data is compressed before being written to the back-end storage of the SVC and
Storwize V7000 by the RACE engine. It is uncompressed after reading from the back-end
storage, but before arriving at the host.
The host always observes the virtual size of the volume as opposed to the compressed or
uncompressed size. For more information about creating the host object, mapping the volume
to a host, and preparing the host to discover the new volume, see the following resources:
Implementing the IBM System Storage SAN Volume Controller V7.2, SG24-7933
Implementing the IBM Storwize V7000 V7.2, SG24-7938
60 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
The SVC and Storwize V7000 GUI can help you become familiar with the CLI. Examine the
details that are posted by the GUI when commands are run, as shown in Figure 5-26.
This section concentrates only on compressed volumes, and also makes special mention of
thin-provisioned volumes, which have similar characteristics.
62 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
-warning 80% This parameter requires that the -rsize parameter is also
specified. It specifies a threshold at which a warning error log is
generated for volume copies. A warning is generated when the
used disk capacity on the copy exceeds the specified
threshold. You can specify a disk_size integer, which defaults
to MBs unless the -unit parameter is specified. Or you can
specify a disk_size%, which is a percentage of the volume size.
If -autoexpand is enabled, the default value for -warning is 80%
of the volume capacity. If -autoexpand is not enabled, the
default value for warning is 80% of the real capacity. To disable
warnings, specify 0. Used with compressed and
thin-provisioned volumes.
Tip: When the used capacity first exceeds the warning threshold, an event is raised that
indicates that additional real capacity is required. The volume goes offline unless the issue
is corrected. You can manually expand the real capacity that is allocated to the volume. It is
set at creation time and defaults to 80% of the virtual capacity. The real capacity can be set
to an absolute value or a percentage. The alerting facilities (event, alert, or email) are
asynchronous, so consider an automated response to this condition. IBM Tivoli Storage
Productivity Center alerts provide a mechanism for triggering automated responses. For
more information, see the following website:
http://www-03.ibm.com/systems/storage/software/center/index.html
The CLI command that is shown in Example 5-3 creates a compressed 10 GB volume. The
volume belongs to the storage pool named Temp_Toaster_ESX, and is owned by the io_grp0
I/O Group. The real capacity automatically expands until the volume virtual size of 10 GB is
reached.
Remember: There are various command parameters that are important, such as
-autoexpand, -rsize, and -warning. For more information about these parameters, see
5.4.1, “Creating a compressed volume” on page 61.
As mentioned previously, compressed volume copies can be freely mixed with fully allocated
and regular thin-provisioned (that is, not compressed) volume copies. Volume Mirroring or
Adding a Mirrored Copy is available for converting between compressed volume copies and
other kinds of volumes. This process can be used to compress or migrate existing data to a
compressed volume. The same process can be used to decompress an existing compressed
volume.
The addvdiskcopy command can be used to migrate or compress existing generic volumes by
using the Adding a Mirrored Copy function. To see how to use the addvdiskcopy command to
compress an existing uncompressed volume, see Example 5-5. The addvdiskcopy command
can also be used to migrate or decompress an existing compressed volume by using the
Adding a Mirrored Copy function, as shown in Example 5-6.
There are two copies for the volume after the addvdiskcopy command completes, as shown in
Example 5-7. Run the lsvdisk command and observe the (copy_count) field.
64 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
1:cmp_mirror:0:io_grp0:online:3:Temp_Toaster_ESX:10.00GB:striped:::::600507680183053F880000
0000000057:0:1:empty:0:no:1:3:Temp_Toaster_ESX
2:volcomp2:0:io_grp0:online:many:many:10.00GB:many:::::600507680183053F8800000000000054:0:2
:empty:0:no:1:many:many
3:volcomp1:0:io_grp0:online:many:many:24.00GB:many:::::600507680183053F8800000000000055:0:2
:not_empty:0:no:1:many:many
4:volcomp3:0:io_grp0:online:3:Temp_Toaster_ESX:10.00GB:striped:::::600507680183053F88000000
0000005A:0:1:empty:0:no:1:3:Temp_Toaster_ESX
9:XIV107_ESX:0:io_grp0:online:many:many:1.46TB:many:::::600507680183053F880000000000004D:0:
2:empty:1:no:1:many:many
10:temp:0:io_grp0:online:many:many:100.00GB:many:::::600507680183053F880000000000004E:0:2:e
mpty:2:no:0:many:many
11:ESX109_ESX_REPL_MASTER:0:io_grp0:online:many:many:300.00GB:many:::11:rcrel0:600507680183
053F880000000000004F:0:2:empty:2:no:0:many:many
IBM_2145:ITSO_Remote_Cluster:superuser>
Additional details can be found in Example 5-8 by running the lsvdisk volcomp1 command.
Only pertinent details are shown in the example. You can determine the following details:
Number of copies (copy_count)
The copy ID (copy_id)
Whether the copy is synchronized or not (sync yes/no)
Which copy is the primary (primary yes/no)
Whether the copy is compressed (compressed_copy yes/no)
copy_id 0
status online
sync yes
primary yes
...
used_capacity 10.00GB
real_capacity 10.00GB
free_capacity 0.00MB
overallocation 100
autoexpand
warning
grainsize
se_copy no
easy_tier on
easy_tier_status balanced
tier ssd
tier_capacity 0.00MB
tier enterprise
tier_capacity 10.00GB
tier nearline
tier_capacity 0.00MB
compressed_copy no
uncompressed_used_capacity 10.00GB
...
You can monitor the copy progress by running the lsvdisksyncprogress command, as shown
in Example 5-9. You also can run the lsvdisk volcomp2 monitor for sync (sync yes).
After the copies are synchronized, you can make the secondary copy the primary copy.
Delete the original copy, which is a nondisruptive process to the host.
Run the chvdisk CLI command, as shown in Example 5-10, to cause the compressed copy
(copy_id 1) to become the primary copy.
66 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
You can run the lsvdisk command to verify which copy is the primary copy, as shown in
Example 5-11. Only pertinent details are shown in this example.
copy_id 0
status online
sync yes
primary yes
...
copy_id 1
status online
sync yes
primary no
...
IBM_2145:ITSO_Remote_Cluster:superuser>
The last step, if wanted, is to delete the original volume copy by running the rmvdiskcopy CLI
command, as shown in Example 5-12.
One of the optional parameters that can be used with the addvdiskcopy command is
-syncrate rate, which specifies the copy synchronization rate. The default and preferred
setting (without specifying the parameter) is 50%. A value of zero (0) prevents synchronization.
This parameter can be changed dynamically by running the chvdisk -syncrate command, as
shown in Example 5-13, or it can be set initially by the addvdiskcopy command. Increasing
the rate enables the synchronization to complete quicker, but adds an extra load to the
system.
Table 5-1 shows the relationship between rate and data copied per second. It can also be
used to determine how long it takes to migrate from generic to compressed volumes or from
compressed to generic.
1 - 10 128 KB
11 - 20 256 KB
21 - 30 512 KB
31 - 40 1 MB
41 - 50 2 MB
51 - 60 4 MB
61 - 70 8 MB
71 - 80 16 MB
81 - 90 32 MB
91 - 100 64 MB
When the host scans for devices that are attached to it, it discovers all of the volumes that are
mapped to its FC or iSCSI ports.
This example assumes that the volume and host definition are already created. You can
assign volumes to hosts that are ready for their use by running the mkvdiskhostmap
command, as shown in Example 5-14.
The mkvdiskhostmap command in Example 5-14 maps the host that is specified by the
parameter -host (ID is 2, which is host xiv110), as shown in Example 5-15.
This mapping can be done by running the lshostvdiskmap command or the lshost command,
as shown in Example 5-16.
68 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
0 XIV132 2 4 online
1 XIV137 2 4 online
2 xiv110 1 4 online
3 XIV107_esx 2 4 online
4 XIV109_esx 2 4 online
IBM_2145:ITSO_Remote_Cluster:superuser>
The lshost command also indicates which SCSI IDs are currently in use. The example uses
SCSI ID 2, and the host was already using SCSI IDs 0 and 1. The last argument is the name
or ID of the volume to be mapped, which you can find by running the lsvdisk or
lssevdiskcopy command (Example 5-17).
For more information about the lssevdiskcopy command, see Chapter 7, “Compression
savings reporting” on page 95.
The hosts must discover or scan for the volumes after the volume is mapped. The hosts must
also be properly zoned. This information is not covered here. For more information about
configuring your SVC or Storwize V7000, see the following resources:
Implementing the IBM System Storage SAN Volume Controller V7.2, SG24-7933
Implementing the IBM Storwize V7000 V7.2, SG24-7938
The SVC and Storwize V7000 software stack is shown in Figure 5-27.
Figure 5-27 SAN Volume Controller and Storwize V7000 software stack
70 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Compression is transparently integrated with existing system management design. All of the
SVC and Storwize V7000 advanced features are supported on compressed volumes. You can
create, delete, migrate, map (assign), and unmap (unassign) a compressed volume as
though it were a fully allocated volume. This compression method provides nondisruptive
conversion between compressed and uncompressed volumes. This conversion provides a
uniform user-experience and eliminates the need for special procedures to deal with
compressed volumes.
Each component is addressed individually and related to compression topics, such as copy
services that operate on uncompressed data.
Within the SVC and Storwize V7000, both intracluster copy services functions (FlashCopy
and Data Migration) operate at the block level. In intercluster functions (Global Mirror and
Metro Mirror), they operate at the volume level.
The layers in the stack (see Figure 5-27 on page 70) for copy services (Remote Copy and
FlashCopy) operate where data is uncompressed. The source and destinations (block level or
volume) can be compressed or uncompressed. This configuration does not matter to copy
services because it operates on uncompressed data.
5.5.2 FlashCopy
FlashCopy is used to create instant copies of virtual disks (volumes) for both the SVC and
Storwize V7000. After the copy operation is completed, the target volumes contain the
contents of the source volumes as they existed at a single point in time. Although the
FlashCopy operation takes some time to complete, the resulting data on the target volume is
presented so the copy appears to have occurred immediately.
More advanced FlashCopy functions allow operations to occur on multiple source and target
volumes. FlashCopy management operations are coordinated to provide a common, single
point in time for copying target volumes from their respective source volumes. This process
creates a consistent copy of data that spans multiple volumes. The FlashCopy function also
allows multiple target volumes to be copied from each source volume. This function can be
used to create images from different points in time for each source volume.
The SVC and Storwize V7000 GUI allow for creation of a snapshot, clone, or backup of an
existing volume.
The clone preset creates an exact replica of the volume, which can be changed without
affecting the original volume. After the copy completes, the mapping that was created by the
preset is automatically deleted. The clone has the same preset as the source volume.
Therefore, if the source is compressed, the clone is also compressed.
The backup preset creates a point-in-time replica of the production data. After the copy
completes, the backup view can be refreshed from the production data with minimal copying
of data from the production volume to the backup volume. The backup has the same preset
as the source volume. Therefore, if the source is compressed, the backup is also
compressed.
Volume mirroring can also be used to migrate a volume between storage pools. This method
can be used even if the extent sizes of the two pools are not the same. Volume migration
using volume mirroring can be used to migrate a volume from one volume type to another.
This process can handle compressed to uncompressed, and uncompressed to compressed.
The process can be prioritized by specifying the number of threads to be used in parallel
(1 - 4) while migrating. Using only one thread puts the least background load on the system.
5.5.4 iSCSI
A host system can be alternatively connected to the SVC and Storwize V7000 through a Fibre
Channel connection or through an iSCSI connection.
In the simplest terms, iSCSI allows the transport of SCSI commands and data over a Internet
Protocol network, based on IP routers and Ethernet switches. iSCSI is a block-level protocol
that encapsulates SCSI commands into TCP/IP packets. It uses an existing IP network
instead of requiring Fibre Channel HBAs and a SAN fabric infrastructure.
The iSCSI protocol is implemented at the front end of the SVC and Storwize V7000 software
stack, as shown in Figure 5-27 on page 70. It can be used whether a volume is compressed
or uncompressed.
72 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Each MDisk in the storage pool is divided into a number of extents. The size of the extent is
selected by the administrator at the creation time of the storage pool, and cannot be changed
later. The size of the extent is 16 - 8192 MB. Generally, use the same extent size for all
storage pools in a system. This configuration is required for volume migration between two
storage pools through the migratevdisk command. Volume mirroring can also be used to
migrate a volume between storage pools. This method can even be used if the extent sizes of
the two pools are not the same. Volume mirroring can be used to migrate a volume from one
volume type to another. This capability includes compressed to uncompressed, and
uncompressed to compressed.
For more information, see IBM System Storage SAN Volume Controller and Storwize V7000
Best Practices and Performance Guidelines, SG24-7521.
A multitiered storage pool therefore contains MDisks with various characteristics, as opposed
to a single-tier storage pool. However, it is a preferred practice for each tier to have MDisks of
the same size that provide the same number of extents.
Multitiered storage pools are used to enable the automatic migration of extents between disk
tiers by using the SVC and Storwize V7000 Easy Tier function. These storage pools are
described in more detail in 5.5.12, “Easy Tier” on page 79.
Compression savings can be viewed at a volume and storage pool level by using the GUI or
CLI.
5.5.6 Hosts
Host systems are connected to the SVC and Storwize V7000 through a Fibre Channel or
iSCSI connection. A volume can be created and mapped to a host, which sees it as a LUN.
The volume can be compressed or uncompressed. The compression and decompression is
run within the SVC and Storwize V7000 software stack by using RACE technology. The host
always sees uncompressed data.
The host always observes the virtual size of the volume as opposed to the compressed or
uncompressed size.
5.5.7 Nodes
On the SVC and Storwize V7000, this is a hardware unit that includes the node hardware,
fabric, and service interfaces. The node provides the virtualization for a set of volumes,
cache, and copy services functions. The SVC and Storwize V7000 nodes are deployed in
pairs, and multiple pairs make up a clustered system. A system can consist of 1 - 4 SVC and
Storwize V7000 node pairs. Nodes are deployed in pairs that are called I/O Groups. Because
the nodes are installed in pairs, each node provides a failover function to its partner node if
there is a node failure.
One of the nodes within the system is known as the configuration node. It is the node that
manages configuration activity for the clustered system. If this node fails, the system
nominates another node to become the configuration node.
When a host server performs I/O to one of its volumes, all the I/Os for a specific volume are
directed to one specific I/O Group in the system. Also, under normal conditions, the I/Os for
that specific volume are always processed by the same node within the I/O Group. This node
is called the preferred node for this specific volume. Thus, in an SVC and Storwize V7000
based environment, the I/O handling for a volume can switch between the two nodes of the
I/O Group. For this reason, servers that are connected through Fibre Channel to use
multipath drivers must be able to handle these failover situations.
When data is written by the host, the preferred node within the I/O Group saves the data in its
cache. Before the cache returns completion to the host, the write must be mirrored to the
partner node, or copied in the cache of its partner node, for availability reasons. After a copy
is made of the written data, the cache returns completion to the host.
If one node of an I/O Group is missing because of a restart or a hardware failure, the
remaining node empties all of its write cache. It then proceeds in an operation mode, which is
called write-through mode. A node operating in write-through mode writes data directly to the
disk subsystem before sending an I/O complete status message back to the host. Running in
this mode might decrease the performance of the specific I/O Group.
A SVC node treats part of its physical memory as non-volatile. Non-volatile means that its
contents are preserved across power losses and resets. Bitmaps for FlashCopy and Remote
Mirroring relationships, the Virtualization Table, and the Write Cache are items in the
non-volatile memory.
When you create a volume, it is associated with one node of an I/O Group. By default, every
time that you create a volume, it is associated with the next node by using a round-robin
algorithm. You can specify a preferred access node, which is the node through which you
send I/O to the volume instead of using the round-robin algorithm.
For a compressed volume copy, the preferred node is responsible for all reads and writes. If
the preferred node fails, the other node in the I/O Group takes over running compression for
that volume copy. When the original node recovers, ownership is gracefully transferred back.
If there are writes in-flight to compression when the node fails, they are redriven from the
write cache on the other node.
74 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Each node of an I/O Group runs the compression code (RACE). In a normal running scenario,
Node A performs compression for volumes that have Node A as the preferred node. Similarly,
Node B performs compression for volumes that have Node B as the preferred node. If Node A
fails or reboots, Node B performs compression for all volumes that have Node A and Node B
as the preferred node. When Node A rejoins the cluster, Node A performs compression for
volumes that have Node A as the preferred node again. The processing of volumes with
preferred Node A is handed to Node B, then automatically transferred back to Node A when
Node A comes back online. The same logic applies if Node B fails and later rejoins the
cluster.
Memory and processor cores are assigned for compression on both nodes in an I/O Group
after the first compressed volume is created. These resources are not configurable. Each
node has 2 GB of memory that is allocated to compression after it is enabled. In a single
instance RACE scheme, each instance is allocated the 2 GB plus any extra memory that is
provided by the type of node being used, such as the SVC V7000 Gen2 and SVC DH8. In a
multi-instance RACE scheme, each instance is allocated 1 GB and the extra memory is
partitioned by RACE.
The compression code stack is supported on five processor architectures: 4-core (Storwize
V7000 Gen1/CF8), 6-core (CG8), 8-core (V7000 Gen2), 12-core (CG8), and 16-core (DH8).
On 4-core processors, SVC runs one fast path core and three IBM Real-time Compression
cores. On 6-core processors, SVC runs two fast path cores and four IBM Real-time
Compression cores. On 8-core processors, SVC runs four fast path cores and four IBM
Real-time Compression cores. On 12-core processors, SVC runs four fast path cores and
eight IBM Real-time Compression cores. Finally, on 16-core processors, SVC runs eight fast
path cores and eight IBM Real-time Compression cores.
SVC CF8 4 1 3
Compression does not work if any other type of node is part of an I/O Group.
When a host server performs I/O to one of its volumes, all the I/Os for a specific volume are
directed to one specific I/O Group in the system. Also, under normal conditions, the I/Os for
that specific volume are always processed by the same node within the I/O Group. This node
is called the preferred node for this specific volume.
Both nodes of an I/O Group act as the preferred node for their own specific subset of the total
number of volumes that the I/O Group presents to the host servers. A maximum of
2048 volumes per I/O Group is allowed. However, both nodes also act as failover nodes for
their respective partner node within the I/O Group. Therefore, a node takes over the I/O
workload from its partner node when required.
Thus, in an SVC-based environment, the I/O handling for a volume can switch between the
two nodes of the I/O Group. For this reason, servers that are connected through FC must use
multipath drivers to be able to handle these failover situations.
The SVC I/O Groups are connected to the SAN. This connection allows all application
servers that access volumes from this I/O Group to have access to this group. Up to 256 host
server objects can be defined per I/O Group. The host server objects can access volumes
that are provided by this specific I/O Group.
If required, host servers can be mapped to more than one I/O Group within the SVC system.
This configuration allows them to access volumes from separate I/O Groups. You can move
volumes between I/O Groups to redistribute the load between the I/O Groups.
Version 6.4.0 of the SVC and Storwize V7000 software introduces a new capability to move a
volume between I/O Groups to balance the workload without stopping host activity. To do this
task, right-click the volume and select Move to another I/O Group. You can move a
compressed volume if the target I/O Group does not already have the maximum number of
compressed volumes. If this is the first compressed volume for the I/O Group, memory and
processors are assigned for compression on both nodes in the target I/O Group.
Normally, a pair of nodes from the same I/O Group is physically located within the same rack.
Starting with the code release of SVC V6.3, you can split a single system between two
physical locations. Splitting the system provides protection against failures that affect an
entire location, such as power failures.
There is a maximum number of compressed volumes that are supported for each I/O Group,
which is 200 for all models of the SVC and Storwize V7000 Gen1 with the exception of the
SAN Volume Controller DH8 and the Storwize V7000 Gen2 models, which support 512
compressed volumes per I/O Group. This maximum applies to the current release, which at
the time of writing is SVC V7.4.0. Because a single SVC or Storwize V7000 cluster can have
up to four I/O Groups, it can support up to 800 or 2048 compressed volumes depending on
the model of the SVC or Storwize V000. The maximum number of compressed volumes per
I/O Group limit ensures that compression technology works on single node if there is a node
failure in the I/O Group.
Memory and processors are assigned for compression on both nodes in an I/O Group after
the first compressed volume is created. This assignment does not affect other I/O Groups.
76 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
5.5.9 Clusters
A cluster system consists of 1 - 4 I/O Groups of an SVC or Storwize V7000. Normally, a pair
of nodes from the same I/O Group is physically located within the same rack, and is called a
cluster. Starting with SVC V6.3, you can split a single cluster or system between two physical
locations. This configuration is called a split-cluster, and provides protection against failures
that affect an entire location, such as power failures.
In simple terms, a clustered system is a collection of servers that provide a set of resources to
a client. The key point is that the client has no knowledge of the underlying physical hardware
of the system. The client is isolated and protected from changes to the physical hardware.
This arrangement offers many benefits, which include, most significantly, high availability.
The SVC is a collection of up to eight nodes, which are added in pairs that are known as I/O
Groups. The Storwize V7000 is a collection of up to eight node canisters, which are also
added in pairs that are known as I/O Groups. These nodes are managed as a set (system),
and they present a single point of control to the administrator for configuration and service
activity.
The node limit for an SVC and Storwize V7000 system is caused by the microcode. It is not a
limit of the underlying architecture. Larger system configurations might be available in the
future.
The SVC demonstrated its ability to scale during a 2008 project. The project used a 14-node
cluster, which is coupled with solid-state drive (SSD) controllers. It achieved a data rate of
over one million IOPS with a response time of under 1 millisecond (ms).
Although the SVC and Storwize V7000 code is based on a purpose-optimized Linux kernel,
the clustered system feature is not based on Linux clustering code. The clustered system
software that is used within SVC and Storwize V7000 (the event manager cluster framework)
is based on the outcome of the COMmodity PArts Storage System (Compass) architecture.
Compass was developed at the IBM Almaden Research Center. It is the key element that
isolates the SVC and Storwize V7000 application from the underlying hardware nodes. The
clustered system software makes the code portable. It provides the means to keep the single
instances of the SVC and Storwize V7000 code that run on separate systems nodes in sync.
Node restarts (during a code upgrade), adding new nodes, and removing old nodes from a
system or node failures do not affect the SVC or Storwize V7000 availability.
It is key for all active nodes of a system to know that they are members of the system. In
situations such as the split-brain scenario where single nodes lose contact with other nodes,
you must have a solid mechanism to decide which nodes form the active system. Within an
SVC and Storwize V7000 system, the voting set and a quorum disk are responsible for the
integrity of the system. If nodes are added to a system, they are added to the voting set. If
nodes are removed, they are also quickly removed from the voting set. Over time, the voting
set, and thus the nodes in the system, can change. Therefore, the system can migrate onto a
different set of nodes from the set on which it started.
The SVC clustered system implements a dynamic quorum. Following a loss of nodes, if the
system can continue operation, it adjusts the quorum requirement so that further node failure
can be tolerated.
There are no special considerations that are required to configure a cluster to support
compression. There are some considerations when a stretched cluster is sized because it has
some impact with compressed volumes and can consume extra processor resources to
maintain mirrored copies for each distant node. The extra number of IOPS that is generated
to maintain these mirrored copies between the two nodes in the I/O Group must be
considered when sizing a stretched cluster solution.
Usually, the SVC connects to external storage RAID controllers. The RAID level for these
external controllers is configured at the controller level, and is independent of the SVC.
External storage is MDisks that are SCSI logical units that are presented by external storage
systems that are attached to and managed by the clustered system.
Internal storage is array MDisks and drives that are held in enclosures and nodes that are
part of the clustered system.
The Storwize V7000, unlike the SVC, has its own internal storage that requires RAID
configuration. Both SVC and Storwize V7000 can also have SSD storage, which also requires
RAID configuration. Internal SSDs are used, and are displayed as disk drives. Therefore,
additional RAID protection is required. The SSDs can be internal or external. The preferred
use for SSDs is to enable Easy Tier. For more information about Easy Tier, see 5.5.12, “Easy
Tier” on page 79.
The MDisks are placed into storage pools where they are divided up into a number of extents.
These extents are 16 - 8182 MB, as defined by the SVC and Storwize V7000 administrator.
They cannot be changed later. A volume is host-accessible storage that is provisioned out of
one storage pool, or if it is a mirrored volume, out of two storage pools.
78 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Managed MDisks are assigned to a storage pool and provide extents so that volumes can
use it.
Image MDisks are assigned directly to a volume with a one-to-one mapping of extents
between the MDisk and the volume. This situation is normally used when importing logical
volumes that already contain data into the clustered system. It ensures that the data is
preserved as it is imported into the clustered system.
Easy Tier creates an extent migration plan based on this activity, and then dynamically moves
high activity or hot extents to a higher disk tier within the storage pool. It also moves extents
whose activity has dropped off or cooled from the high-tier MDisks back to a lower-tiered
MDisks.
To experience the potential benefits of using Easy Tier in your environment before installing
SSDs, turn on the Easy Tier function for a single-level storage pool. Next, turn on the Easy
Tier function for the volumes within that pool. Easy Tier then starts monitoring activity on the
volume extents in the pool.
For a more effective use of SSDs, place the SSD MDisks into a multitiered storage pool that is
combined with HDD MDisks (generic_hdd tier). Then, turn on Easy Tier so that it
automatically detects and migrates high workload extents onto the SSD MDisks.
IBM Real-time Compression Software is embedded in the SVC and Storwize V7000.
Compressed volumes have a unique write pattern to the MDisks. When a host writes data to
a certain offset of a compressed volume, the system compresses this data, which is then
written to another offset of the underlying volume as it is represented in the storage pool.
Such a change in offsets triggers unnecessary migrations of data into SSDs because
repetitive writes to the same logical offset end up written in various locations instead. A new
Easy Tier algorithm is required to support compression.
Starting with Version 7.1 of the SVC and Storwize V7000 software, Easy Tier supports
compressed volumes. A new algorithm is implemented to monitor read operations on
compressed volumes instead of reads and writes. The extents with the highest number of
read operations smaller than 64 KB are migrated to SSD MDisks. As a result, frequently read
areas of the volumes are serviced from SSDs. Only some of the write operations are sent to
the extents stored on SSDs, speeding up those writes.
Easy Tier on non-compressed volumes is still operating as before, that is, based on read and
write operations smaller than 64 KB.
The performance improvement that is achieved with Easy Tier and compression is up to three
times reduction in response time.
Using striped mode is the best method to use for most cases. However, sequential extent
allocation mode can slightly increase the sequential performance for certain workloads.
Figure 5-28 shows striped volume mode and sequential volume mode, and illustrates how the
extent allocation from the storage pool differs.
Compressed volumes are similar to thin-provisioned volumes in that they use only physical
storage to store the compressed version of the volume. Both types of volumes share features
such as “autoexpand”. The similarities between thin-provisioning and compression are
because the RACE technology is implemented within the thin-provisioning technology in the
SVC and Storwize V7000 software stack (see Figure 5-27 on page 70). Performance for both
types of volumes is similar.
80 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
5.5.15 Mirrored volumes
The SVC and Storwize V7000 provides a function that is called volume mirroring, which
enables a volume to have two physical copies. Each volume copy can belong to a different
storage pool and can be on different physical storage systems, which provide a highly
available solution.
When a host system issues a write to a mirrored volume, the SVC or Storwize V7000 writes
the data to both copies. When a host system issues a read to a mirrored volume, the SVC or
Storwize V7000 retrieves the data from the primary copy. If one of the mirrored volume copies
is temporarily unavailable, the SVC and Storwize V7000 automatically uses the alternative
copy. This process occurs without any outage to the host system. When the mirrored volume
copy is repaired, the SVC or Storwize V7000 resynchronizes the data.
A mirrored volume can be converted into a non-mirrored volume by deleting one copy or by
splitting one copy to create a new non-mirrored volume. This method can be used to convert
a compressed volume to an uncompressed volume, or uncompressed to compressed.
The mirrored volume copy can be any type: image, striped, sequential, and thin-provisioned,
compressed or not. The two copies can be different volume types.
Using mirrored volumes can also assist with migrating volumes between storage pools that
have different extent sizes. Mirrored volumes can also provide a mechanism to migrate fully
allocated volumes to thin-provisioned or compressed volumes without any host outages.
An unmirrored volume can be migrated by adding a second copy at the wanted destination,
waiting for the two copies to synchronize, and removing the original copy. This operation can
be stopped at any time. Again, this method is useful to convert between compressed and
uncompressed volumes.
Compressed volumes are similar to thin-provisioned volumes in that they use only physical
storage to store the compressed version of the volume. Both types of volumes share features
such as “autoexpand”. The similarities between thin provisioning and compression are
because the RACE technology is implemented within the thin-provisioning technology layer in
the SVC and Storwize V7000 software stack (see Figure 5-27 on page 70).
Some of the CLI and GUI displays show a compressed size that reflects the combined
savings for both compression and thin provisioning.
For more information that can be used to collect information about compressed volumes, see
Chapter 7, “Compression savings reporting” on page 95.
In addition, there is no reporting of compression savings from the console itself, so you must
use the SVC or V7000 for reporting instead.
82 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
6
The following sections provide more information about how IBM Real-time Compression is
tuned to support real application workloads, and how well it runs in those workloads. In
addition, they address the assignment of hardware resources for compression, and provide
recommendations on file system alignment.
Thus, any random small block I/O write stream is coalesced into a single chunk of data to be
compressed. The compressed block is then written out to disk, which contains the sequential
stream of the larger block I/Os.
In real-life applications, when this data is read back, the read stream generally follows the
same random (non-contiguous volume logical block address) pattern. Thus, the compression
engine reads and extracts the larger chunk of data, which results in the next few random
volume I/O reads by the host. This data is read from the data that has already been extracted
by extracting the first large chunk. This process therefore results in what is essentially a
cache hit in the compression cache memory.
With real-world applications, there is also, in general, no such thing as truly random I/O. The
reality is that an application reads and writes objects or groups of data. These groups of I/O
requests form a repeatable pattern, with the same group of I/O occurring one after another,
even if they are to random locations on disk. IBM has invested heavily in understanding these
patterns, and IBM Real-time Compression uses this understanding to give better
compression ratios and return the best performance.
84 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Various application benchmark tools have shown that the compression performance in most
cases is as good or better than thin-provisioned performance for an equivalent number of
disks.
Consideration: The compression engine can reduce the number of disk I/O operations
compared to non-compressed and thin-provisioned volumes. However, a workload that is
truly 100% random read and write patterns results in I/O amplification rather than I/O
reduction. I/O amplification is associated with extra I/O requests and is expressed as a
ratio of the number of host I/O requests and the number of storage I/O requests. An
example of this ratio is if every host I/O requires one directory I/O and one data I/O, where
the I/O amplification is 1:2. The lower the number of storage I/O requests is, the better
overall performance is with compression because you are storing more data on fewer
drives, and hence you have already increased the number of I/O requests per drive. So, it
is even more important to keep the number of storage I/O requests as low as possible. This
I/O amplification is typically observed in generic benchmark tools and not in real
application workloads.
Tip: This section addresses the I/O ordering pattern, and not the “compressibility” of the
data itself.
The email server first appends this email and attachment to fred’s email database. This
results in a series of I/O writes to the underlying store:
Some small database style transactional updates that detail the metadata that is
associated with the email
The text content of the email
The attachment file in binary format
The data writes can all pass through an operating system, which potentially randomizes the
logical block addresses at which each block of data is written. After the I/O are submitted in
SCSI block writes to the storage system, it can also further randomize where the actual data
is written to disk.
The write I/O pattern is now semi-random, but it has a temporal signature: first, the metadata,
then the email text, and lastly the attachment. Within each one of these operations, the data is
also semi-randomized by the file system and the disk system.
The compression engine takes these I/O requests one by one and appends them into the
compression chunks, maintaining the temporal signature. It compresses the data and writes
them sequentially down to disk.
Some time later, fred logs in to the email client, and requests to view the email. The reads
submitted by the email server first look for the metadata, then the email contents, and then
the link to the attachment. These reads have the same temporal signature given that the file
system and disk system must retrieve the same data as was written.
Consideration: Ideally, you use a copy or clone of your real application data, and a
sample workload.
You can use volume mirroring within the Storwize V7000 and SVC products to clone and split
off a compressed copy of real application data. You can also then use the new volume move
between I/O Groups function to migrate the cloned volume to a new I/O Group.
In the course of writing this book, various performance benchmark tests were run using
typical Storwize V7000 and SVC system configurations. The results are included in 6.3,
“Application benchmark results” on page 86.
Storwize V7000 Gen 2 168x 10K RPM 600 GB SAS disks configured as 7+P RAID 5
- CSOP Tests 64 x 300 GB volumes
Storwize V7000 Gen 2 144x 10K RPM 600 GB SAS disks configured as RAID 10, 64 GB
- VDbench Tests 64 GB RAM with 2 compression accelerator cards
128 x 200 GB volumes
4 FC ports per node
86 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Model Configuration
The benchmark measures transactions per minute (tpmC), which indicates new order
transactions run per minute and provides a measure of business throughput. The benchmark
also measures response time, which is the average time that a user got a response for each
transaction.
Table 6-2 Storwize V7000 Gen 2 and SVC DH8 using Oracle
Transaction Storwize V7000 Gen 2 SAN Volume Controller DH8
SVC V7.4 SVC V7.4
(64 GB RAM) (64 GB RAM)
with 2 compression accelerator with 2 compression accelerator
cards cards
Table 6-3 shows the performance results that can be used as a generic framework for realistic
upper-limit expected performance for several models of SVC and Storwize V7000 using
compression. The table depicts random I/O performance that is achieved with Version 7.3 as
compared to Version 7.4 of the SVC code. The workload is ideal DB type with 65%
compression, random I/O, 8 K I/Os, and 80% read.
Operation Worst Case Best Case Worst Case Best Case Worst Case Best Case
Operation Worst Case Best Case Worst Case Best Case Worst Case Best Case
From these purely synthetic workload tests, there is a wide variability in the compressed
performance. This workload is best case because everything is repeatable. In repeatable
workloads, the order in which blocks were “pseudo-randomly” written is repeated when
reading back in the same “pseudo-random” order.
88 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
The worst case tests are where there is no correlation between write and read I/O patterns.
This is how most benchmarks work and this is why they should be avoided with IBM
Real-time Compression. These tests result in much slower performance compared with a fully
allocated volume. This performance loss is because the system must read and extract a large
chunk of data for every host (volume) 4 KB I/O. In these cases, compression is not preferred.
These tools generate synthetic workloads that do not have any temporal locality. Data is not
read back in the same (or similar) order in which it was written. It is therefore not useful to
estimate what your performance will look like for an application with these tools.
Consider what data a benchmark application uses. If the data is already compressed, or is all
binary zero data, the differences that are measured are artificially bad, or good, based on the
compressibility of the data. The more compressible the data, the better the performance is.
Attention: Random I/O benchmark tools do not generate real application patterns, and so
cannot simulate the real performance of IBM Real-time Compression.
Similarly, sequential read streaming is governed by the decompression performance per core.
This process can reduce the read MBps throughput rates compared with fully allocated
volumes when large numbers of physical disks are used in a storage pool. Perform testing to
ensure that backup processing can be completed within required time windows.
Review the resulting throughput when using compressed volumes for workloads that are pure
file copy type of workloads, such as backup-to-disk, and backup to tape.
Tip: For the 4-core SAN Volume Controller 2145-CG8, treat these nodes according to the
guidelines for the SAN Volume Controller 2145-CF8. To check what type of controller that
you have, run svcinfo lsnodevpd. If the output returns Xeon 5630, it is a 4-core SAN
Volume Controller 2145-CG8.
Cache Memory 24 GB 24 GB 32 GB 64 GB 8 GB 32 - 64 GB
Explanation: These tests were performed using the SAN Volume Controller 2145-CG8
with six cores. For test results that pertain to the SAN Volume Controller CG8 with four
cores, contact your IBM representative.
When you create a compressed volume, the core assignments and resource changes in
Table 6-5 are made.
Cache memory 22 GB 22 GB 32 GB 64 GB 8 GB 32 - 64 GB
Note: There are two models of the SAN Volume Controller 2145-CG8 node. One has four
cores and the second has six cores. The 6-core CG8 can be upgraded to a 12-core
through RPQ 8S1296.
However, there are fewer cores available to the main I/O code, that is, normal host to disk I/O
processing cores. Do not create compressed volumes if the processor utilization (before
creating compressed volumes) is consistently sustained above the levels that are shown in
Table 6-6 on page 91.
90 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Table 6-6 Maximum existing sustained processor utilization per node
Per node SAN Volume SAN Volume SAN Volume SAN Volume Storwize Storwize
Controller Controller Controller Controller V7000 Gen1 V7000 Gen2
CF8/CG8* CG8 CG8 RPQ DH8
If the nodes in your I/O Group are sustaining processor usage higher than the suggested
maximum processor usage, add an I/O Group before creating compressed volumes. You can
also add a Storwize V7000 control enclosure. You can also consider upgrading to the
following hardware configurations, which are highly recommended with IBM Real-time
Compression:
Storwize V7000 Gen2 with 64 GB and 2 x Compression Accelerator Cards (per canister)
SVC (2145-DH8) with one or two Compression Accelerator Cards (per node)
There is a maximum number of compressed volumes that are supported for each I/O Group,
which at the time of writing is 200 for all models of the SVC and Storwize V7000 Gen1 except
for the SAN Volume Controller 2145-DH8 and the Storwize V7000 Gen2 models, which
support 512 compressed volumes per I/O Group. You can have 800 - 2048 compressed
volumes for four I/O Groups, depending on the model of SVC and
Storwize V7000.
If you have only a few compressed volumes, configure them on one I/O Group. Do not split
them between different I/O Groups when the number of compressed volumes is small.
For larger numbers of compressed volumes, the general preference, in systems with more
than one I/O Group, is to distribute compressed volumes across I/O Groups. For example, a
clustered pair of Storwize V7000 Gen2 control enclosures requires 256 compressed volumes.
It is better to configure 128 volumes per I/O Group, instead of 256 compressed volumes in
one I/O Group. Also, ensure that the preferred nodes for each compressed volumes are
evenly distributed across both nodes in the I/O Group. This is the default behavior when you
create consecutive volumes.
Starting with Version 7.4, multiple instances of IBM Random Access Compression Engine
(RACE) code are being introduced, which does not require any user configuration. The use of
multiple instances of RACE increases performance, especially when there are two
compression accelerator cards that are configured. The following hardware configurations are
supported by multiple RACE instances, which are highly recommended with IBM Real-time
Compression for best performance:
Storwize V7000 Gen2 with 64 GB and 2 x Compression Accelerator Cards (per canister)
SAN Volume Controller (2145-DH8) with one or two Compression Accelerator Cards (per
node)
System services that require more processor resources include Metro and Global Mirror,
FlashCopy, Easy Tier, Stretched-cluster, and thin-provisioning.
To monitor processor performance by using the GUI, click Monitoring → Performance. The
processor graph is displayed, including both the System and Compression average processor
utilization.
To add the compression line graph into the processor utilization graph, select
Compression%, as shown in Figure 6-1. The system statistics can be displayed by MBps or
by IOPs.
92 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Figure 6-2 shows the compression and the system line graphs in the processor utilization
graph.
Example 6-1 shows how to display the processor statistics by using the CLI.
Tip: You can add nodes and load balance volumes to increase the overall processor
and memory resources of the SVC/V7000 cluster.
Additional considerations are reviewed: Ensure that file system alignments are as
specified in 6.8, “File system alignment” on page 93. Also, think about backup
requirements for compressed volumes that take into account the advice in 6.5, “Sequential
read and write I/O” on page 89.
94 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
7
Remember: The same storage pool can contain fully allocated, thin-provisioned, and
compressed volumes concurrently. Understanding capacity in the storage pool layer in this
case requires a closer review of the volumes and their types.
By design, the compression technology that is implemented in the Storwize V7000 and the
SAN Volume Controller (SVC) is not apparent to the host. It compresses the client data before
writing to the disk, and extracts the data as it is read by the host.
The data size looks different from a different point of view. For example, the compressed size
is not reflected to the host, and can be seen only from the Storwize V7000 and SVC points of
view.
Compression ratio The ratio between the compressed size and the uncompressed size.
96 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Consideration: Both size before compression and the compression ratio values do not
calculate savings that are achieved from detecting long sequences of empty space. For
more information, see 7.5, “Reporting of sparse compressed volumes” on page 113.
The System allocation window shows the allocated and physical storage. If compression is
not being used, then it simply displays Allocated, which indicates the amount of capacity that
is allocated to all volumes in the system. If compression is enabled, then it shows Compress
Allocated, which indicates the amount of capacity that is allocated to all volume types.
This window shows you metrics that are related to Compression Savings, Thin-provisioning
Savings, and Total Virtual Savings.
In addition, there is a bar at the lower-left side of the window that provides the same type of
system storage metrics that are available through the cylinder view window, such as
Allocated, Virtual, and Compression.
The MDisks by Pools window provides the compression ratio benefits of the entire pool.
Figure 7-4 on page 99 shows an example where a pool is overallocated.
98 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Figure 7-4 Overallocation example
Consideration: The reported numbers are dynamically updated as data is sent from the
storage system cache to the IBM Random Access Compression Engine (RACE)
component. This updating causes a slight delay (typically a few seconds) between the host
writes and the updated reporting.
The Compression Savings field shows that the compressed size is 7.79 GiB. This is the
amount of space the data is actually using. The saved size is 9.03 GiB, which means that in
total the uncompressed size of the data is 7.79+9.03= 16.82 GiB.
The compression ratio is written below the bar and calculated from the compressed size and
the uncompressed size of the data. In this example, it is (1- (7.79/16.82))*100 = 53.69%.
100 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
All volumes in a pool lssevdiskcopy -filtervalue
mdisk_grp_name=[<mdisk_grp_name>]
All volumes in a system lssevdiskcopy
Example 7-2 shows the output of the lsmdiskgrp command for a specific volume.
The lsmdiskgrp command lists all the information for each pool by using the headers that are
listed in Figure 7-6. This output shows the compression-related values for each pool.
id
name
status
mdisk_count
vdisk_count
capacity
extent_size
free_capacity
virtual_capacity
used_capacity
real_capacity
overallocation
warning
easy_tier
easy_tier_status
[...lines deleted for brevity...]
compression_active
compression_virtual_capacity
compression_compressed_capacity
compression_uncompressed_capacity
Figure 7-6 Order of headers that are listed with lsmdiskgrp
For output without the headers, run lsmdiskgrp -nohdr, as shown in Example 7-3. (The lines
in this example output wrap, but are normally all one line.)
102 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
To list the information for a specific volume with the headers, run lssevdiskcopy
[<vdisk_name>]. Figure 7-7 shows the headers for the compression-related values that are
provided by this command for a specific volume.
vdisk_id
vdisk_name
copy_id
mdisk_grp_id
mdisk_grp_name
capacity
used_capacity
real_capacity
free_capacity
overallocation
autoexpand
warning
grainsize
se_copy
compressed_copy
uncompressed_used_capacity
Figure 7-7 Order of compression-related headers that are listed by the lssevdiskcopy command
For output without the headers, run lssevdiskcopy -nohdr, as shown in Example 7-4.
To list all the volumes in a pool with the headers, run lssevdiskcopy -filtervalue
mdisk_grp_name=<mdisk_grp_name>. Figure 7-8 shows the headers for the
compression-related values that are provided by this command.
vdisk_id
vdisk_name
copy_id
mdisk_grp_id
mdisk_grp_name
capacity
used_capacity
real_capacity
free_capacity
overallocation
autoexpand
warning
grainsize
se_copy
compressed_copy
uncompressed_used_capacity
Figure 7-8 Order of compression-related headers that are listed by lssevdiskcopy for a given pool
To list all volumes in a system with the headers, run lssevdiskcopy command. Figure 7-9
displays the headers for the compression-related values for all volumes in a system.
vdisk_id
vdisk_name
copy_id
mdisk_grp_id
mdisk_grp_name
capacity
used_capacity
real_capacity
free_capacity
overallocation
autoexpand
warning
grainsize
se_copy
compressed_copy
uncompressed_used_capacity
Figure 7-9 Compression-related headers for all volumes in a system through the lssevdiskcopy
command
For output without the headers, run lssevdiskcopy -nohdr, as shown in Example 7-6. (The
lines in this example output wrap, but are normally all one line.)
104 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
2 volcomp2 1 6 Tardis_XIV107_ESX 10.00GB 3.71GB 3.92GB 209.71MB 255 on 80
no yes 7.91GB 6 Tardis_XIV107_ESX
4 volcomp3 0 3 Temp_Toaster_ESX 10.00GB 0.16MB 220.80MB 220.64MB 4637 on 80
no yes 0.00MB 3 Temp_Toaster_ESX
4 volcomp3 1 3 Temp_Toaster_ESX 10.00GB 0.16MB 220.80MB 220.64MB 4637 on 80
no yes 0.00MB 3 Temp_Toaster_ESX
9 XIV107_ESX 0 6 Tardis_XIV107_ESX 1.46TB 259.10GB 289.10GB 30.00GB 518 on 80
256 yes no 259.10GB 6 Tardis_XIV107_ESX
9 XIV107_ESX 1 3 Temp_Toaster_ESX 1.46TB 190.00GB 220.01GB 30.00GB 681 on 80
no yes 255.13GB 3 Temp_Toaster_ESX
10 temp 0 6 Tardis_XIV107_ESX 100.00GB 0.75MB 2.02GB 2.02GB 4960 on 80
256 yes no 0.75MB 6 Tardis_XIV107_ESX
10 temp 1 2 Toaster 100.00GB 0.75MB 2.02GB 2.02GB 4960 on 80
256 yes no 0.75MB 2 Toaster
11 ESX109_ESX_REPL_MASTER 0 6 Tardis_XIV107_ESX 300.00GB 115.59GB 118.60GB 3.01GB 252 on 80
256 yes no 115.59GB 6 Tardis_XIV107_ESX
11 ESX109_ESX_REPL_MASTER 1 3 Temp_Toaster_ESX 300.00GB 115.54GB 121.54GB 6.00GB 246 on 80
256 yes no 115.54GB 3 Temp_Toaster_ESX
Note: This example uses an SVC running software Version 7.4. The example scenario and
related reporting details are valid for Storwize V7000 Gen2 and FlashSystem V840 as well.
In this example, we use a storage pool that consists of four 16 GiB MDisks, presented from an
IBM XIV Gen2 to SVC, for a net pool capacity of 64 GiB. A 10 GB compressed volume is
created, attached to a Windows 2008 Server, and formatted by the host.
Figure 7-10 Properties of the formatted and empty compressed volume from the host perspective.
Figure 7-11 on page 107 shows the properties of the formatted and empty volume from the
storage system perspective.
106 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Figure 7-11 Properties of the formatted, empty compressed volume from the storage system
perspective
Table 7-1 shows a summary of the initial reported capacity information from the host, and the
SVC point of view.
Windows 2008 used space 79.2 MB is used in the drive, out The host operating system is
of a total capacity of 9.99 GB. not aware of the actual capacity
that is used by the storage
system.
Storage system volume details Real size: 220.8 MiB 220.8 MiB is the actual
allocated size. This size is 2%
of 100 GB, which is the volume
size that is created.
Storage system volume details Before Compression: This is the uncompressed size
53.76 MiB of the data. This is the size that
is reflected to the host. In some
cases, the size is different from
the host point of view and the
storage system.
Storage system volume details Used size: 4.03 MiB The 53.76 MiB of data was
compressed to 4.03 MiB. This
is the actual disk usage for
storing this data.
Storage system volume details Compression saving: 92.50% According to the ‘used size’ and
‘before compression’ size, you
can see that you saved 92.50%
of disk space.
In this example, we now copy data to the compressed volume on the host. In this example, it
is 8.43 GB of uncompressed data.
108 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Figure 7-12 shows the data size after it is copied, as it is reported by the host. The host is not
aware of the compression and presents the ‘used size’ as the uncompressed size of the data,
in this case, 8.43 GB.
To see the actual used size, you must look at volume details on the storage system.
Figure 7-13 on page 110 shows that the data size before compression is 10.93 GB, and the
used size is 4.53 GB. The compression savings are calculated from both parameters, and in
this case the savings are 58.54%.
Remember: The used size can be smaller than the “before” compression size or the real
size from the storage system point of view. This discrepancy can occur because
thin-provisioned volumes do not allocate new storage for buffers that contain zeros.
110 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Figure 7-14 shows the capacity details per volume. In the upper bar, you can see the volume
allocation size as part of the entire pool. The lower bar shows the compressed size,
uncompressed size, and the savings percentages. In this example, you can see that the
allocated volumes size is 5.00 GiB, the compressed size is 3.92 GiB, and the saved space is
4.45 GiB. The total compression savings in this pool are 53.16%. In this example, because
there is only one volume in the pool, the compression savings for the volume and the pool are
the same.
Figure 7-15 on page 112 shows the copies and the different sizes that are reported, although
they both contain the same data.
In general, there always is some difference between compressed volume copies, mostly after
the initial copy. This difference is because the actual disk space usage depends on the I/O
pattern. In Copy 0, it is the original I/O to the volume, and in Copy 1, it is the 100% sequential
write of the synchronization itself. After the volumes are compressed, the same I/O is
performed on both copies and the results are the same.
112 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Figure 7-16 shows that the real size and the before compression size are different.
Remember: When referring to a chunk of zeros, zero means the byte value of 0x0 (null
value). It is not the ASCII value of the zero character (‘0’), which is 0x30 (or 48 in decimal).
When a host is writing zero values to an unallocated area, these writes are not accounted for
by the system. As a result, the “before compression” value is lower than expected.
Explanation: The reporting “skew” occurs only if the writes are sent to unallocated areas.
After the zeros are written to areas that were already written to before (overwriting previous
data), the zeros are accounted for in the “before compression” value.
When you view the volume properties from the storage system, the “Before Compression”
size is reporting a number that is much lower than 4.65 GB. Figure 7-18 on page 115 shows
that the “Before Compression” size is 53.88 MiB as viewed on the storage system.
114 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Figure 7-18 Before Compression size of a volume containing a sparse file
The compression engine does not free the space immediately. The space is freed again
during the optimization process of the compression engine. The optimization cycle happens
occasionally, depending on the number of writes and reads to the same disk space.
Therefore, they cannot be predicted in advance or scheduled.
However, overwriting data triggers the optimization cycle. This process causes the system to
reuse the block that it marked as free. This process avoids sequential writes that take more
space from the disk without filling the gaps.
You can also reduce the disk space of such a volume by adding a mirrored compressed copy
and deleting the original copy after the sync is complete.
116 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
8
The content that follows is an addition to the current information that is available on SVC and
Storwize V7000 RAS, monitoring, and troubleshooting capabilities. For more information, see
the following resources:
Implementing the IBM System Storage SAN Volume Controller V7.2, SG24-7933
Implementing the IBM Storwize V7000 V7.2, SG24-7938
Beginning with SVC and Storwize V7000 Version 6.4, IBM Real-Time Compression is
integrated into the code. For more information about how to upgrade the code of SVC or
Storwize V7000, see the following resources:
Implementing the IBM System Storage SAN Volume Controller V7.2, SG24-7933
Implementing the IBM Storwize V7000 V7.2, SG24-7938
8.2 Troubleshooting
Events that are detected by the system are saved in an event log. When an entry is made in
this event log, the condition is analyzed and classified to help you diagnose problems.
These events and error codes are all identical to the corresponding thin-provisioned events
and error codes. However, they have a different event ID to distinguish them as compressed
volume events.
For more information about working with the monitoring window, displaying events, initiating
fix procedures, looking at event properties, and accessing the event log window, see the
following resources:
Implementing the IBM System Storage SAN Volume Controller V7.2, SG24-7933
Implementing the IBM Storwize V7000 V7.2, SG24-7938
Volume compression has various error codes and informational events that are recorded in
the system event log.
Consideration: The alerting facilities (event, alert, or email) are asynchronous. The events
might not be received before the thin-provisioned or compressed volume goes offline. For
this reason, consider an automated response to this condition. IBM Tivoli Storage
Productivity Center alerts provide a mechanism for triggering automated responses. For
more information, see the following website:
http://www-03.ibm.com/systems/storage/software/center/index.html
A compressed volume is taken offline because there is insufficient allocated real capacity
available on the volume for the used space to increase further. If the compressed volume is
autoexpand enabled, the storage pool it is in also has no free space.
The service action differs depending on whether the compressed volume copy is autoexpand
enabled or not. Whether the disk is autoexpand enabled or not is indicated in the error event
data.
118 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Volume is autoexpand enabled
If the volume copy is autoexpand enabled, perform one or more of the following actions. After
performing all of the actions that you intend to perform, mark the error as “fixed.” The volume
copy then returns online.
Determine why the storage pool free space is depleted. Any of the thin-provisioned or
compressed volume copies in this storage pool might have expanded at an unexpected
rate. There might be an application error. New volume copies might have been created in,
or migrated to, the storage pool.
Increase the capacity of the storage pool that is associated with the compressed volume
copy by adding more MDisks to the group.
Provide some free capacity in the storage pool by reducing the used space. Volume
copies that are no longer required can be deleted, the size of volume copies can be
reduced, or volume copies can be migrated to a different storage pool.
Migrate the compressed volume copy to a storage pool that has sufficient unused
capacity.
Consider reducing the value of the storage pool warning threshold to give more time to
allocate extra space.
Each event that the SVC or Storwize V7000 detects is assigned a notification type of Error,
Warning, or Information. You can configure the SVC or Storwize V7000 to send each type of
notification to specific recipients. For more information about Call Home for your SVC or
Storwize V7000, see the following resources:
Implementing the IBM System Storage SAN Volume Controller V7.2, SG24-7933
Implementing the IBM Storwize V7000 V7.2, SG24-7938
Restriction: The RACE diagnostic information is only available in a statesave (also called
livedump). Standard logs do not contain this information.
To download a support package that contains the RACE diagnostic information, complete the
following steps:
1. Click Settings → Support → Download Support Package.
2. If the system observed a failure, select Standard logs plus most recent statesave from
each node. For all other diagnostic purposes, select Standard logs plus new
statesaves. Figure 8-1 on page 121 shows a sample of the GUI display. For performance
issues, select Standard logs plus new statesaves.
120 IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
Figure 8-1 Support Package
Discover how IBM Real-time Compression software that is embedded in IBM SAN
Volume Controller (SVC) and IBM Storwize V7000 solution addresses all INTERNATIONAL
embedded
the requirements of primary storage data reduction, including TECHNICAL
compression
performance, by using a purpose-built technology called real-time SUPPORT
software aids data compression. This IBM Redpaper publication addresses the key ORGANIZATION
reduction requirements for primary storage data reduction and gives real world
examples of savings that can be made by using compression.
Learn about IBM SVC and Storwize V7000 is designed to improve storage efficiency by
Random Access compressing data by as much as 80% through supported real-time
Compression Engine compression for block storage. This process enables up to five times BUILDING TECHNICAL
technology as much data to be stored in the same physical disk space. Unlike INFORMATION BASED ON
other approaches to compression, IBM Real-time Compression is used PRACTICAL EXPERIENCE
with active primary data, such as production databases and email
See the compression IBM Redbooks are developed
systems. This configuration dramatically expands the range of
savings that can be candidate data that can benefit from compression. As its name implies, by the IBM International
achieved IBM Real-time Compression operates as data is written to disk,
Technical Support
Organization. Experts from
avoiding the need to store data that is awaiting compression. 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.
REDP-4859-01