====== iSCSI and Multipath ======
* Install package
# apt-get install open-iscsi multipath-tools
* Configure iSCSI
# nano -w /etc/iscsi/iscsid.conf
node.startup = automatic
# /etc/init.d/open-iscsi restart
* Configure multipath (storage with double controller)
Configure kernel modules required by storage.
# nano -w /etc/initramfs-tools/modules
+ scsi_dh_alua
+ dm_multipath
+ dm_round_robin
+ scsi_dh_rdac
+ sd_mod
# update-initramfs -v -u -k all
# modprobe scsi_dh_alua
# modprobe dm_multipath
# modprobe dm_round_robin
# modprobe scsi_dh_rdac
# modprobe sd_mod
# /etc/init.d/multipath-tools restart
Identify wwid of local disk.
# /lib/udev/scsi_id --whitelisted --device=/dev/sda
e827ca06c08b1001787e0636005c35541
Connect storage.
# iscsiadm -m discovery -t st -p 192.168.10.100
# iscsiadm -m node -T iqn.xxxxxx --login
# iscsiadm -m session -P 1
Target: iqn.xxxxxx
Current Portal: 192.168.10.100:3260,1
Persistent Portal: 192.168.10.100:3260,1
**********
Interface:
**********
Iface Name: default
Iface Transport: tcp
...
Current Portal: 192.168.10.101:3260,2
Persistent Portal: 192.168.10.101:3260,2
**********
Interface:
**********
Iface Name: default
Iface Transport: tcp
...
Configure multipath.
# nano -w /etc/multipath.conf
defaults {
user_friendly_names yes
path_grouping_policy group_by_prio
path_checker rdac
polling_interval 5
path_selector "round-robin 0"
failback immediate
no_path_retry 30
prio rdac
failback immediate
rr_min_io 100
#getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
blacklist {
devnode "^sd[a]$"
#sda
wwid e827ca06c08b1001787e0636005c35541
}
multipaths {
multipath {
wwid 105ce1ec3600b254000001a47d1a09800
alias stor1
}
}
devices {
device {
vendor "DELL"
product "MD38xxi"
hardware_handler "1 rdac"
features "2 pg_init_retries 50"
}
}
# /etc/init.d/multipath-tools restart
# multipath -ll
stor1 (105ce1ec3600b254000001a47d1a09800) dm-2 DELL,MD38xxi
size=558G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 rdac' wp=rw
|-+- policy='round-robin 0' prio=6 status=active
| `- 2:0:0:0 sdc 8:32 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 1:0:0:0 sdb 8:16 active ghost running