Virtual server environments are replacing physical environments, as they bring cost benefits to the business, along with advantages such as better manageability, scalability and optimal utilization of resources. Resources can be allocated or de-allocated on the fly without downtime requirements, whether it's memory, CPU or storage. However, system administrators do encounter performance issues in virtual server environments, largely due to storage performance issues. To avoid such server virtualization and storage provisioning related bottlenecks, you should stress on these aspects:
· The foremost important thing that you should stress on while provisioning storage for server virtualization environments is throughput capability—and not just storage capacity.
· Categorize virtual servers according to the applications that these virtual machines will host, as applications have varying requirements.
· Pooling of storage resources makes management simple, and optimizes resource utilization. However, it can lead to scarcity of resources for IO intensive applications. So as a best practice in case of storage provisioning for VMWare, consider placing IO intensive virtual disks on dedicated VMFS volumes or RDM, will yield good results. This server virtualization and storage provisioning best practice ensures that heavily utilized virtual servers don't access the same VMFS volumes, which may lead to a race condition.
· While provisioning storage for server virtualization setups, RAID group should be chosen according to the desired level of protection, performance and application requirements.
· Use RAID 3 for backup to disk applications, as it's the best option for sequential workloads—sequential read and write performance. But do keep in mind that a RAID 3 drive creates bottlenecks for random reads and writes.
· In general, RAID 5 should be preferred over RAID 3 (except in above mentioned requirements). So for database applications with modest IOPS requirements, provision the virtual machine using VMFS with underlying RAID 5 protection. RAID 5 groups should be configured in combinations of 4+1 or 8 +1.
· For applications with high IOPS requirements, thevirtual servers hosting those applications should be provisioned with VMFS or RDM having an underlying RAID 1+0 protection, as it's the best candidate for transaction intensive workloads.
· When it comes to server virtualization related storage provisioning, there are some parameters to be set for the HBA that have a real time effect on storage performance—consult respective vendor manuals to optimize them. These parameters are queue depth and execution throttle. Queue depth controls data allowed to be on the storage network from that card. The default value is 32 for queue depth, which is good for almost all the servers, and prevents the SAN congestion. However, we can tune it for applications that are I/O intensive, and gain considerable performance enhancement by increasing queue depth.
· If you are not certain about future requirements for a particular number of virtual machines, use virtual provisioning features (offered by almost every vendor). So you can allocate space from a storage pool to set the initial storage capacity that you want to allocate—give the host an illusion of virtually allocated storage. So the servers contend for storage from the virtual as the need grows. So you need not be worried about future requirements, as thevirtual servers dynamically get storage provisioning on a need basis.
About the author: Anuj Sharma is an EMC Certified and NetApp accredited professional. Sharma has experience in handling implementation projects related to SAN, NAS and BURA. He also has to his credit several research papers published globally on SAN and BURA technologies.