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:
As someone that used to configure numerous Symms a year, I find that useful. Less so in my current job than before.
Not as great a leap forward as virtual provisioning. Was, but still a great step.
Cody congrats for the new blog , and thanks for the excellent post.
Before SE 7.6 autometa was very limiting with Minimum Auto Meta Size, Member Size and Configuration (Concatenated/Striped) defined as symm wide parameters, and I’ve never used it, since I could only use one configuration. This is so much better now, I will definitely use it.
BH
we have been using auto-meta for a while, not only for regular tdevs but i also like to use it when i need to build hundreds of vdevs.
Thanks for reading all of you! Yeah autometa certainly is useful but in the situations where it isn’t ideal this fills the gap nicely I think.
How much “cloud” do you have with symcli developers, some features are looong overdue (expanded symstat functionality) ?
No authority over them but if there is something you want specifically let me know and I will try!
I believe that option was enabled much earlier than SE 7.6. I have been using it with our VMAX 20k since it was installed last year. At that time we were running SE 7.3.2.2 and I was able to find the command syntax in the SE CLI Command Reference document for 7.3 as well. One thing to keep in mind is that Autometa will still take priority at times. So if you try to create a Meta that is smaller than the Autometa size, it will fail. On the flip side, you sometimes also have to modify the Autometa size if you want to create a single device that is larger than the Autometa size.
Yeah looks like you are right! Wow don’t know how i have missed that for so long. Thanks Jason. I saw it listed on an internal doc as a new feature, guess that was incorrect!
Jason,
for building single device that is larger then the autometa size, just set device size and meta_member_size to the same value.
Nice information, how do you enable/disable autometa?
Thank you
Thanks!
Auto meta is enabled via symconfigure:
set symmetrix [auto_meta = ]
[min_auto_meta_size = n [MB | GB | CYL]]
[auto_meta_member_size = n [MB | GB | CYL]]
[auto_meta_config = [striped | concatenated | NONE]];
I wants all the devices wwn in single command from single storage frame. Can you please send me the command..
Thanks in Advance!!!
Sorry I no longer work at EMC so I do not have access to be able to give you the syntax. I would recommend posting on the EMC Community forums.