I decided to write the following post after having some problems getting iSCSI connectivity to work correctly with a Dell EQL PS6500 Array with RedHat 6.
It seems that Dell have done a great job in getting the Host Integration Tools to work with RH5.5 and ESXi and also the MEM for MPIO and I love the product, but I encountered some problems when trying to install a RH6 server and connect it all up following the docs on the Dell site. The main issue I had straight way that I was predominantly using SuSE SLES as my preferred Enterprise distro, but the RPMs provided by Dell for the HIT tools and MPIO had a load of dependencies that needed to be resolved before it was even possible to start using the extended functionality that these tools offer on SuSE.
So I downloaded a version of RH6.1 to test the new tools on, only to find that this didnt work as intended. After a lengthly support call, I was told that although the documentation said that it supported RH6 what this actually meant was 6.0. – So I downloaded 6.0 and had exactly the same issues…
So I did some digging around and debugging of the installation procedure and docs. The first thing that the docs tell you to do is make sure that you are at the latest supported release of 6 and to perform a yum_update. – This in itself is a problem, as it effectively takes the 6.0 installation and makes it 6.1. I tested this once I had a working 6.0 installation by doing the yum_update, and it completely broke the ability to address the iSCSI devices properly using the Dell tools. I found this a bit worrying, particularly if you are sharing your admin roles with someone else, they could inadvertently break the entire configuration.
The instructions for actually formatting and adding the device to the system could use some more detail.
The documentation(for RedHat MPIO on EQL) states as a final step that you need to do the following(this is entirely absent from the HIT tools docs):
mke2fs –j –v /dev/mapper/rhel-test
this doesnt work at all using the HIT tools and tells you that the process could not read block 0, and gives you all sorts of wonderful messages about not being happy with the superblocks on the device. – This doesnt happen if you dont use the tools, but just use Linux native MPIO.
The only approach to this that worked was by trial and error on my part (which was very time consuming) was as follows. Here’s my checklist:
Configure SCSI on the local onboard NICS on a dedicated DELL R710 and set 4 paths (edit the /etc/equallogic/equallogic.conf file and change the [MPIO] section to contain the maximum amount of path (NICS) you intend to use) – If you dont do this you could have problems in the future as for each NIC path you are given a corresponding /dev/sdX device which sits behind the mapper tool.
Some issues with the Dell HIT tool for EQL it doesnt work well on 6.1.
- Yum update from 6.0 breaks a valid config as it effectively takes the server to 6.1!!!
- Ignore the doc, dont do a localinstall of DKMS,EQL and iscsi-initiators. Also dont grab the latest version of DKMS as it is broken even though its available on the Dell site. – at the time of posting I used dkms-2.1.1.2-1.noarch.rpm, but had problems with dkms-2.2.0.0-1.noarch.rpm.
Grab kernel-devel and gcc, gcc-headers using yum
Configure iscsi.conf and CHAP. – enter in here the CHAP password you set on your EqualLogic
Enable iscsi logins in /etc/rc.local
Run eqltune -v and run through checklist and make the necessary alterations to the kernel config,etc. – This tool is your friend!
Run ehcmcli -d to show valid paths and sessions (you should see 4 paths here if you set your MPIO settings in /etc/equallogic/equallogic.conf to 4).
Run rswcli -E -network <ip> -mask 255.255.255.0 to exclude the public NICS from accepting broadcast traffic from the EQL tool.
Use iscsiadm to discover the new LUNS and to log in the EQL LUN.
Next look in /dev/mapper for the eql-xxxxxxxx-volname LUN id. Make a note of its true dm-X number
To format the disk do not use the MPIO device. Its necessary to format the sdX devices that are available on each session. for this reason as well it means you need to set the config ahead of time at its maximum. It wont create more sessions as they are needed (this will break the LUN!!!). do this in /etc/equalogic/eql.conf
Run ehcmcli to find out which sdX devices are underneath the MPIO layer.
next run:
kpartx -a /dev/dm-X (where dm-X is the dm id associated with the eql LUN and vol name)
sfdisk /dev/sdXX (do this for each sdX)
kpartx -a /dev/dm-X
Next: mkfs.ext3 /dev/mapper/eql-lun-vol-part
mount /dev/mapper/eql-lun-vol-part
I’ve also included my working multipath.conf file from my attempts to use native MPIO on RH6.1 and not the Dell tools. You will note that the way that the scsi tools (on RH6.1) interrogate the device has changed slightly and it now expects to see SEQLOGIC not EQLLOGIC, which could explain why the yum update breaks the tool.
There is also the suggestion to do the following in the lvm.conf file, but this renders you install unbootable if you are using LVM on your main filesystem.
filter = [ r|/dev/mapper/eql-[-0-9a-fA-F]*_[a-z]$| ]
/etc/multipath.conf
defaults {
udev_dir /dev
polling_interval 10
path_selector “round-robin 0″
path_grouping_policy multibus
getuid_callout “/lib/udev/scsi_id –whitelisted –device=/dev/%n”
prio const
path_checker directio
rr_min_io 100
flush_on_last_del no
max_fds 8192
rr_weight priorities
failback immediate
no_path_retry fail
queue_without_daemon no
user_friendly_names yes
mode 644
uid 0
gid disk
}
blacklist {
devnode “^sd[ab]$”
devnode “^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*”
devnode “^hd[a-z][[0-9]*]”
}
#blacklist_exceptions {
# devnode “^dasd[c-d]+[0-9]*”
# wwid “IBM.75000000092461.4d00.34″
#}
multipaths {
multipath {
wwid 36090a0a890d37ea5f1df5414000040ac
alias MyRedHatVol
}
}
devices {
device {
vendor “SEQLOGIC”
product “100E-00″
path_grouping_policy multibus
getuid_callout “/sbin/scsi_id -p 0×83 -gus /block/%n”
features “1 queue_if_no_path”
path_checker readsector0
failback immediate
path_selector “round-robin 0″
rr_min_io 10
rr_weight properties
}
}
I’m sure theres other ways to sort this out, but the above checklist is what worked for me..