vsphere_static_160x300
Free Business and Tech Magazines and eBooks
Badges

vexpert_logo_100x57

gestaltitbadge

follow-me-twitter

Subscribe to me on FriendFeed

Comments / DISQUS
Feedjit.com

VMFS Storage Sizing for Maximum Performance

Based on best practices, this post is a “formula” for planning and sizing SAN storage for maximum VMFS performance. This is intended to be for all protocols where VMFS volumes are utilized ( FC, iSCSI ) and conservative enough to allow general sizing estimates while ensuring high performance of the running VMs.

WARNING: The storage design resulting from following these recommendations will not be the most cost effective solution. As storage performance generally requires the most spindles (disks) possible and this formula requires as many dedicated LUNs as possible, the cost for storage will be maximized. More often than not, compromises between performance and cost have to be reached that keep the design within the expected budget.

This post is split into 2 sections. The first section lists the VMFS Maximum Performance Rules while the second section uses a 25 server example to walk through the design rules.

VMFS Maximum Performance Rules

  1. Use multiple RAID array types to increase VM performance and split VM .vmdks across different RAID types.
      A VM example could be:

    • C: on VMFS lun1 RAID 5 array contains operating system
    • D: on VMFS lun2 RAID 5 array contains file data and application code
    • E: on VMFS lun3 RAID 1+0 array contains transaction logs and database
  2. Create only 1 VMFS Volume per physical SAN Volume
  3. Create less than 16 .VMDK files (virtual disks) per VMFS Volume
  4. Connect less than 16 ESX hosts per SAN Volume / VMFS Volume
  5. Heavy use VMs should get their own SAN Volume / VMFS Volume or use RDMs to minimize disk contention and locking with other VMs (frequent power cycles, frequent vmotions, constant utilization).
      Examples of heavy use VMs might be:

    • Development VMs
    • Messaging
    • Database
  6. Heavy use VMs should only be on VMFS volumes accessed by a maximum of 8 ESX hosts.
  7. If the client wants to be able to create ESX snapshots of VMs double the needed (or useable) storage size of the VMFS volumes.
  8. Size the disks in each array to maximize the spindal count

Sizing Example: client with 25 physical servers

This is a small and simple sizing example to illustrate the Maximum Performance Rules. Larger environments will be much more complex, but the following server table provides a realistic introduction on applying the rules to help design VMFS storage.

Example Client Physical Server Table

  1. Split VMs with multiple drives into multiple .vmdks across different RAID arrays
  2. Create 1 VMFS volume per physical SAN volume
  3. Volumes Needed
  4. Create less than 16 .vmdk files per VMFS volume
    • Volumes Needed (using 16 VMs or .vmdks max per volume)
  5. Connect less than 16 ESX hosts per VMFS volume – In this example the customer will use 2 or 3 ESX servers so this rule is not applied
  6. Heavy use VMs should get their own VMFS volumes
    • Messaging VMs – put c:, d:, and e: drives on separate volumes
    • File VMs – put d: on separate volumes
  7. Heavy use VMs on LUNs accessed by less than 8 hosts – does not apply because we only have 3 ESX hosts max in this example.
  8. If customer wants to make ESX snapshots of .vmdks double the needed minimum VMFS Volume sizes – customer does not want to use snapshots in this example
  9. Size disks to maximize spindal count of the arrays – TBD by storage team?

The above example would need the following SAN VOLUMES (to be formatted as VMFS):

Related Posts

  • Steffen Özcan
    Hi Rich, thanks for your short design guide. Your recommended limitations for 16 resp. 8 hosts/volume intends to create separate clusters for specific types of VMs, am I right? If the environment is large enough in total, of course.

    BR
    Steffen
  • Steffen,

    Yes, the host limitations will result in multiple ESX clusters. Hopefully you will be able to combine VMs with different applications within the clusters to maximize DRS.
  • I forgot to offer some supporting links. Here's a good start:
    http://communities.vmware.com/thread/147365
  • Now I have to respectfully disagree with some of the assumptions here.
    I would be impressed if you were able to demonstrate an I/O level where a 15 spindle Raid5 array (even Raid6 I bet) can't handle the VM load from multiple LUNs spaced across the volume.
    My environment is different as less than 10% of the systems are "production" and the rest are rapid build engineering and testing platforms but when we run scalability testing it does put some pretty significant load across the VMs AND my users are snapshot crazy.
    My design looks more like this - two primary clusters with HA/DRS (5 Dell 4u's 32GB ram+ with ~400 machines per cluster) hooked up via 4GB FC.
    I can't imagine a situation where Raid5 isn't a good option (go with Flash Drives if the I/O is that high) but the real question we should be addressing is the use of SAS drives vs SATA drives in modern arrays. On that question I don't have good answers yet. I am just starting to use SATA in our production environment and have good results so far.
  • John,

    I do not disagree with you. In fact, I end up using multiple LUNs per array just as you describe more times than not. You illustrate a great point - you have to know your disks, storage device, and even the protocol (FC or iSCSI) you use to find the most efficient performance design. This guide is intended to be a general starting point for any scenario.
blog comments powered by Disqus
Hyper9 Cowabunga
Support VM /ETC
Support VMETC.com

Support VMETC.com

@rbrambley tweets
Advertisements
VMTN Roundtable Podcasts
Subscribe



Add to Google Reader or Homepage
Subscribe in NewsGator Online
Add to netvibes
Add to Plusmo