Why the 2TB Limit in ESX 4.1

So i was asked this question by a collegue of mine.  “Why is there still a 2TB size limit to a LUN in ESX”.   The argument was that in this day and age, and with ESX now running on a 64-bit kernel, why are we still ham-strung by this limitation?  After some consideration and thinking it was thought that maybe VMFS was the issue, but it can’t be because you can create extents and one big VMFS volume.

Well the answer is that ESX (& ESXi) are still using the SCSI-2 Standards. Yes the same SCSI-2 that was from ~1995.  The ultimate issue has to do with the way the standard addresses the “READ_CAPACITY” of the LUN.  It uses a 10-byte call for the capacity, which limits the return to a 32-bit number. (It actually is just under a 32-bit number, the last value of 0xffffffff is acutally reserved, and thus can’t be used.  This limits you to 2199023255040 bytes, which is just under the 2TB limit.

The only current work-around is extents, which are much less then ideal.

So until VMware decides to update their outdated storage methodology, we’re stuck with the 2TB limit.

2 thoughts on “Why the 2TB Limit in ESX 4.1

Leave a Reply

Your email address will not be published. Required fields are marked *