Nigel Poulton tweeted
today: "What are peoples thoughts on best practices for multiple
pools on the likes of USP V and VMAX. Trade-off between perf vs resiliency etc..."
Good
question Nigel, one of the biggest problems customers have is being able to
fully utilize all their resources. It's not just that the ROI for storage tends
to be underwhelming, but more frustrating is the fact that their storage was
provisioned in a way that makes resources inappropriate or unavailable
for the pressing needs at hand.
Pools are used two ways - to reserve storage capacity for certain
functions such as snapshots or to create QoS levels for storage. The
difficulty lies that in the creation of pools for QoS, resources that are
committed to pools are practically locked into them and cannot be easily redistributed to other pools to meet changing demands. As storage systems
age and are filled with data, the various pools are
consumed unevenly. For example, consider an array with six pools provisioned as
follows:
Pool #1: SATA, 60TB
(usable) RAID 6 - primary bulk storage: no performance requirements
Pool #2 SATA, 40TB
(usable) RAID 10 - primary low cost storage: capacity over performancePool
#3 FC/SAS, 30TB (usable) RAID 5 - primary high performance storage:
performance over capacity
Pool
#4 FC/SAS, 20TB (usable) RAID 10 - primary highest performance
storage
Pool
#5 SATA, 50TB (usable) RAID 5 secondary snapshot storage
Pool #6 FC/SAS, 60TB
(usable) RAID 5 secondary snapshot storage
The type of problems storage administrators are constantly dealing with occur when one pool becomes maxed out - making it's associated QoS unavailable. The admin, then has three choices, 1) use a higher QoS, 2) a lower QoS, or 3) add new resources to the pool, if possible. If they decide to use a higher QoS they may have to deal with performance problems in higher-priority applications. If they decide to use a lower QoS they will have to deal with performance problems for the application. If they decide to add resources, they might have to interrupt many other applications and take them off line while workloads are shifted. Then you get the ripple effect of "remodeling the kitchen".
When you consider the fact that some storage systems force users to establish separate pools for thin provisioned volumes and thick volumes, the number of pools in the system increases and the fragmentation of resources becomes a much bigger problem.
The best practice for managing storage pools is to do away with them entirely so they don't inhibit access to expensive resources and, more importantly, so they don't soak up so much administrative time and create increased risk of downtime and data loss.
Pools of disk drives are just a thin layer above bare disk drives where virtualization is concerned. Considering the transparent nature of system virtualization technology it is almost incomprehensible that storage systems force customers to create these artificial constructs that force hard choices about something as basic as the layout of data on disks. Vendors with pool-based volume management like to distract customers by talking about whiz bang functionality that doesn't address the core storage problem - the fact that their customers are still doing much of the work that the system ought to do for them.
The best practice then is to replace outdated storage designs with new designs that do not reserve storage resources in pools and do not use pools to create QoS levels. 3PAR InServ storage systems do not use pools and do not reserve capacity for different QoS levels.
3PAR InServ storage systems are used by many of the largest companies in the world, which saves them an enormous amount of money by lowering lower capacity requirements and administrator overhead. For example, Priceline.Com has been a 3PAR customer for many years and they talk about how it has worked for them in this video on YouTube.
The InServ's data layout starts with the subdivision of all disk resources into 256MB "mini-disks" we call chunklets. All the higher level RAID level functions in a 3PAR system are applied at the chunklet level, not at the disk level. RAID in an InServ system is implemented as "micro-RAID" sets which then are concatenated together and formed into virtual volumes that are exported as LUNs.
FWIW, the term virtual volume was used by 3PAR years before the system virtualization phenomenon became the market force that it is today. I only mention this to reinforce the fact that from it's inception, the InServ internal storage architecture was designed to virtualize storage. It makes storage administration transparent by doing the low level provisioning work on behalf of the storage administrator.
As new storage is provisioned in a 3PAR system, the data is spread across chunklets in small 16KB increments. All the disk drives (of the same class SATA VS high performance) in the system are used by default, so that data is widely striped for optimal throughput and to avoid hotspots. While there actually are small amounts of capacity pre-allocated for use before storage is provisioned, this is done automatically by the system and it is done in thin slices across all drives.
There are no pools, no constraints, no weeks-long planning efforts needed for storage installations and change management.
If you are looking to dump your nagging storage administration problems why would you ever go back to pool based storage when that is the root cause of your problems?