Highlighted
2 Iron

VMAX IE - Host and Array LUN IDs

Jump to solution

I've been working and learning VMAX for a few months now, and am still struggling with some of the concepts.  I started out on VNX and am trying to draw some parallels between them conceptually, even though I know they are very different.

I'm having trouble with the idea of LUNID's, as well as how dynamic LUN addressing and Consistent LUN plays into that.

I understand that a given device will have a device ID.  This seems to correlate approximately to the array LUN # for a VNX LUN (which seems to serve as both the LUN ID and Array LUN number).

Then when a device is mapped to a given FA port, there is a LUN ID associated with that.  This can be seen with e.g. symcfg list -sid ## -avail -addr -fa 1E -p 0.  The last column in this case is a LUN column.  This starts at 0 and is consecutive.  Again this appears to be an Array LUN ID, having nothing to do with Host LUN ID, and would again correspond to the array LUN # on a VNX LUN.  Meaning that if there is a host restriction that LUN ID's higher than 255 are not addressable, this particular ID being higher or lower than that would be irrelevant.  And I can't have multiple LUNs with ID 0 for boot LUN purposes.


And finally, there appears to be a Host LUN ID also that is shown in this thread:Can I change Host LUN ID on vmax? This is set on a per storage group basis.  This seems to correspond to a VNX HLU which can be set when adding LUNs to a storage group.

Summary - A device will have a DeviceID, then an array LUN ID (which will be consecutive on the particular FA it is mapped to), and then a Host LUN ID (which can be configured per storage group).

