====== 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