This is a topic that I get asked about a lot and a recent internal email thread prompted me to write a post about it. On a Symmetrix array if you want a volume larger than 240 GB you need to create a metavolume. When creating a metavolume you have two configuration choices; concatenated or striped. There are many benefits to striped over concatenated (all of them performance-related) but one disadvantage. Due to their nature striped metavolumes are harder to expand. Until a few years ago thin striped metas couldn’t even be expanded online. So the decision was easy–do you think you will need to expand or not. In Enginuity 5875 and Solutions Enabler online expansion of striped metavolumes was allowed.
To expand one you need an identically configured metavolume configured as a BCV type and fully persistently allocated to a thin pool. During the process Enginuity copies the data to the BCV device and then adds the new device(s) to the original meta and then re-stripes all of the data back. Often I hear customers ask how to make sure to create an identical device and the answer is usually just “look at it and do the same thing”. Not ideal. But there is a better answer.
The Symmetrix configuration change command “symconfigure” offers the ability to create a new device by copying the configuration of an existing one. The symconfigure copy device command is in fact supported for use with metavolumes which is something that a lot of people don’t realize. I personally didn’t either for the longest time either, I was thrilled to find out that it was. Takes a lot of the guess work out of creating that BCV.
So the process:
Step 1: Identify the Symmetrix device ID of the metavolume you want to expand. This can be done a million ways and depends on your operating system etc. but for the case of VSI the easiest way is to use VSI. In the image below the device ID of my VMFS is 06CF.
Step 2: Create the BCV. Note this can be done in Unisphere or Solutions Enabler. SE first.
Using the symconfigure copy command I am going to create a new metavolume in one command identical to my source. In every way but one. I am going to override the config to indicate that the new volume will be a BCV instead of just a standard TDEV.
symconfigure -cmd "configure 1 devices copying dev 6CF overriding config=bcv+tdev;" commit -sid 38
This will create my device exactly how I need it. See Unisphere instructions via GIF below. Essentially just find the device and choose duplicate. The drawback is you cannot override the config. So it requires an extra step after to change it to a BCV. These processes will also bind the device to the same pool, so that’s not needed!
Step 3 Preallocate the device fully and persistently. SE or Unisphere.
symconfigure -cmd "allocate tdev 6D7 start_cyl=0, end_cyl=last_cyl, allocate_type=persistent;" commit -nop -sid 38
Step 4. Expand the meta. Choose how much larger you want the device to be and add those new devices to the meta. Usually you want the meta to be a count of 4, 8, 16 or 32. So I making my 8 way into a 16 way. Doubling the capacity. The members, however many you add, just need to each be the same size as the original members. Use SE or Unisphere
symconfigure -cmd “add dev 6DF:6E6 to meta 6CF, protect_data=TRUE, bcv_meta_head=6D7;” -v commit -sid 38
Note that this process can take a long time. Depends on how much data must be re-striped, what kind of workload is going to the device (especially the change rate) and the available VMAX resources. Recommend doing it when the device is not at its peak I/O period.
Step 4. Rescan your host and add the new capacity to the filesystem. For VMFS growing check out our techbook at page 69 here:
Once it is done go ahead and delete the BCV or re-purpose it for something else.