First post! As I am fooling around with the templates and colors and such and getting used to blogging I figured I would kick things off with something simple and one of my favorite unheralded new features of Solutions Enabler (SYMCLI) 7.6 that was released at EMC World 2013: “quick meta creation”.
****UPDATE: Apparently this was enabled long before SE 7.6, SE 7.3 at least actually, so you probably already have this feature, thanks to Jason Moreland for pointing this out****
As anyone familiar with the VMAX is most likely aware Symmetrix logical devices have a size limit of 240 GB. And in most virtual environments the size of clustered file systems that are desired, such as VMFS, usually need to be much bigger than that. So the solution on the VMAX array is to create what we call a metavolume (which I will refer to as a meta henceforth because I am a lazy typist). This is a simple logical association of multiple VMAX devices and are manipulated to look like one larger device which allows the size of a device as seen by the host to be VERY large (255 total members possible x 240 GB size each–you do the math). These devices can be “connected” together either via concatenation or via striping.
Well of course this is old news, why is this the least bit interesting?
<disclaimer it may not actually be interesting and I do not claim that you will find it interesting, but I do!>
Well up until at most SE 7.3, when you created a meta you needed to first issue a command to create the members and then issue a command to create the meta. Now I know that “oh no two commands, the horror” probably is sarcastically popping into your head, it was indeed a tedious situation especially when creating tons of metas like I usually do when getting a new VMAX started. And due to the way the new command is structured the more metas you intend on creating at once the more time it saves you–and this is not a linear time saving but a logarithmic one.
Before I get into the details, one might say well what about autometa? Autometa is a Symmetrix-wide setting that when enabled and configured allows you to enter in a device size above 240 GB and then according to the size and autometa settings would create a meta for you with no additional input needed. But this setting does not always give you the granular control of member sizes and meta configuration you might want and for me in a lot of situations it doesn’t always quite fit the bill.
Okay, so the meat.
Previously this is what you did with SE to create a standard meta:
1. Create the intial devices to make up the meta. This will create 8 thin devices each 200 GB in size
symconfigure -cmd “create dev count=8, size=200 GB, emulation=fba, config=tdev;” -v commit -nop -sid 1234
Lets say this creates devices 100-107
2. Form the meta volumes. I want to make two, four-member metas each 800 GB in size (the striped variety…because…reasons) so I have to run two commands
symconfigure -cmd “form meta from dev 100 count=4, config=striped;” -v commit -nop -sid 1234
symconfigure -cmd “form meta from dev 104 count=4, config=striped;” -v commit -nop -sid 1234
Ugh kill me now that took forever. What am I to do? Try this on for size:
1. Do the same thing as before, create two, four-way striped metavolumes 800GB in size
symconfigure -cmd “create dev count=2, size=800 GB, emulation=fba, config=tdev, meta_member_size=200GB, meta_config=striped;” -v commit -nop -sid 1234
Voila! This single command now encompasses what previously took three commands. I can go home early!
So what does meta_member_size and meta_config mean? Well the latter is straight forward, put in striped or concatenated. The former, meta_member_size is the size you want the metamembers to be. So you have to do a little math. If I want a 800 GB meta, and I want it to be a four-way meta each meta member should be 200 GB. Furthermore, unlike previously, in the count=x parameter you do not count the members that are going to be created–you only put in the number of metavolumes you want to be created. It will still create eight devices with the above command, but it will create two metas automatically from those eight devices.
To further help, add “binding to pool=” for thin devices (TDEVs) to also automatically bind the meta(s) to a thin pool if virtual provisioning is being used. This will save you another command! Four commands in one.
My understanding is that there aren’t technical Enginuity requirements to do this. Just need SE 7.3 and an Enginuity level that is supported by it. I don’t have a DMX so I cannot personally test it on one.
Unisphere does have similar capabilities and works well but for you CLI people this is a nice little gem.
See this post for Unisphere instructions:
Now all I wish for is engineering to add “add to storage group=” into that command so the device can be created, the meta can be formed, bound to a pool and autoprovisioned in one command life would be complete. For any Arrested Development fans out there this is how I would feel: