Now that I have you at attention, let us take this time to talk of things. Important things. The things your parents never told you about VMFS. First let us start with some definitions, each of these will be taken in the context of VMware Virtualization using ESX/vSphere, and VMFS, but you knew that, didn’t you? We’ll work from there to the “When & Why”. Sound like a plan? I think so!
(Note: This post brought to you by Twitter! Special thanks to @rogerlund)
The VMware Resource Guide for vSphere has this to say about extents: “An extent is a partition on a LUN. You can add a new extent to any existing VMFS datastore. The datastore can stretch over multiple extents, up to 32.” Pretty simple, no? I’ll spare you additional explanation then.
Also from the resource guide is this gem on Growing: “Grow an extent in an existing VMFS datastore. Only extents with free space immediately after them are expandable. As a result, rather than adding the new extent, you can grow the existing extent so that it fills the available adjacent capacity.”
Read another way, if your SAN supports LUN resizing, you can grow the VMFS volume (much like using diskpart in Windows Server). So now that we’re clear on the what part (you are clear, right?), we can move to discussing which one to use and when.
When & Why
To clarify, in VI3 (ESX 3.5 with vCenter 2.5) extents were your only option for expanding a datastore. What this means is that in VI3, if you needed to expand your datastore, this was how you did it. Period. This will also be the only way to go if your SAN does not support LUN resizing. Even if it does, you can’t just resize the SAN LUN while the volume is live. This causes you to call VMware support in a hurry.
This changes in vSphere 4 (ESX 4 with vCenter 4, etc), but that does not mean extents are not useful. When would you use one? The first case jumps right out at me from the definition, you’d use an extent when you can not grow the datastore, as the extent does not have any adjacent capacity that is free. This may happen when you’ve carved out another LUN for another VM or other server, and are otherwise unable to let the LUN & Extent grow into this space. Mind you, there may be some methods at the SAN level to move these around, however, there may be other constraints in your environment that prevent this, division or responsibility, etc.
When do you grow a datastore? Well, as stated above, you can only do this in vSphere 4. Growing VMFS comes into play when you have otherwise filled your VMFS volume and cannot risk a storage VMotion (the snapshot for this is stored on the host), and cannot afford the downtime that happens with a “Cold Migration”. Growing gives you an option above and beyond adding an extent, which has historically been ‘interesting’ (Just search for ‘VMFS extents’ on Google & the VMware forums).
Well, I could discuss the “How” for each of these here, and fill more lines on the screen, but that would both annoy you, and put me in the awkward position of trying to cover material that some much smarter folks have already covered. So to that end, @DuncanYB gives you a how-to on growth on his Yellow-Bricks blog. The extent part is spelt out about three comments down in this VMware communities post.