Office Arguments – Maximum VMDK size is NOT 2TB-512bytes

…if you want to use snapshots

Pop Quiz
Q: What’s the maximum size VMDK you could create in vSphere 5.1 or earlier?

A: Most people that have studied for VCP will know the maximum VMDK size is 2TB minus 512 bytes. If you create a disk in the GUI, it allows you to choose 2TB, but it’s smart enough to minus 512 bytes.
So technically that’s the maximum VMDK size, but you should NOT create it that big.

Why?

If you plan to take snapshots, there’s additional overhead you need to take into account. For a 2TB VMDK, there’s up to 16GB of overhead for the snapshot. So in reality, the VMDK needs to be 2032GB to allow for that overhead.
If you have created a 2TB VMDK and attempt to take snapshots, you may get the error:  
File is larger than maximum file size supported (1012384)
or:
File is larger than the maximum size supported by the datastore ‘.

As mentioned in KB 1012384, depending on the block size of the VMFS volume:

  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    <b style="border: 0px none; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Maximum Overhead</b>
  </td>
  
  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    <b style="border: 0px none; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Maximum size less overhead</b>
  </td>
</tr>

<tr style="border: 0px none; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">
  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    256GB &#8211; 512B
  </td>
  
  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    ~ 2GB
  </td>
  
  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    254GB
  </td>
</tr>

<tr style="border: 0px none; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">
  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    512GB &#8211; 512B
  </td>
  
  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    ~ 4GB
  </td>
  
  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    508GB
  </td>
</tr>

<tr style="border: 0px none; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">
  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    1TB &#8211; 512B
  </td>
  
  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    ~ 8GB
  </td>
  
  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    1016GB
  </td>
</tr>

<tr style="border: 0px none; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">
  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    2TB &#8211; 512B
  </td>
  
  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    ~ 16GB
  </td>
  
  <td style="border: 1px solid black; font-stretch: normal; margin: 0px; padding: 3px; vertical-align: top;">
    2032GB
  </td>
</tr>
Maximum VMDK size

If you plan to take snapshots, the maximum VMDK size is 2032GB. Or better still, embrace Decimal, and round it off to 2000GB.

The younger generation will know a TB as 1000GB (http://en.wikipedia.org/wiki/Terabyte). Older folks will still be used to a TB being 1024GB, now known as a Tebibyte TiB (http://en.wikipedia.org/wiki/Tebibyte). Hey VMware, please update all your doco from TB to TiB 😉