So my questions are:

  1. Is this correct?  If not, which parts am I missing or confusing?
  2. Is setting the -lun # in a SG or MV from CLI the same as using the Dynamic LUN addressing from within Unisphere when adding devices to a storage group?
  3. If you don't use the -lun flag, do all storage groups start from 0 as an HLU?
  4. How can I (in unisphere or via CLI) view the host LUN IDs for a given volume, or for all volumes on a given director/fa/port.
  5. The Consistent LUN flag is set on the initiator group level and guarantees that LUN values be consistent across all FAs. Based on this I'm assuming this is the Host LUN ID portion, and not the array LUN ID?  In practice however this seemed to apply to the array LUN ID.
  6. In the VMAX IE training, when dynamic LUN addressing is discussed in Autoprovisioning Groups Overview, they point to the FA LUN ID displayed by my symcfg command above (which I'm interpreting as the array LUN ID) and then talking about host addressing issues and Host LUN IDs.  On the next slide, it says that you can get around it and it displays the -lun ### command.  If my reasoning is correct, then the FA LUN IDs they point out are actually irrelevant to the topic of Host LUN IDs.  Is this right?

Thanks for any help or clarification on this topic. 

Reply
1 Solution

Accepted Solutions
Highlighted
1 Copper

Re: VMAX IE - Host and Array LUN IDs

Jump to solution

Your understanding is correct.

VMAX Family arrays use Dynamic LUN Addressing by default.

Front End ports can be shared by multiple hosts as you are well aware.

The Array LUN ID (or address) starts at zero and increments upwards.

Clearly this LUN ID used as is may not be appropriate from a Hosts perspective. As you indicate a host may expect to see the host lun ID of 0 for the boot lun.

So when you are creating a Masking View or subsequently adding more devices to an SG which is already in a Masking view, one has the option of specifying what the Host LUN address should be. Now if you dont specify the Host LUN address, then the command examines the Host LUNs already in use and uses the next available host lun address.

If we assume that we are creating a brand new masking view, if I dont specify the -lun option or change the default in Unisphere, then the Host LUN addressing will start and 0, 1, 2 and so on.

However you can override this by using the -lun option in CLI or change it in Unisphere via the Set Dynamic LUNs button.

Taking it further. Let us say we presented 4 devices to a host. By default the Host LUN ID would be 0,1,2 and 3.

Let us say we present 4 more devices. By default the Host LUN Id will now start at 4 unless you override it.

Bottom line if you do nothing VMAX will do the right thing and start the Host LUN id at 0 if nothing exists or the next available Host LUN id.

Now if a host has multiple HBAs then it is a very good idea to use the Consistent_LUN option. This will ensure that the host LUN ids are consistent across all your  HBAs. Just be aware the if you plan to use Consistent_LUN, do it right from the start. Doing it after the fact is not easy.

View solution in original post

Reply
7 Replies
Highlighted
1 Copper

Re: VMAX IE - Host and Array LUN IDs

Jump to solution

Your understanding is correct.

VMAX Family arrays use Dynamic LUN Addressing by default.

Front End ports can be shared by multiple hosts as you are well aware.

The Array LUN ID (or address) starts at zero and increments upwards.

Clearly this LUN ID used as is may not be appropriate from a Hosts perspective. As you indicate a host may expect to see the host lun ID of 0 for the boot lun.

So when you are creating a Masking View or subsequently adding more devices to an SG which is already in a Masking view, one has the option of specifying what the Host LUN address should be. Now if you dont specify the Host LUN address, then the command examines the Host LUNs already in use and uses the next available host lun address.

If we assume that we are creating a brand new masking view, if I dont specify the -lun option or change the default in Unisphere, then the Host LUN addressing will start and 0, 1, 2 and so on.

However you can override this by using the -lun option in CLI or change it in Unisphere via the Set Dynamic LUNs button.

Taking it further. Let us say we presented 4 devices to a host. By default the Host LUN ID would be 0,1,2 and 3.

Let us say we present 4 more devices. By default the Host LUN Id will now start at 4 unless you override it.

Bottom line if you do nothing VMAX will do the right thing and start the Host LUN id at 0 if nothing exists or the next available Host LUN id.

Now if a host has multiple HBAs then it is a very good idea to use the Consistent_LUN option. This will ensure that the host LUN ids are consistent across all your  HBAs. Just be aware the if you plan to use Consistent_LUN, do it right from the start. Doing it after the fact is not easy.

View solution in original post

Reply
Highlighted
2 Iron

Re: VMAX IE - Host and Array LUN IDs

Jump to solution

Thanks very much for the clarification, that really helps me understand this better.

A couple of minor follow up questions.

You are saying Consistent LUN will set/require that the Host LUN ID is consistent across all FA ports.  Does this mean that the array LUN ID will not be set consistent, or will it also be included?  Mostly I'm wondering about this for future FA adds, because I know this can be problematic with Consistent LUN.  As an example, say I'm presenting a device using Consistent LUN across 4 FA ports, and then I want to add it to another 2 FA's for additional paths.  In this case, does it only matter that there is no matching Host LUN ID on the additional 2 FAs for that host?  Or does it also matter that the array LUN ID is not already taken on those 2 FAs?

Finally, I noticed that if I use SYMCLI and do a list detail on a masking view, under the storage group I can see Host LUN ID for existing LUNs in the Host LUN column.  Is this information viewable somewhere from within Unisphere, or only via CLI?

Reply
1 Copper

Re: VMAX IE - Host and Array LUN IDs

Jump to solution

Consistent lun is from the perspective of the host. So you are trying to keep the host lun Id consistent.

So for your case where you start with 4 fas. You have same host ids on all paths. When you add two more fas if consistent lun is set then your devices will have the same host lun ids on these two new paths as well.

The array lun Id may or may not match the array lun id on the other fas. This is because thse fas could be used by other hosts and other devices may be mapped to these fas. What is important is that the host lun ids match.

in Unisphere you can see the host lun ids by navigating to Hosts > Masking Views. Click on a masking view and then click on the View Connections button. In the connections view in the bottom of the page the LUN column is the Host lun Id.

Reply
Highlighted
2 Iron

Re: VMAX IE - Host and Array LUN IDs

Jump to solution

Excellent, thanks again!

Reply
Highlighted
3 Argentium

Re: VMAX IE - Host and Array LUN IDs

Jump to solution

thanks again Dynamox.

as usual, I'm looking in the wrong place.

Reply
Highlighted
2 Bronze

Re: VMAX IE - Host and Array LUN IDs

Jump to solution

Thank you for providing detailed clarification of @raid-zero's line up of questions.

Example commands were modified ran successfully against our array to gather the information I needed. 

Reply
Highlighted
2 Bronze

Re: VMAX IE - Host and Array LUN IDs

Jump to solution

List of questions are right in line with the task I was working to figure out. Great Ask...

Reply