Merge Free Space on Dell PowerVault MD3000i

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!