SAN with ESOS and VMWare ESXi
Use ESOS to create a SCST device for VMWare ESXi
General
ESOS is a Storage Solution for creating SCST devices (Group of Disks that gets assigned to a Target). Target refers to the PWWN of the HBA that is plugged into your Storage. ESOS is installed on a USB drive and loads its configuration into the systems RAM. An Initiator will be connected to the Target over a Fibre-Channel Switch to let VMWare access the Disks. The Initiator is also a PWWN of the HBA that is plugged in the VMWare ESXi Server.
Topology
I connected two Dell R620 Server over Fibre Channel to a Nexus Switch.
Equipment
- VMWare ESXi
- ESOS Storage
- Cisco Nexus 5548UP with FC license
- 2x Dell R620 Server
- 2x Dell 300GB Hard Disk
- 2x QLE2560 8Gb FC PCIe HBA
- 4x Cisco SFP 8G SW
- 2x OM2 lc/lc multimode Fiber Cable
Physical Installation
First I put the HDDs in the Dell R620 Server, which will have ESOS Storage installed on it. You have to assign a vdisk for every physical Disk in the inbuilt Servers RAID Controller PERC H710 press CTRL + R at boot. The vdisks are needed if you want to create a software RAID with ESOS what we will do in our case.
Hint: You could also just use this inbuilt RAID Controller to create RAIDs and archieve redundancy without any additional software like ESOS.
Then I connected the two QLE2560 HBAs to the PCI slot in both Servers.
Here is a picture of the inside of the Dell R620.
Then I inserted the four SFPs. Two in the HBAs and two in the N5K. I only had three Cisco SFPs but I used a SFP from another vendor. You just have to make sure you put this SFP in the HBA and not the N5K since the Switch only recognizes the Cisco SFPs. Also all SFPs have to be same speed (8Gbit).
Lastly I plugged in the FC cables and done! Here is a picture of the topology. (Ignore the switch on the top and the ethernet cables.)
OS Installation
I downloaded the ESOS zip file from
unzip esos-master_7842102_dgvszq.zip
lsblk #check which volume your usb device got
sudo umount /dev/sda1 #remove the logical disk from your system
cd esos-master_7842102_dgvszq/
sudo ./install.sh
/dev/sda
Then in the Dell R620 BIOS I changed the Boot order so the Server first boots into the USB Stick. I choose the debug mode for ESOS since the production mode wasn't working for me.
Nexus 5548UP
Before we configure the N5K we have to make sure that the FC_FEATURES_PKG license is activated. You can check this with the command show license usage.
Feature Ins Lic Status Expiry Date Comments
Count
--------------------------------------------------------------------------------
FCOE_NPV_PKG No - Unused -
FM_SERVER_PKG No - Unused -
ENTERPRISE_PKG Yes - Unused Never -
FC_FEATURES_PKG Yes - In use Never -
VMFEX_FEATURE_PKG No - Unused -
ENHANCED_LAYER2_PKG No - Unused -
LAN_BASE_SERVICES_PKG No - Unused -
LAN_ENTERPRISE_SERVICES_PKG No - Unused -
--------------------------------------------------------------------------------
The N5K config is pretty straightforward. I created VSAN 1000 and a Zone and added the two PWWNs to the Zone. Just be sure that you use the PWWN and not the NWWN.
Here is the config with comments.
version 7.3(7)N1(1)
hostname N5K
username admin password 5 ******* role network-admin
username CISCO password 5 ******* role network-admin
ip domain-name CISCO.net #for SSH
crypto key param rsa label SSH-KEY modulus 2048 #for SSH
slot 1 #I declared some interfaces as ethernet for another project.
port 1-16 type ethernet
port 17-32 type fc
vsan database
vsan 1000 #is like VLAN in ethernet
vsan 1000 interface fc1/17
vsan 1000 interface fc1/19
fcdomain domain 10 static vsan 1000 #domain has to be unique on every switch
interface fc1/17
no shutdown
interface fc1/19
no shutdown
interface mgmt0
vrf member management
ip address 192.168.15.251/24 #for SSH
zone default-zone permit vsan 1000 #is like permit IP any any in ethernet. Is not really needed since we have the PWWNs.
zone name ESXi_zone vsan 1000 #zoning is like ACL in ethernet
member pwwn 21:00:00:24:ff:0e:ac:7f #ESXi
member pwwn 21:00:00:24:ff:0f:05:0a #ESOS
zoneset name ESXi vsan 1000
member ESXi_zone
zoneset activate name ESXi vsan 1000
Debug Commands
sh flogi database #should show both PWWNs
sh fcdomain vsan 1000
sh vsan 1000 membership
show zone status vsan 1000 #should show defaul-zone: permit
N5K# sh flogi database
--------------------------------------------------------------------------------
INTERFACE VSAN FCID PORT NAME NODE NAME
--------------------------------------------------------------------------------
fc1/17 1000 0xd50020 21:00:00:24:ff:0f:05:0a 20:00:00:24:ff:0f:05:0a
fc1/19 1000 0xd50000 21:00:00:24:ff:0e:ac:7f 20:00:00:24:ff:0e:ac:7f
ESOS Storage
The Storage configuration is similar to the NAS configuration that I have done.
Small tip: I like to connect to ESOS over SSH so I can switch between ESOS and N5K in the Bash pretty easily.
Also you might need to use Debug Mode when starting ESOS since the primary mode does not work for me.
Create the RAID. Press O -> Add Array.
Create the File System and mount it. Press F -> Add File System.
Create the virtual Disk. Press F -> Add VDisk File
Now press T and enable the HBA as Target.
The next three steps are the same steps as if we create a NAS so I used the three pictures of my NAS article.
Create a Group. Press H -> Add Group
Add the SCST Device to the Filesytem. Press D -> Add Device
Add the SCST Device to the Host Group. Press D -> Map to Host Group
Before we add the Initiator (PWWN of the ESXi HBA) we check that ESXi recognizes our HBA.
Back in ESOS we press H -> add Initiator and the PWWN of ESXi should appear.
And if we made everything right a session appears.
VMWare ESXi
Since I only have one ESXi host I connected to it directly instead of connecting to Vsphere so the GUI might look a bit different.
Under Devices our SCST Device that we created in ESOS should now appear.
Select it and choose new datastore.
Go through the wizard and create the datastaore.
Now if we create a VM we can select the new datastore as storage and voila we have successfully created a FC SAN.
Thanks for reading my article. If you have any questions or recommendations you can message me via arvednetblog@gmail.com.