在参看了网上他人的配置,结合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=[密码]
参考: