在参看了网上他人的配置,结合RedHat的技术白皮书实现后,自己亲身在CentOS7+HUAWEI OceanStore S2600T的基础上配置了一个DM-Multipath存储多路径的实现,其中碰到了一些小问题和不明白的地方,书上感觉也没有说清除,在此总结,以供自己和大家参考。


1、CentOS7上安装iscsi-initiator-utils并运行

# yum install iscsi-initiator-utils

# systemctl start iscsi

or # service iscsi start

# systemctl enable iscsi

or # chkconfig iscsi on (配置开机自启动)


2、在存储器(HUAWEI OceanStor S2600T)中,创建存储池和LUN

具体可以参考:《OceanStor S2600T&S5500T&S5600T&S5800T&S6800T 存储系统 基础存储业务指南》,以上两个步骤可以按照文档说明进行配置即可。


3、在CentOS7中,配置启动器

1)更改启动器的名字,位置/etc/iscsi/initiatorname.iscsi(可选)

IQN命名规则:IQN.<yyyy-mm>.<反向域名>:<标识字符串(随即)>

如:InitiatroName=iqn.2016-07.com.example.foo:77c1157e7af


4、在CentOS7中,配置存储器的IP(即存储系统iSCSI主机端口的IP)

命令为:

# iscsiadm -m discovery -t st -p <存储系统iSCSI主机端口的IP>

这里是系统多路径+存储器双控配置,特此说明存储器A控的iSCSI主机端口假设为IP-A,存储器B控的iSCSI主机端口假设为IP-B,则需要分别执行以下两步:

# iscsiadm -m discovery -t st -p <存储系统A控iSCSI主机端口的IP-A>

# iscsiadm -m discovery -t st -p <存储系统B控iSCSI主机端口的IP-B>


5、在CentOS7中,登陆存储器

命令为:

# iscsiadm -m node -p <存储系统iSCSI主机端口的IP> -l

这里是系统多路径+存储器双控配置,特此说明存储器A控的iSCSI主机端口假设为IP-A,存储器B控的iSCSI主机端口假设为IP-B,则需要分别执行以下两步:

# iscsiadm -m node -p <存储系统A控iSCSI主机端口的IP-A> -l

# iscsiadm -m node -p <存储系统B控iSCSI主机端口的IP-B> -l


6、在CentOS7中,设置自启动模式并重启iscsi

将/etc/iscsi/iscsid.conf中,node.startup=设置为automatic(默认,无需修改)

# service restart iscsi


7、在存储器控制台中,创建主机,在此不用关心CentOS7系统具体使用几块网卡与存储器的控制器相连,创建主机名称后,选择使用存储器的机器类型,这里是Linux,然后就可以选择以上创建的两个存储器启动器即可。


8、在存储器控制台中,创建映射视图,可以参看《OceanStor S2600T&S5500T&S5600T&S5800T&S6800T 存储系统 基础存储业务指南》中的指示来执行,本人在实际使用时没有使用端口组,而是直接将主机和LUN组映射起来。


9、在CentOS7中,查看完整的映射

# iscsiadm -m node


10、在CentOS7中,查看挂载的磁盘

# fdisk -l

可以看到两个路径上挂载的同样大小的磁盘


11、在CentOS7中,安装DM-Multipath软件包

# yum install device-mapper-multipath


12、在CentOS7中,创建及修改DM-Multipath的配置文件

拷贝配置文件multipath.conf

查看系统中/etc/multipath.conf文件是否存在。

如果不存在,将/usr/share/doc/device-mapper-multipath-*/multipath.conf(Red Hat 6.x)

或/usr/share/doc/device-mapper-multipath-*/multipath.conf.synthetic (Red Hat 5.x)

或/usr/share/doc/packages/multipath-tools/multipath.conf.synthetic (SuSE11SP1)

或/usr/share/doc/multipath-tools/examples/multipath.conf.synthetic (ubuntu 11.04)

文件拷贝一份,文件命名为multipath.conf放置于/etc/目录下

# cp /etc/multipath/.multipath.conf.tmp /etc/multipath.conf(CentOS 7.x)

如果上述CentOS7中的路径不存在,请参看RedHat6的路径,或者find查找一下。

修改配置文件确保如下配置:

default {

    find_multipaths    yes

    user_friendly_name    yes

    path_grouping_policy    multipaths    (注:multipath为负载均衡配置,failover为主备配置)

    failback    immediate

    no_path_retry    fail

}


13、在CentOS7中,mpathconf命令及相关模块加载

# mpathconf --enable

# mpathconf --with_module y

# mpathconf --with_multipathd y

具体可参看mpathconf -h


14、在CentOS7中,启动multipathd服务及设置开机自启

# service multipathd start

# chkconfig multipathd on

启动成功后,可以看见/dev/mapper/mpatha,这是虚拟出来的多路径设备,可以被用来挂载使用。



15、在CentOS7中,对挂载磁盘进行分区

# parted /dev/mapper/mpatha

格式化为GPT分区格式:

(parted) mklabel gpt

将所有容量划为一个主分区

(parted) mkpart primary xfs 0% 100%

退出

(parted) q

进行上述分区操作后出现/dev/mapper/mpatha1文件

注:以上是使用parted进行分区,但好像CentOS7版本的fdisk也可以对大于2T的磁盘进行gpt分区了。


16、格式化分区

# mkfs.xfs /dev/mapper/mpatha1


17、挂载分区

# mkdir /data (创建挂载目录)

# mount -t xfs /dev/mapper/mpatha1 /data

# df -h (查看分区结果)


18、开机自动挂载

很多文章说开机挂载修改/etc/fstab文件,并在最后添加

/dev/mapper/mpatha1    /data    xfs    defaults    0 0

但我在操作过程中发现,如上修改不能成功启动和挂载系统。

个人操作是将挂载操作:

mount -t xfs /dev/mapper/mpatha1 /data

写入/etc/profile最后一行。

或者按/etc/profile文件首部建议,将挂载操作写成脚本,放入/etc/profile.d目录中。

脚本名:mount_iscsi.sh

内容:

#!/bin/bash

mount -t xfs /dev/mapper/mpatha1 /data


参考:

1、《centos上iscsi+multipath多路径存储配置手册》,http://bluefox.blog.51cto.com/380387/141907

2、Product Documentation for Red Hat Enterprise Linux相关章节,https://access.redhat.com/documentation/en/red-hat-enterprise-linux/?version=7/

3、《OceanStor S2600T&S5500T&S5600T&S5800T&S6800T 存储系统 V200R001 基础存储业务指南 07