Physical servers were usually under-utilized and took time and effort to deploy. These servers also consumed data center space, power and cooling. Virtualization reduced hardware costs, reduced the environmental requirements by saving on power and cooling and improved the utilization of physical hardware in comparison to dedicated server environments.
Of course there are tradeoffs in using virtual infrastructure. Operating system licenses are not free; there are additional management costs to consider and staff have to be trained and gain experience in the technology. However, the net effect of virtualization has been to allow many companies to reduce their overall computing costs.
Virtualization, as it continues to gain adoption, has a very close relationship with storage. Virtual machines are just data and have to be stored somewhere. On standalone virtual servers, this can be achieved simply by using DAS (locally attached) disks. But if more advanced virtualization features (and increased availability) are required then virtual machines will normally be stored on SAN or NAS arrays. Using a dedicated storage array provides a number of significant benefits to the user, namely:
Increased resilience - storage arrays operate with a high degree of redundancy with multiple power supplies, fans and other internal components.
Scalability - storage arrays are highly scalable devices and can be extended dynamically without outages.
Shared access - storage arrays allow shared access to data, which isn't generally practical or possible with DAS. Shared access is essential in increasing resiliency.
Increased functionality - storage arrays offer advanced features such as replication and snapshots that can offload processing power from the virtual server.
Virtual guests all contained on a single LUR; LUN failover keeps replicated LUNS together.
As virtual servers increase in levels of adoption, they will encompass more and more mission critical systems. It will be essential, therefore, for virtual guests to be replicated between locations to improve availability and protect in the event of a disaster scenario at the local data center.
Replication can be performed synchronously (where I/O is confirmed as written to both source and target arrays before being confirmed to the host), or asynchronously (where the source array confirms I/O complete to the host without waiting to confirm the target array has received the data).
Storage arrays are highly efficient at replicating data, which has been a key feature of these devices for 15-20 years. However, for SAN arrays, the way in which data is presented to the host can cause an issue with replication.
Storage is typically presented to virtual servers as large LUNs (Logical Unit Number). This is a single unit of storage as far as the array is concerned, but from the virtual server perspective it will be used to hold many virtual guests.
For example, a 500GB LUN could hold 25 virtual guests of 20GB per guest. Each of these virtual guests will have their own service levels and DR requirements. The storage array will replicate the entire LUN and in the event of a failover scenario where operation moves to the remote array, it is expected that the primary LUN will not be accessed, and all host I/O will occur on the remote LUN.
This may be fine for a complete DR failover but doesnt address other operational requirements, for example, where a single VM guest is moved to another location for operational reasons rather than a DR outage.
In this instance, the VM guest may have to be manually moved to another data store, removing the benefit of using replication within the array. We will see later that this issue is being addressed by new functionality in the array.
The replication issue touches on another closely related subject, that of data mobility.
Where replication provides benefits in increasing levels of availability, the wider subject of data mobility becomes more important in virtual environments. By mobility, we refer to the ability to move data (and by definition, virtual guests) around a storage enterprise, both within the data center and between separate data centers.
Mobility within the data center is an essential feature for a number of reasons:
Balance - It enables workloads to be balanced across multiple storage arrays.
Change configuration - It enables storage devices to be added into and taken out of a configuration as required, for instance, when arrays are being replaced.
DR scenario - It enables data to be moved to other locations for pre-emptive DR planning or in the event of an actual DR scenario.
The ability to move data around the infrastructure is becoming more important in delivering todays virtual environment and will be even more important in the future as workload moves into the Cloud. Without advanced storage array functionality, data movement would have to be performed by the virtual server, consuming CPU and network resources.
We will see later that storage vendors are working toward solutions that will enable arrays to move large amounts of data independent of the virtual server itself.