Application-aware storage is a storage system with built-in intelligence about relevant applications and their utilization patterns. When the storage understands the applications and usage conditions, IT administrators can optimize data layouts, caching behaviors and quality of service (QoS) levels.
This is a particularly challenging goal because application-aware storage does not run application code locally. Instead, it demands significant integration between the operating system (OS), host bus adapter (HBA) and the applications themselves.
Application-aware storage enables storage administrators to better utilize commodity disks for low-priority applications, while still getting the best possible performance, capacity and reliability for mission-critical applications. Application awareness can be particularly useful for boosting the performance of storage-intensive tasks such as archiving, backups, disaster recovery, replication, data modeling and index/search.
Application-aware storage puts a hypervisor on top of a conventional storage array. IT administrators can deploy the hypervisor on their current storage arrays using OpenStack tools or software, such as Nutanix's Xtreme Computing Platform. Organizations can also buy storage subsystems that come with hypervisor integration, such as Tintri's VMstore or Nutanix's NX family of hardware platforms.
How application-aware storage works
Server virtualization helps organizations make more efficient use of their hardware. But virtualization also takes a stable, predictable piece of hardware and makes it unpredictable. A virtual server can host many virtual machines (VMs) that each support different applications simultaneously, so the once-static data center becomes significantly more dynamic.
As server virtualization gained popularity, storage vendors added scripts and plug-ins to improve a storage array's ability to allocate storage to VMs. Then, to enable virtual infrastructure to take advantage of storage features -- including cloning, replication and snapshots -- hypervisor vendors added storage protocols and extensions.
Although this helped solve some storage management issues in virtual environments, it didn't get to the root of the problem: The logical unit numbers (LUNs) and volumes that administrators used to manage storage still had no direct relationship with VMs.
When one application runs on a single physical server, its storage needs are easy to calculate. Before server virtualization was common, arrays featured enough tunable components that storage administrators could troubleshoot performance problems fairly easily.
But calculating the storage needs for a virtual server that supports multiple applications is much harder to pin down. Additionally, it's common for unrelated teams of IT administrators to manage data center components: The server and virtualization teams work independently of the storage team. These siloes make it difficult to ensure that VMs and the applications that run on them have enough storage allocated to them from the start.
You can fix this problem by intentionally overprovisioning the storage, but that's a costly way of handling it. IT administrators can also enable storage systems that were designed before the advent of server virtualization to work in virtual environments by mapping VMs to storage through policies. But that configuration is cumbersome and difficult to troubleshoot.
Multiple VMs often end up stored on the same LUN or volume, so storage cannot perform management, cloning, replication or QoS functions on a per-VM basis. But VM-aware storage can carry out storage management tasks at the virtual machine level, which helps the storage perform better and improves VM management.