1. Difference between LUN OS type and igroup OS type?
What is LUN OS type?
LUNS OS type or the LUN Multiprotocol Type specifies the OS of the host accessing the LUN, and based on that
it determines the layout of data on the LUN, the geometry used to access that data, and properly offsets the
LUN to ensure it is properly aligned with upper layers of the file system. If you do not select the correct LUN OS
type, it may result in a misaligned LUN and eventually lead to performance issues. This OS type property also
determines the minimum and maximum size of the LUN.
The LUN Multiprotocol Type values are solaris, solaris_efi, windows, windows_gpt, windows_2008 , hpux, aix,
linux, netware, xen, hyper_v, and vmware. When you create a LUN, you must specify the LUN type. Once the
LUN is created, you cannot modify the LUN host operating system type.
Note: Do not confuse LUN OS type with igroup OS type; always select the correct LUN OS type. For example –
If you are manually creating a LUN for Windows 2008 OS using NetApp’s System Manager or through the
ONTAP console, make sure ‘windows_2008’ LUN OS type is selected, and igroup OS type of ‘windows’. In case
you have selected ‘windows’ as LUN OS type for Windows 2008 and ‘windows’ for igroup OS type, this will lead
to misaligned LUN.
Following example shows LUN OS type selection menu during LUN creation via NetApp System Manager.
2. What is igroup OS type?
Indicates the type of host operating system used by all of the initiators in the igroup. All initiators in an igroup
must be of the same ostype. The ostypes of initiators are solaris, windows, hpux, aix, netware, xen, hyper_v,
vmware, and linux. You must select an ostype for the igroup.
Following example shows igroup OS type: [Point to be noted here is – The menu selection of igroup OS type
looks similar to LUN OS type in once instance, but if you look carefully, igroup OS type selection is very generic
and does not go into types of OS within the particular OS type as in the LUN OS type selection. For example – It
uses ‘windows’ property for all the flavours of windows]
Igroup in itself is useless unless it is associated with a LUN, and that brings the next question –
What is LUN mapping?
LUN mapping in simplest of definition would be the process of associating a LUN with an igroup. When you
map the LUN to the igroup, you grant the initiators in the igroup access to the LUN. You must map a LUN to an
igroup to make the LUN accessible to the host. Data ONTAP maintains a separate LUN map for each igroup to
support a large number of hosts and to enforce access control.
3. Creating LUN and igroup though command line: [FYI: These days we rarely create LUNS this way; we
rather use System Manager or SnapDrive on the Host Side for provisioning SAN LUNs]
Filer>lun setup
Note: the "lun setup" will display prompts that lead you through the setup process; else you can manually
create them using absolute commands.
# Create the LUN
Filer>lun create -s 100m -t windows_2008 /vol/tradvol1/lun1
# -t = LUN OS type
# Create the igroup, you must obtain the nodes identifier (my home pc is: iqn.1991-
05.com.microsoft:win2k8r2)
Filer>igroup create -i -t windows win_hosts_group1 iqn.1991-05.com.microsoft:win2k8r2
# -t = igroup OS type (This is more of a OS segregation object)
# Map the LUN to the igroup
Filer>lun map /vol/tradvol1/lun1 win_hosts_group1
Some facts about LUN OS type and igroup OS type:
LUN OS type cannot be changed once it is set as shown in the Figure below:
4. Whereas,
igroup OS type is an editable field, in other words, this property can be edited even after the igroup creation.
(This is B’cos it more of an OS masking for the initiators) as shown in figure below.
The next obvious question would be – Is it disruptive?
Well, I tested this on my Linux and windows hosts, during IO operations and nothing happened. So, basically it
can be changed. This also makes me believe that it is just an attribute to ensure that initiators are not a
member of igroups of differing ostype, and possibly has no role in the underline SCSI operations. That said, it is
my opinion and not that of NetApp’s. Always consult the NetApp Technical Support if you are not 100 % sure.
Most important of all:
An initiator cannot be a member of igroups of differing ostype. For example, if you have an initiator that
belongs to a windows igroup, you cannot add the same initiator to a linux igroup or vice versa. Also, a given
igroup can be used for FCP or iSCSI, but not both.
5. igroup example for clustered host:
You can create multiple igroups to define which LUNs are available to your hosts in a cluster. For example, you
can use igroups to ensure that specific LUNs are visible to only one host in the cluster as shown in the chart
below.
The following table illustrates how four igroups give access to the LUNs for four different hosts accessing the
storage system. The clustered hosts (Host3 and Host4) are both members of the same igroup (aix-group2) and
can access the LUNs mapped to this igroup. The igroup named aix-group3 contains the WWPNs of Host4 to
store local information not intended to be seen by its partner.
This document does not intend to cover how igroup is created for FC or iSCSI or how other igroup attribute
functions such as ALUA. There is already plenty of documentation available for that.
Prepared by,
ashwinwriter@gmail.com