Filed Under (church, CITRT, Geekspeak, Work) by Justin on 2009-01-11

I recently ran into an issue while trying to manipulate some virtual disks on our MD3000i SAN at GCC. I know lots of other CITRT folks either have one of these “inexpensive” SANs, so I thought I’d document this here. Apologies to all my friends and family who have been haggling me to post something NON-TECHIE, but this is NOT that post.

A quick bit of background: We’re using our MD3000i strictly as media file archive and really want the SAN to be one really large LUN/partition so that the space is the most flexible. When we first implemented the MD3000i, we were limited to 2TB per LUN/partition and were splitting things up by year. 2007 was about 1.8TB of data and with one month remaining in 2008, the 2008 LUN was already full. You can see where we were already having an issue with 2TB limit.

Dell recently released new firmware for the MD3000i that supports a LUN size of larger than 2TB. I applied that before leaving the office on Friday and quickly started deleting the virtual disks that didn’t have any real data on them yet so I could create a new, larger partition and begin moving data around. Much to my surprise, I saw this in the Dell Modular Disk Storage Manager:

The stupid controllers left the Free Space from the virtual disks I removed in their respective physical locations on the disk. This was stupid, so I Tweeted about it. I exchanged a few tweets back and forth with Derek Mangrum and he hooked me up! He had ran in to the same issue before and sent over a rather handy list of commands he’d used on his own array as well as the SMcli reference guide from SANtricity, who apparently is the actual manufacturer of the Dell-rebranded MD3000i. I had to tweak the command a little because we have dual controllers, but this is the final recipe:
C:\Program Files\Dell\MD Storage Manager\client>SMcli controller_0_IP  controller_1_IP -p yourarraypassword -c “start diskGroup [1] defragment;”

If you only have a single-controller, you can eliminate the second IP and be sure to replace “yourarraypassword” with uh, your array password. Also, if you have more than one diskGroup, replace the 1 after diskGroup with the diskGroup you wish to “defragment.” And yes, the brackets around the diskGroup number MUST STAY or you’ll get syntax errors.

For what it’s worth, I despise the SMcli tool. I’d much rather have a REAL command-line interface directly on the array controllers. My opinions aside, SMcli is insanely powerful and you can do a lot more through that tool than you can through the Dell MDSM GUI tool.In a few days, I’ll post again about how to use SMcli to expand a LUN. Stay tuned!

(15) Comments   


Jeremy Good on 11 January, 2009 at 1:02 pm #

I’ve been thinking about updating the firmware on our MD3000i as well. How did it go for you? Were there any issues other than the fragmented drives? Thanks for the post!

Derek Mangrum on 11 January, 2009 at 2:37 pm #

Glad this worked for you! And, thanks for the shout-out.

I didn’t know about the larger-than-2TB LUN stuff… Guess I should have read the release notes better! hehehe Better go do that now.


Spencer Ryan on 9 March, 2009 at 2:37 am #

Any updates on the SMCli commands to expand a LUN? I’m looking to do this right now, and they would be helpful!

Justin on 18 April, 2009 at 8:57 am #


I’ve not personally done this and I don’t have the SMCli guide in front of me right now, but I do remember seeing how to grow a LUN documented in the guide. Let me know if you can’t find it and I’ll be glad to help you track it down elsewhere.

Eric on 24 April, 2009 at 10:21 am #

I had the exact same problem with our MD3000i after recreating the virtual disks, and this fixed it. Thanks for the informative post.

A dell employee on 5 June, 2009 at 2:59 pm #

SMCli -n %arrayname -p %password -c “set virtualDisk [“virtualdiskname”] addCapacity=x MB;”

However – why are you not using MDSM? It has a GUI way to do it in 3 clicks, then you use diskpart to expand the disk in windows – unless you aren’t using windows of course and then you would use the appropriate expand util.

Chris on 8 June, 2009 at 6:23 pm #

Great site. I have found the info here very helpful. I have a couple of questions for you about how long the merge took and how the array performed while it was happening… Any way I could PM you?

Wes on 15 June, 2009 at 4:54 pm #

To expand a LUN, do smcli -p -c “set virtualdisk [\”VDName\”] addCapacity=1000000000;”

Doug on 23 July, 2009 at 9:17 am #

to “A dell employee” re:
SMCli -n %arrayname -p %password -c “set virtualDisk [“virtualdiskname”] addCapacity=x MB;”

However – why are you not using MDSM? It has a GUI way to do it in 3 clicks, then you use diskpart to expand the disk in windows

Where in the GUI can you expand a virtual disk? I must be missing it. Thanks.

Keenan True on 13 April, 2010 at 8:42 pm #

Awesome, I’ve been wondering how to do this, but was dreading calling Dell where I gave myself about a 50/50 chance the tech would a) understand and b) show me how to do it.

udi on 11 May, 2010 at 2:45 am #

work perfectly ,

thank you


Jonathan on 20 May, 2010 at 10:11 pm #


Jeremy Good on 8 July, 2010 at 10:37 pm #

The commands didn’t want to work for me. This is what I ended up doing:

SMcli ArrayIpAddress -p yourPassword


start diskGroup [1] defragment;

Then you can check progress with:

show virtualDisk [“LUN_Name”] actionProgress

Thanks for the help!

mcastrejon on 6 August, 2010 at 10:32 am #

i am afraif of deframenting my md3000i i have a vmware data storage, how are the performance gains?

Rado on 2 March, 2011 at 2:33 pm #

I have another issue with the LUN expanding command:

An error occurred while attempting to increase virtual disk capacity for virtual
disk Data2 at line 1.
Error 54 – The operation cannot complete because the number of physical disks selected is not valid.
The command at line 1 that caused the error is:

set virtualdisk [“Data2”] addCapacity=2199023255552;

Script execution halted due to error.

SMcli failed.

I know it is not logical but I even try to specify the 3 new added disks, that are already in the RAID5 as free capacity, due to I do not have any other available, and the result ofcourse is:

Physical Disk [0,7] unavailable for virtual disk creation in the command at line
1. The command at line 1 that caused the error is:

set virtualdisk [“Data2”] addCapacity=2999006011588 addPhysicalDisks=(0,7 0,8 0,9);

Script execution halted due to error.

SMcli failed.

Is that problem related to some 2TB limitation on the MD3000i?

(My firmware version is “”)

Post a Comment