Getting the right storage requirements for VDI can be tricky in most situations. The reason for that is the lack of information about the workload that will be running in each one of the virtual desktops. It is possible to use some pre-trended numbers as baseline, however despite this would be an indication of what the workload would likely be, it could be a point out of the curve in many cases. In the nirvana scenario the customer would have been already running a pilot and that data could be collected and trended.
There are few parameters that must be taken in consideration to size storage correctly:
- Storage Size – How much storage will be required?
- LUN Size – How many LUNS and/or Datastores will be required?
- Tier Type – What type of disks will be required and disk placement
- IOPs (cmd/s) – Number of SCSI commands per second per LUN and Total
- Read/Write Ratio – Read and Write ratio to support workload
The first three items can be calculated without major understanding of the workload, however would still require knowledge about VM sizing and how they operate in a tiered environment. Read my articles VMware View 4.5 Storage Tiering explained and Sizing Storage for VMware View Linked Clones and Real Life example of Storage Sizing for View Linked Clones.
The real problem lies with the two items at the bottom of the list: IOPs and Read/Write Ratio. Without these values the storage architect/admin will probably not provision storage with the performance your VDI require.
IOPs, also known as disk IO profile, will differ for each type of GuestOS (Windows XP or 7). The profile is dependent upon type and number of applications deployed, and services inside the Guest OS. Furthermore the IO profile is also dependent on how users interact with the virtual desktop. Luckily VMware, partners and consulting firms have already validated profiles and numbers that can be used as baseline. I would still greatly encourage you to find out the profile for your environment if you can. Following VMware’s documentation:
Light (5 IOPS) – Light users typically use email (Outlook), Excel, Word, and a Web browser (Internet Explorer or Firefox) during the normal workday. These workers are usually data entry or clerical staff.
Heavy (15 IOPS) – Heavy users are full knowledge workers using all the tools of the light worker (Outlook, Excel, Word, Internet Explorer, and Firefox) and also working with large PowerPoint presentations and performing other large file manipulations. These workers include business managers, executives, and members of the marketing staff.
According to VDI & Storage – Deep Impact paper published by PQR the IOPs numbers would be similar to the table below:
Interestingly, most architecture documents or white papers published will have divergences on these numbers. So, don’t trust them! You can get the IO profile for your environment utilising storage array admin tools, vCenter Client, or tools like vScsiStats that will provide you a much more granular overview.
The second item that is often forgotten during storage calculations is the Read/Write ratio. The Read/Write ratio will determine how many spindles will be required to support the workload in a RAID configuration type ‘x’. According to the same PQR paper “on average, the IOPS required amount to eight to ten per client in a read/write ratio of between 40/60 percent and 20/80 percent.” VMware’s documentation point us to read/write ratios with the following magnitudes: 70/30, 60/40 and 50/50. One of my customers had a Read/Write Ratio of 18/82.
The read/write ratio will also determine how much of your IO workload will be handled by the storage cache – for the case above the cache was handling about 45% of the total of IOs.
My recommendation is, if you are designing blind and do not have the IO profile during the design phase, be conservative. In this case you should assume Normal or Heavy IO profile with Read/Write ratio of 50/50. If you see any papers mentioning desktop workloads with more Reads than Writes be wary because most likely this is not your case.
The RAID type will determine the numbers of spindles required to support the workload based on the amount of IOPS and Read/Write ratio; specially Write ratio since RAID adds a write penalty that is dependent on the type of RAID configuration. RAID5 adds a write penalty of 4 whilst RAID10 adds a write penalty of 2.
VM IO = VM Read IO + (VM Write IO * RAID Penalty)
The formula above will serve you well, however VMware View 4.5 introduced the ability to select a specific datastore where Replica disks will be hosted. Normally this datastore will be a pool of Solid State Drives (SSD) that will provide a greater amount of IOPs and throughput. That means that the total IOPs per VM is actually split across multiple datastores and the Read/Write ratio does not help much here since the Replica datastore will always only Read, and the Linked Clone datastore will always Read/Write.
If your design is catering for storage tiering it could end up looking like the model below.
The key take away here is – plan your storage for performance and whenever possible utilise real workload data to calculate the environment. Pre trended and/or existing data might not apply to your workload and you will end up with under spec environment. The bottom line is – the end user experience will suffer, and that is the last problem you would like to face during a VDI rollout. I like to say that VDI is all about end user experience and acceptance. If the experience is poor the acceptance will be low or inexistent.
That being said I am publishing a new release of my VDI calculator. Amongst other new features the calculator will provide the amount of IOPS required to support the workload based on selectable pre-defined profiles, RAID Type and Read/Write ratio. The amount of IOPS is displayed per LUN and Total, and the IOPS can also be a custom number defined by the user.
To access the new release of the VDI calculator click here.