While provisioning new VM or manage existing one. There are a number of things to consider, beyond the actual disk allocation for the VM such as what type of virtual disk will be used. Below are some recommendations.
Disk for VM?
It is good practice to allocate disks according to OS and application running in the VM. Define separate disks for OS, Application data and Logs. Multiple disks allow you to more finely control and it is easy to backup when OS and data disk are separate. What happens when a snapshot of the virtual machine is taken? By choosing to make certain disks independent, for example, you could exclude them from snapshot based backups.
Next step is to define what type of disk you want to provision for VM. There are three types of disks available and come with different features.
Thick Provision Lazy Zeroed
- This is default disks option.
- The size of the disk is the same as we define for a VM disk.
- Disk creation is faster than the eager zeroed. It is because it does not zero the disk upon VM creation process.
- Its initial writing on disk is slow than eager zero because it will zero the disk when its start writing on it.
Thick Provision eager Zeroed
- The size of the disk is the same as we define for a VM Disk.
- Disk creation is slower. It is because it zeroed the disk to all his disk capacity upfront.
- It gives you best performance and recommended for high I/O intensive VMs.
- It is the prerequisite when you choose to use the FT Feature in the vSphere.
- It does not take all space upfront and have ability to grow on demand
- Not Recommended for High I/O intensive VM But you can use it for RND/Dev environment.
- You may consider it when you create VMs template.
- It is important to monitor the disk usage of the provision disk and vSphere alarm can be helpful in this regard.
What type of VM workload? (Tier1, Tier 2, Tier 3)?
Tier 1 workload is most critical workload in the environment. It will required high disk performance as well as high availability with respect to storage and other aspects. Similarly the Tier2 and Tier3 are the mid level and low level workload so keep this in mind before provision of the VM and storage.
What is the environment of the VM (Production, Dev, and RND/Test)?
Choose the environment for your workload. If your Tier1 application is in production then it’s critical as define above. But if you want to first test your Tier 1 workload in RND and Development. Than your requirements may change. You can change assignment and may put your workload into Tier 2 or Tier 3 storage as well. It’s all depends on the environment where you are going to deploy.
Who many read and write operation required?
If your desired workload is a Database, it will require more write operations than read and for Web server the case is opposite it will perform more read operations than write. So keep this in mind for VM provision.
What is RAID type for Workload?
If your workload is Tier1 and also the Database then you might Consider RAID 10 or RAID 6 and for Web server you can Consider RAID5. In normal workload you can Consider RAID1 and RAID 5, its depends upon your workload criticality.
Who many Disks in the RAID group?
You RAID group are defining as per workload. You need to decide what RAID level you required and who may disk in the RAID group you can add to meet your workload for deferent RAID level disk requirement are changed so keep this in mind. For High demand workload you may consider SSD, SAS and for mid-range you may consider SAS, NL-SAN and for RND you may consider SATA as well.
What Storage infrastructure for your workload (FC, ISCSI, NFS)?
Choose the storage infrastructure as per your workload. For Tier1, you might Consider Fiber channel and ISCSI depends upon the infrastructure. Because both will offer your Multipathing and HA. For Tier2 and Tier 3 you may consider NFS and ISCSI as well. Its depends, If you have 10G infrastructure then you may consider NFS for your environment for those workload who do not required blocks storage access.
Disk Controller for VM?
Choose Disk controller and disk as per your workload and environment. For High I/0 Choose operations such as Database consider paravirtual and choose default controller for the rest of the workload.
Other vSphere recommendation
- Consider deploying SDRS Cluster and VM Storage policies for better placement of VMs.
- For legacy OS (XP, Win 2003) Align the Disks.
NOTE: Above are my recommendations. You may consider application vender best practice guide as well.