Virtual Provisioning Best Practices with Symmetrix VMAX

VP simplifies drive and DA workload distribution but doesn’t distribute performance across Fas.

Pool Count, Fewer Pools for Easier Management

  • Segregation by Application
    • Separate applications that require consistent performance
    • Avoids unexpected disk queuing if critical apps have dedicated disks
  • Segregation by Use
    • Separate database tables and log
    • Separate backup media, such as clones (allows more space efficient protection, i.e. R5/R6)

Pool Configuration, Best Practices for TDATs

  • Equality for all TDATs (data devices)
    • Place on drives that have same rotational speed
    • Use common size to avoid uneven data distribution
    • Disk hyper count (TDAT count * RAID member count) should be multiple of disk count to spread load evenly within a pool
  • Fewer, larger devices
    • Fewer objects to manage
    • 8 disk hypers per physical disk at a minimum for adequate disk queue depth (too few could cause starvation of I/O requests to the disk)

Considerations with Availability

  • Definitions
    • Mean Time to Data Loss (MTTDL)
    • Mean Time Between Failures (MTBF)
    • N (Number of Drives)
    • MTTR (Mean time to Replace a failed drive)
  • Mirrored and RAID5
    • MTTDL = (MTBF of the disk)^2 / [N * (N-1) * MTTR)]
  • RAID6
    • MTTDL = zero (from simultaneous dual drive failures)

Considerations with Performance

  • However, R6 will have performance implications with respect to write requirements
    • Mirrored = 1x (2 operations)
    • R5 = 2x (4 operations: read old data, update data, read parity, write parity)
    • R6 = 3x( 6 operations: read old data, update data, read parity, write parity, read parity, write parity)
  • 12 tracks is the basic unit, that will go to a single TDAT, sequential writes work very well with R5 3+1 because the full stripe is 12 tracks.


  • Devices that are presented to the host that are over-subscribed
  • Allocate extent on first write, performance implication

First Write

  • When the TDAT is bound, you have an option for one of three cases
  • VTOC is done on a track by track basis
  • Case 1: Unallocated
    • Allocate extent
    • VTOC track, pad if necessary (up to 64KB) (if it’s only 8KB, it will have to pad the rest)
    • 5-7ms latency in the beginning
  • Case 2: Pre-allocated
    • VTOC track, pad if necessary (up to 64KB)
    • 3-3.5ms latency in the beginning
  • Case 3: Pre-written
    • Clear to write!
    • 2ms latency in the beginning
  • All three cases even out over time, depending on usage

Stripe for Concurrency

  • Thin pool 480 R5 3+1 data devices on 480 drives, 4 engine VMAX, upwards of 165,000 IOPS with 500 thin devices
  • Increase thread count
  • Increase TDEV
  • Increase FA slices/ports/targets


  • Conceptually, striped and concatenated meta devices should perform equally
  • Reality is there can be differences due to effective I/O queue depth
    • Random read was equal for 8KB (out-performs non-meta though)
    • Random write has striped slightly higher but still close (way out-performs non-meta)
    • Sequential write begins to out-perform significantly as queue depths grow upwards to 64
  • Striping gives the highest performance
  • However, if meta expansion will be a requirement, then concatenated will be optimal
  • Alternatively, do the striping at the host level
  • Tune your applications to Symmetrix architecture
    • 8-16KB random request size
    • 64-256KB sequential request size (Symmetrix track aligned)
    • 256KB is the largest the Symmetrix will send to a disk

One thought on “Virtual Provisioning Best Practices with Symmetrix VMAX

  1. Good read for a DBA learning about VMAX and getting ready for the big ask for a 10 TB sql server 2008 R2 DB. Curious comment from one of our SAN admins … apparently we can’t use virtual provisioning because of Windows Server 2008 Cluster requirement for the scsi-3 reservation bit. Our san is not yet in production. Does this make sense?

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s