Bypassing NetApp’s LUN Geometry Limit

20160428_lun_geo

When you’re creating a LUN for the very first time, you may not consider the future, but there’s an aspect to LUN sizing that can be very important further down the road. Getting this detail wrong means sometime in the distant (or not) future copying all your data from this LUN onto a new one. Think this one through.

When creating a LUN, there is an attribute of its configuration, its geometry, which is an indication of its sizing; the geometry is related to the mapping of physical disk objects, and is part of the SCSI protocol.

The important thing to consider is that the initial geometry creates a limitation on the maximum possible size to which the LUN may later be grown. This limit is 10x the original LUN size. If you start out with a 25GB LUN, this LUN cannot exceed 250GB when later being resized. The symptom you may observe is that no matter how large you make the containing volume, a LUN cannot be expanded in Snapdrive.

LUN geometry can be queried at any time via the NetApp CLI:

priv set diag
lun geometry /vol/your_volume/your_lun

(and when done, be sure to:)
priv set

So in my case, we created a new LUN many years ago for a new product whose data was relatively tiny, and this fledgling application using this product was still quite young. Moving forward five years, this application now contains data from hundreds of clients, tens of thousands of users, and here I am hitting the 10x limit. In a real bind, I can’t increase my LUN size and the drive is filling up.

In the past, I’d gone through this growing pain with a SQL Logs volume; I spent 10 hours in the middle of the night xcopying data from the old, maxed out LUN, onto a new LUN whose initial size was pretty much the same (but of course it meant this new LUN could grow much larger, due to the larger initial LUN size, and therefore, differing geometry).

Some Googling revealed everyone having the same recommendation: “sorry, copy your data to a new LUN”. Snapmirror won’t work. ndmpcopy won’t work. The LUN’s geometry will be replicated along with the data itself, so forget it.

But, some expert Googling revealed this gem, a seemingly obscure NetApp KnowledgeBase article, that provided a hacky workaround for defeating the LUN geometry imposition.

NetApp KnowledgeBase – What is the maximum size to which a LUN can be resized?

The key command is one tucked away under the priveliged diag commands, and involves manually modifying the cylinder size, which forces a recalculation of the geometry for the LUN. I’m pleased to report that it works.

20160429_lun_expanded

Works! Successfully increased the max resize size in 5 seconds.

There was no application downtime required, there was no long filecopy process, and Snapdrive immediately saw the available headroom allowed for sizing up the LUN. Best of all, I got to eat dinner with my family that night.

One caveat, this will not work in Clustered DataONTAP, according to the article.
Advertisements

4 thoughts on “Bypassing NetApp’s LUN Geometry Limit

  1. Pingback: NetApp LUN geometry | content.untony.org

    • I would advise that before implementing this change, you quiesce the LUN (stop applications that are accessing it, and possibly set it OFFLINE from the server side, or detach it altogether), then snapshot the volume in which it resides.

      Like

What would you like to say?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s