This month, Tech OnTap is pleased to introduce a new feature: Back to Basics. In this article and future issues, we'll discuss the fundamentals of various popular NetApp technologies, such as deduplication, Snapshot®, FlexClone®, FlexCache®, and Flash Cache, to help you understand and get started using these technologies.
There are many situations in which you can end up allocating a lot of storage, only to have it sit unused for a long time. For example, one design college estimated that it needed 27.5TB of storage just for the storage allocations of its students and faculty, but most of them use little or none of that storage.
However, by using thin provisioning on its NetApp storage, this college has been able to support these allocations with just 3.5TB of physical storage running at 80% utilization (an overallocation ratio of more than 8:1). Purchasing the additional storage would have created an incremental expense of more than $90K, which has been avoided with thin provisioning.
NetApp thin provisioning is designed to allow you to present more logical storage to hosts or users than you actually have in your physical storage pool. Instead of allocating space upfront, storage space is dynamically allocated to each volume or LUN as data is written. In most configurations, free space is also released back to your common storage pool when data in the volume or LUN is deleted (and is not being held by any Snapshot copies).
There are a lot of benefits to this approach to storage provisioning:
- As the example above suggests, it can save you from having a large amount of allocated but unoccupied storage.
- Higher utilization in turn leads to a reduction in the amount of storage you need, lowering your direct capital expenses (capex).
- Operating expenses (opex) are reduced because your storage occupies less data center space and requires less electricity and cooling.
- Because storage prices continue to drop, when you do have to purchase additional capacity it will likely be cheaper than if you had purchased that capacity upfront.
- Capacity planning is simplified because you are able to manage a single pool of free storage. Multiple applications or users can allocate storage from the same free pool, avoiding the situation in which some volumes are capacity constrained while others have capacity to spare.
- Your storage environment becomes more agile and it becomes easier to react to change.
Figure 1) Traditional provisioning versus NetApp thin provisioning.
This chapter of Back to Basics explores how NetApp thin provisioning is implemented, the most common use cases, practices for implementing thin provisioning in both SAN and NAS environments, and more.
How Thin Provisioning Is Implemented in Data ONTAP
The NetApp Data ONTAP® operating environment combines physical disks into RAID groups that consist of data disks and parity disks. RAID groups are collected in a storage pool called an aggregate. An aggregate is a collection of RAID groups.
FlexVol® volumes are created within aggregates. FlexVol volumes are the logical containers that store data. Hosts using NAS protocols access and store data directly in FlexVol volumes. For SAN environments, LUNs are created inside FlexVol volumes and hosts access the LUNs. FlexVol volumes are not directly associated with particular underlying disks in the aggregate. This abstracts logical data storage containers from underlying physical storage containers, providing the flexibility that makes thin provisioning and other NetApp storage features possible.
FlexVol volumes allow you to use soft allocation to thin provision more space than is available in the physical aggregate.
Data ONTAP implements thin provisioning at the FlexVol volume and LUN level. In SAN environments, you can create thinly provisioned LUNs inside thinly provisioned FlexVol volumes. A simple storage option determines whether a particular volume or LUN is guaranteed physical space from the disk aggregate. This means that if you aren't currently using thin provisioning, you can enable it — on your existing volumes and LUNs — simply by changing a single option and without disrupting ongoing operations.
Common Thin-Provisioning Use Cases
In general, thin provisioning delivers maximum benefits in settings with large numbers of servers and applications. For example, good candidates include virtualized server environments and service provider environments in which storage must be allocated for a large number of users. The technology is also well suited for provisioning storage for file shares and home directories, disk-to-disk backup, Web hosting and Internet service environments (including photo storage and e-mail accounts), and information services.
The following examples illustrate how thin provisioning can yield benefits in specific application environments, but they should not be considered a complete list.
Home directories. Many organizations find that home directory capacity requirements vary greatly across the user community. This is a natural place where thin provisioning makes sense. By thin provisioning the FlexVol volumes that store home directories, you can easily accommodate the big-space consumers without wasting valuable disk space on users with modest requirements.
One company that uses thin provisioning for home directories allocates each of its 4,500 users up to 1GB of network file storage. This would require 4.5TB of physical storage with traditional provisioning, but, using thin provisioning, the requirement is met with only 600GB of physical space.
Disk-to-disk backup. Provisioning for disk-to-disk backup can be more complicated than allocating space for primary storage requirements. You not only need an estimate of the growth in primary storage, you also need to know the rate of change in each volume. One company that sells backup services to its internal customers had good success applying thin provisioning on secondary storage for disk-to-disk backup. Over the course of a year, the customer increased primary storage capacity from 500TB to 900TB without needing additional secondary storage.
The company's data center was continuously pinched for floor space, power, and cooling, so this savings represents a significant benefit beyond capital savings. The company was able to delay the purchase of new secondary storage for a year as a result of thin provisioning. Storage utilization increased from less than 40% (due to mostly underutilized volumes) to nearly 70%.
Virtual server and desktop environments. Another good candidate for thin provisioning is the virtualization environment. For each virtual machine, it's common to allocate disk space of 10-20GB. However, most VM installations only consume a fraction of this. By thin provisioning these volumes, significant storage space can be saved.
Using NetApp Thin Provisioning
Thin provisioning is enabled on NetApp storage by setting the appropriate option on a volume or LUN. You can thin provision a volume by changing the "guarantee" option to "none." You can thin provision a LUN by changing the reservation on the LUN. These settings can be set using NetApp management tools such as NetApp Operations Manager and NetApp Provisioning Manager or by entering the following commands:
vol options "targetvol" guarantee none
lun set reservation "/vol/targetvol/targetlun" disable
The change is instantaneous and nondisruptive.
New installations. To create a new thin-provisioned volume, you set the guarantee to "none" while creating the volume from the command line. When using Provisioning Manager, you can select a provisioning profile that includes thin provisioning and let the tool provision your storage system.
Figure 3 shows the thin-provisioning options for a NAS volume in Provisioning Manager. As shown, you first create a policy that includes thin provisioning by unchecking the "Guarantee space for data and Snapshot copies" checkbox. Any datasets that are assigned to this profile will then be thin provisioned.
Screenshot showing Provisioning Manager thin-provisioning options for a NAS volume.
Figure 4 shows the SAN options for thin provisioning a LUN. You create a SAN thin-provisioning policy by selecting the "Do not guarantee space for LUN or Snapshot copies" option as shown. Any SAN datasets assigned to this policy will be thin provisioned.
Screenshot showing Provisioning Manager thin-provisioning options for a LUN.
Existing installation. To convert an existing volume to thin provisioning, you need to modify the "guarantee" option of the volume by setting it to "none." This releases the free space reserved for the volume within the aggregate. This can also be accomplished using any of the NetApp management tools.
Managing thin provisioning. A critical aspect of thin provisioning is appropriate monitoring of space utilization. Since thin-provisioned environments can allocate more logical space than they have underlying physical storage, you need tools that can monitor your storage systems for space utilization and generate appropriate messages and warnings so that you can react in a timely manner to prevent out-of-space conditions.
For example, Operations Manager enables you to set alerts for different aggregate commitment and fullness levels. You can use these to alert you so that you can respond accordingly to changes in your storage consumption. In thin-provisioned environments, you can be alerted when an aggregate is overprovisioned by a certain percentage or when an aggregate gets to a certain level of fullness.
When not to use thin provisioning. There are some situations in which thin provisioning may not be appropriate. Keep these in mind when deciding whether to implement it and on which volumes to apply it:
- If the storage consumption on a volume is unpredictable or highly volatile
- If the application using the volume is mission critical such that even a brief storage outage could not be tolerated
- If your storage monitoring processes aren't adequate to detect when critical thresholds are crossed; you need well-defined policies for monitoring and response
- When the time required for new storage acquisition is unpredictable; if your procurement process is too lengthy you may not be able to bring new storage online fast enough to avoid running out of space
Thin Provisioning with SAN versus NAS
One significant difference exists between thin provisioning in SAN and NAS environments. When you assign a LUN to a host, the host creates its own file system on the LUN and does its own bookkeeping. As a result, the host can have a very different idea of how much space it is currently using within the LUN than the storage system has. (This applies equally to all SAN storage vendors, not just NetApp.) This problem is illustrated in Figure 5.
Illustration of how host and storage views of space utilization can get out of sync. A host need not reuse the blocks it has freed immediately and instead may allocate new space.
NetApp provides a technology — space reclamation — that helps you conserve and reuse the disk space you've already allocated to LUNs. Without space reclamation, it is almost impossible to thin provision a LUN over a long period of time. Naturally, this depends on how a particular application uses storage space, but in general the storage system tends to allocate more and more of the space until the LUN reaches its maximum size, at which point it is the same as if you provisioned the LUN normally.
NetApp space reclamation technology has been integrated into NetApp SnapDrive® and comes at no additional cost. SnapDrive makes it easy for server administrators to manage NetApp SAN storage using either a wizard-based approach or through a command-line interface. NetApp has also done significant work to integrate NetApp space reclamation with the Symantec™ thin reclamation API.
You can periodically initiate the space reclamation process on your LUNs. The GUI tool will first determine how much space can be reclaimed and ask if you wish to continue. You can limit the amount of time the process will use so that it does not run during peak periods.
Here are a few things to keep in mind when you run space reclamation:
- It's a good practice to run space reclamation before creating a Snapshot copy. Otherwise, blocks that should be available for freeing will be locked in the Snapshot copy and not be able to be freed.
- Because space reclamation initially consumes cycles on the host, it should be run during periods of low activity.
- Normal data traffic to the LUN can continue while the process runs. However, certain operations cannot be performed during the space reclamation process:
- Creating or restoring a Snapshot copy stops space reclamation.
- The LUN may not be deleted, disconnected, or expanded.
- The mount point cannot be changed.
- Running Windows® defragmentation is not recommended.
Thin provisioning is an important storage efficiency tool that can be used alone or in conjunction with other storage efficiency solutions such as NetApp deduplication, FlexClone, and so on. To learn more about thin provisioning, check out the following resources: