在參看了網上他人的配置,結合RedHat的技術白皮書實現後,本身親身在CentOS7+HUAWEI OceanStore S2600T的基礎上配置了一個DM-Multipath存儲多路徑的實現,其中碰到了一些小問題和不明白的地方,書上感受也沒有說清除,在此總結,以供本身和你們參考。node
CentOS7上安裝iscsi-initiator-utilslinux
# yum install iscsi-initiator-utils
具體能夠參考:《OceanStor S2600T&S5500T&S5600T&S5800T&S6800T 存儲系統 基礎存儲業務指南》,以上兩個步驟能夠按照文檔說明進行配置便可。ubuntu
更改啓動器的名字,位置/etc/iscsi/initiatorname.iscsi(可選)centos
如:bash
InitiatroName=iqn.2016-07.com.example.foo:77c1157e7af
或服務器
InitiatroName=iqn.2016-07.com.example.foo:myhostname
啓動iscsi和設置自啓動網絡
# systemctl start iscsi # systemctl enable iscsi
這裏是系統多路徑+存儲器雙控配置,特此說明存儲器A控的iSCSI主機端口假設爲IP-A,存儲器B控的iSCSI主機端口假設爲IP-B,則須要分別執行如下兩步:session
# iscsiadm -m discovery -t st -p <存儲系統A控iSCSI主機端口的IP-A> # iscsiadm -m discovery -t st -p <存儲系統B控iSCSI主機端口的IP-B>
這裏是系統多路徑+存儲器雙控配置,特此說明存儲器A控的iSCSI主機端口假設爲IP-A,存儲器B控的iSCSI主機端口假設爲IP-B,則須要分別執行如下兩步:app
# iscsiadm -m node -p <存儲系統A控iSCSI主機端口的IP-A> -l # iscsiadm -m node -p <存儲系統B控iSCSI主機端口的IP-B> -l
在變動lun的大小後,可能須要從新登錄。負載均衡
將/etc/iscsi/iscsid.conf中,node.startup=設置爲automatic(默認,無需修改)
iscsiadm -m node –T LUN_NAME -p ISCSI_IP --op update -n node.startup -v automatic
系統多路徑+存儲器雙控配置:
iscsiadm -m node –T LUN_NAME -p <存儲系統A控iSCSI主機端口的IP-A> --op update -n node.startup -v automatic iscsiadm -m node –T LUN_NAME -p <存儲系統A控iSCSI主機端口的IP-B> --op update -n node.startup -v automatic
若是隻有一個LUN,或者想掛載全部的LUN,則'-T LUN_NAME'能夠省略,執行重啓命令並查看是否開機自動登錄(可選)。
在此不用關心CentOS7系統具體使用幾塊網卡與存儲器的控制器相連,建立主機名稱後,選擇使用存儲器的機器類型,這裏是Linux,而後就能夠選擇以上建立的兩個存儲器啓動器便可。
參看《OceanStor S2600T&S5500T&S5600T&S5800T&S6800T 存儲系統 基礎存儲業務指南》中的指示來執行,本人在實際使用時沒有使用端口組,而是直接將主機和LUN組映射起來。
# iscsiadm -m node
# fdisk -l
或
# cat /proc/partitions
或者使用parted的命令進行查看(進入parted命令的交互模式後輸入print)
以上命令執行後能夠看到兩個路徑上掛載的一樣大小的磁盤。
# yum install device-mapper-multipath
# cp /usr/share/doc/device-mapper-multipath-*/multipath.conf /etc/multipath.conf(CentOS 6/7)
若是上述CentOS7中的路徑不存在,請參看RedHat6的路徑,或者find查找一下。
devices { device { vendor "HUAWEI" product "XSG1" path_grouping_policy multibus path_checker tur prio const path_selector "service-time 0" failback immediate } }
注:multibus爲負載均衡配置,failover爲主備配置
# systemctl start multipathd # systemctl enable multipathd
multipath -ll
啓動成功後,能夠看見/dev/mapper/mpatha,這是虛擬出來的多路徑設備,能夠被用來掛載使用。
# parted /dev/mapper/mpatha
格式化爲GPT分區格式:
(parted) mklabel gpt
將全部容量劃爲一個主分區
(parted) mkpart primary xfs 0% 100%
退出
(parted) q
進行上述分區操做後出現/dev/mapper/mpatha1文件。若是因操做順序問題致使出現mpathb、mpathc這樣的命名,若是看着不習慣或者有潔癖的同窗能夠關掉multipathd服務器,而後刪除/etc/multipath/bindings和/etc/multipath/wwids文件中的mpatha、mpathb等所在的行,而後重啓。
# mkfs.xfs /dev/mapper/mpatha1
# mkdir /data (建立掛載目錄) # mount -t xfs /dev/mapper/mpatha1 /data # df -h (查看分區結果)
1) fstab文件中自動掛載
不少文章說開機掛載修改/etc/fstab文件,並在最後添加
/dev/mapper/mpatha1 /data xfs defaults 0 0
但我在操做過程當中發現,如上修改不能成功啓動和掛載系統。由於iSCSI是網絡設備所以正確的掛載應該以下:
/dev/mapper/mpatha1 /data xfs defaults,_netdev 0 0
2)自啓動腳本實現:
在/etc/profile最後一行添加
mount -t xfs /dev/mapper/mpatha1 /data
或者按/etc/profile文件首部建議,將掛載操做寫成腳本,放入/etc/profile.d目錄中。
腳本名:mount_iscsi.sh
內容:
#!/bin/bash mount -t xfs /dev/mapper/mpatha1 /data
附-iSCSI操做總結:
# iscsiadm -m discovery -t st -p ISCSI_IP
# iscsiadm -m node
# iscsiadm -m node -T LUN_NAME -p ISCSI_IP -l
# iscsiadm -m node –T LUN_NAME -p ISCSI_IP --op update -n node.startup -v automatic
# iscsiadm -m node -T LUN_NAME -p ISCSI_IP -u
# iscsiadm -m node --logoutall=all or # iscsiadm -m node -u all
# iscsiadm -m node -o delete -T LUN_NAME -p ISCSI_IP
# iscsiadm -m node -o delete all
# iscsiadm -m node -T LUN_NAME -o update --name node.session.auth.authmethod --value=CHAP
注:-o同--op
# iscsiadm -m node -T LUN_NAME --op update --name node.session.auth.username --value=[用戶名]
# iscsiadm –m node –T LUN_NAME –op update –name node.session.auth.password –value=[密碼]
參考: