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

1、安装iscsi客户端

CentOS7上安装iscsi-initiator-utils

# yum install iscsi-initiator-utils

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

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

3、 在CentOS7中,配置启动器

更改启动器的名字,位置/etc/iscsi/initiatorname.iscsi(可选)
IQN命名规则:IQN..<反向域名>:<标识字符串(随机或自定义)>
如:

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

InitiatroName=iqn.2016-07.com.example.foo:myhostname

启动iscsi和设置自启动

# systemctl start iscsi
# systemctl enable iscsi

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中,设置自启动模式和开机自动登陆

将/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'可以省略。

(可选)执行重启命令并查看是否开机自动登陆。

reboot

7、在存储器控制台中,创建主机和主机组

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

8、在存储器控制台中,创建映射视图

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

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

# iscsiadm -m node

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

# fdisk -l

# cat /proc/partitions

或者使用parted的命令进行查看(进入parted命令的交互模式后输入print)
以上命令执行后可以看到两个路径上挂载的同样大小的磁盘。

11、安装DM-Multipath软件包

# yum install device-mapper-multipath

12、创建及修改DM-Multipath的配置文件

  1. 拷贝配置文件multipath.conf
    查看系统中/etc/multipath.conf文件是否存在,如果不存在:
    将/usr/share/doc/device-mapper-multipath-/multipath.conf (Red Hat 6/7)
    或/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 /usr/share/doc/device-mapper-multipath-*/multipath.conf  /etc/multipath.conf(CentOS 6/7)

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

  2. 修改配置文件确保如下配置:
    此处使用了CentOS7.6来连接SAN,而REHL 7.5开始已经将华为多路径配置(开启ALUA)合入内核中,阵列开启ALUA的场景可以不用修改/etc/multipath.conf配置文件,直接使用默认配置即可,阵列不启用ALUA的场景仍需按要求修改配置文件,注意需要将prio的值改回const,具体如下:
    devices {
    device {
        vendor    "HUAWEI"
        product   "XSG1"
        path_grouping_policy    multibus
        path_checker    tur
        prio    const
        path_selector    "service-time 0"
        failback    immediate
        }
    }

    注:multibus为负载均衡配置,failover为主备配置

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

    # systemctl start multipathd
    # systemctl enable multipathd

    14、查看多路经情况

    multipath -ll

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

    15、对挂载磁盘进行分区

    # parted /dev/mapper/mpatha

    格式化为GPT分区格式:

    (parted) mklabel gpt

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

    (parted) mkpart primary xfs 0% 100%

    退出

    (parted) q

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

    16、格式化分区

    # mkfs.xfs /dev/mapper/mpatha1

    17、挂载分区

    # mkdir /data (创建挂载目录)
    # mount -t xfs /dev/mapper/mpatha1 /data
    # df -h (查看分区结果)

    18、开机自动挂载

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

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

但我在操作过程中发现,如上修改不能成功启动和挂载系统。因为iSCSI是网络设备因此正确的挂载应该如下:

/dev/mapper/mpatha1 /data    xfs    default,_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操作总结:

  • 增加iscsi存储
    • 发现iscsi存储:
      # iscsiadm -m discovery -t st -p ISCSI_IP
    • 查看iscsi发现记录:
      # iscsiadm -m node
    • 登录iscsi存储:
      # 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
  • 删除iscsi存储
    • 登出iscsi存储
      # iscsiadm -m node -T LUN_NAME -p ISCSI_IP -u
    • 对出iscsi所有登录
      # iscsiadm -m node --logoutall=all
    • 删除iscsi发现记录:
      # iscsiadm -m node -o delete -T LUN_NAME -p ISCSI_IP
  • 登入需验证码的节点
    • 开启认证
      # 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=[密码]

参考

  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 》