As my 2015 resolution I decided to write a little bit more with practice examples of some day-to-day tasks that you can come across when working with Storage Arrays. Lately I have posted a quick introduction to EMC VNX, if you haven’t read it yet, give it a try: EMC VNX – Unisphere – Quick overview. Today I would like go to thru the process of creating a Storage Group, masking a LUN and connecting a host. Those are basics steps to actually privision the storage from EMC VNX. So, let’s start
Create a LUN
First step is to create a LUN. I will use graphic interface in this example to guide you thru the process. So, first you have to log in to EMC Unisphere and choose the VNX array you wish to work with. Once it’s done, go to the top menu and select a Storage section, choose LUN
Unisphere Storage menu
Once you choose the option you should see list of all your LUNs already created and at the bottom of the screen you will find ‘Create’ button
Unisphere – LUN section
You can personalize the view of the table or export it for example to CSV and more. But here we focus on adding new LUN. When you click Create button you will see new pop-up window like that:
Create new LUN
Of course your view won’t be identical. It all depends on your configuration. In that example there is a pool created from RAID6 groups called ‘Pool-Bronze’.
The basic things you should fill and understand is :
- Do you want Pool LUN or RAID Group LUN?
- Should the LUN be thin provisioned, should it be deduplicated?
- what should be the capacity, and what should be the LUN ID
In our example we are going to create a Pool LUN, with size of 100 GB. For that I will use already defined and already created Storage Pool called Pool-Silver. I will make the pool Thin (which in few words means that the LUN will not take 100GB of my available capacity but more or less the size that is actually used by a host, so at the beginning it will be very small). I will choose the LUN ID to 43023 (just an example, not any particular reason for that – but you have to remember that LUN ID is unique for a storage system. And I will call the lun testlun_1. Again the LUN Name is unique as well.
Create new LUN
After you click ‘Apply’ you will be promped for confirmation, and once given, the LUN should be created in couple of seconds, with information ‘success’.
That’s it. LUN created, piece of cake, right?
Connect a Host
In first step we have created a LUN. Now we need a host that can access the LUN. In my example we will create a new host. Let’s assume an example: there is a new host being installed in our environment. It’s not powered up yet but we know it’s HBA WWN (WWpN /WWnN).
Since it’s not powered up yet, we will not see it in our hosts available. In real life situation the host would be probably first connected and either auto-registered with Host Agent or Unisphere Server Utility (or similar software), or we would have to manually register the host.
In our example we will go straight to manual registration.
For that go to Host section in menu and choose Initiators.
Unisphere Host menu
All hosts connected to SAN have Initiators (at least one). Initiator is a pair of WWN/IQN address and Storage Processor Port that it’s connected to.
You should see a table similar to this one:
Unisphere – Initiators
OK – this is getting tricky how to not make this post confusing and too complicated. What you see is list of Initiators. Very important rule: One initiator might be only in one Storage Group. Period. No exception. The rule is that one host can be in one Storage Group. But if you look closely at this table you will notice that usually one host have more than one initator, therefore there is a trick to put single host in more than one Storage Group.
Let me first give you an example how usually the connection between Host and Storage Array looks like:
Most often we should have at 4 Initiators per host:
- host_HBA_1 connected to Port_X in Storage Processor A
- host_HBA_1 connected to Port_Y in Storage Processor B
- host_HBA_2 connected to Port_Z in Storage Processor A
- host_HBA_2 connected to Port_U in Storage Processor B
In such configuration we should have basically no single point of failure to break the connection between storage and Host. Of course I assume that there are two Fabrics as well.
But let’s not make this post to complicated. We will add a host with Single Initiator connected to Storage Processor A port 5. At the bottom of the screen you should notice an option Register.
Create Initiator Record
As you can see the WWN (WWnN:WWpN) in example is not a valid address, but it’s good enough for our example. I have selected port A-5, Failover Mode Active-Active (ALUA), and register it as a new Host called test_host with some local IP address.
I don’t want to go in the details right now of all the options. Just click OK.
Create Initiator Record
Success. We have created a new Host. Of course it’s not connected. But assuming that we have put valid WWN once the host is connected to the selected port (in my example SPA-5) it will be up and running.
Unisphere – our “fresh” Initiator
There it is – our fresh Host with one initiator. As you can notice it’s a part of ~management Storage Group. That it’s actually a special SG, where all Initiators are put if that are in no “real” Storage Group.
OK… To confirm that our freshly added Host exist let’s go to Host List option (also in Host menu)
Unisphere Host List
As you can notice it’s Manually Registered. Again – task completed. We have our new host added to the Storage System (not physically connected, but that’s OK).
Create a Storage Group
If you are not sure what Storage Group is and why we actually need it, go thru this post: EMC VNX – Access Logix, LUN masking and Storage Groups.
To Create a Storage Group simply go to Host > Storage Group section. Click Create and all you have to give is a name:
Create Storage Group
I have created the Storage Group called new_SG. Once you hit OK you will be prompted with question: are you sure..? Of course I’m sure! Then you should get a window like that:
new Storage Group
As you can see, the job status is success and we can actually straight away say “Yes, I want to add LUNs and/or connect host”. Let’s do it. next sreen you can see is:
Adding LUNs to Storage Group
Fist you have a choice to Add LUN(s). I have look for the LUN I have created in step 1, click on it, and click ‘Add’ on the right side.
Now, there is an important thing right here.. Choosing Host LUN ID. As you can see I didn’t put any value, the storage system will auto assign the Host LUN ID with the next available (in this case it will be 0, since there is no LUN present in this Storage Group). To learn more about HLU/ALU again, take a look at post EMC VNX – Access Logix, LUN masking and Storage Groups.
You cat ‘hit’ OK, or Apply. If you plan to attach some hosts as well, just hit Apply, which will add the selected LUN and will not close the window. Look: Connecting Host is just another tab on the same window.
Connect Host to Storage Group
All you have to do is select from hosts available in left field and move it to the right. Note that you can filter for Host Already connected, but if you choose from hosts that are already connected you will remove the host from the current Storage Group and move it to the new one (really, really dangerous idea, if you are not aware of that!). As I mentioned before, there is a way of putting same Host in two different Storage Groups, but let’s keep it for another post.
It may look a little bit complicated at first, and actually you have to be really careful during all operations. But at the end, if you stay focused it’s not that big of a deal. I think the most important things you should remember are:
- You can add same LUN to few Storage Groups. Just change “Show LUNs” option to see LUNs already connected to different Storage Groups
- You can add (by default) one host to only one Storage Group! If you choose the host that is a part of different Storage Group you will remove it from the first one. Make sure you know what you are doing! If the Host is part of ~management storage group you are good to go – it’s “special container” for all not-assigned Hosts.