Application-Aware Thin Provisioning – Part of a Bigger Story
There’s a lot of discussion the marketplace today about Thin Provisioning, but before we get into it, let’s set some ground rules on definitions:
Allocation: The logical capacity or size of a LUN.
Provision: The physical reservation of space on disk – to guarantee that space exists and is spoken for.
Now that we have key terms defined, there are essentially two ways to look at Thin Provisioning:
Thin Provisioning in a storage subsystem allows a disparity between capacity allocation and provisioning. In other words, one can allocate 2TB for a LUN, but provision significantly less than that. The details of how much less, how the provisioned storage approaches or grows toward that allocated depends on the design of the system.
Here is the goofy part: To the unfamiliar, the idea that you should be able to increase the size of a LUN on the server using it and the storage system providing it doesn’t seem very sophisticated. In fact it seems kinda dumb. Of course you can do that can’t you? No, not so simply on all operating systems and storage systems.
Also – the idea that just because someone says they want a 2TB LUN that you dedicate all that storage, even if they are only using 200GB of that allocation seems kinda old fashioned (it is). In other words, when you show up at the airport and expect to have a seat on the plane because you own tickets, well, yes, that used to be the way it was; same for a hotel. But now, there is this thing called overbooking…..Airlines and Hotels make sure their seats and rooms are fully utilized by assuming that they can overbook since usually not everyone shows up to claim their seat or their bed. Similarly, not everyone who allocates 2TB for a LUN uses all the space.
So what seems obvious isn’t. Some operating systems make it very difficult to increase the size of a LUN, and in fact it may require taking the system offline to do so. Of course this is really bad, and people usually over-allocate to prevent ever having to do so. Well, if you over allocate a bit, it’s not too harmful. But people don’t often forecast storage for an application really well. In fact, they have been burned many times under-allocating, so the disparity is often large. People often allocate 2X and 3X what they think they will use. If your storage system reserves that space, the unused space is wasted, plain and simple.
Underutilization is waste. The strange thing for most of us to get over is: the waste is avoidable without Thin Provisioning. But most people don’t want to worry about it, so they waste anyway. A Storage system that doesn’t provision the storage until there is data to fill it up solves this problem to the degree it is a problem. Some Storage Administrators work hard not to allow underutilization, so for them this may be easier, but it doesn’t change the efficiency of their storage system. Instead, Thin Provisioning merely shifts the work from their planning and careful management to software inside the storage system that is flexible. Not a bad thing either.
While Thin Provisioning can be a great function, it does not solve the general utilization problem, because utilization gets compromised by Admins using spindles of a given capacity to build LUNS with certain IOP capability. While they may need 500GB of capacity, they need 2000 IOPS. Getting 2000 IOPS out of a disk is not going to happen (see Blog on Spindles Count or Count Spindles). With FC disk, you will need about 10-12 disks depending on RAID type, read-write bias, and a few other factors. Building a LUN out of 10-12 disks to support this performance the will waste a TON of space. For 146GB drives, you would waste about 7-9 disks worth of space!
Unless you have Pillar’s QoS. With Pillar’s Axiom, the data gets laid out over the number of spindles you need to get the performance, and the disks are shared amongst other applications in such a way as to parcel out the performance that those applications need. Utilization nearing 100% can be achieved, although that allows no headroom for growth and such so 80% is more advisable.
But can’t other systems share disks to build LUNS? Sure, as long as you don’t mind LUNS interfering with each others’ performance. This is why disks are usually dedicated to applications! Without QoS, interference is bound to happen, and dedicated disks almost always imply underutilization – which has nothing to do with Thin Provisioning.
We have competitors that think that QoS is data placement on disk. Well it’s part of it. Without a prioritized queue manager in front of the disk, copying Pillar’s data placement on the platter and striping over spindles can (and usually does) result in WORSE performance instead of better! Pillar not only has a prioritized queue manager, but we optimize all the other system resources as well, like cache (which some competitors have shockingly little of because they built their architectures in the days of core memory ☺)
The meat behind Pillar’s claim as the first and only true Application-Aware storage is the combination of technologies such as Thin Provisioning, prioritized queuing and intelligent data layout. One without the others does not deliver on the promise we’re all driving for.
North America

