iscsi多路径配置方式

Posted happy1983

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iscsi多路径配置方式相关的知识,希望对你有一定的参考价值。

一、ISCSI多路径应用

       如果存储服务器到交换机只有一条线路的时候,那么一条线路出线故障,整个就没法使用了,所以多线路可以解决这个问题,避免单点故障

技术分享图片

 

       如上图,如果SAN服务器与客户端交换机只有一条线路相连,那么如果交换机或者线路出现故障,那么整个通讯中断, 

       如图二,SAN服务器与我们的客户端有两条以上的线路相连,当然或许是一台交换机,也或许是两台交换机用冗余,那么其中一台交换机或者一条线路中断,我们的整个通讯依然正常,这就是多路径的作用!也就是实用多路径,避免了单点故障带给我们的损失!

通过VMware模拟多路径,使用下面的拓扑:

技术分享图片

实验环境:  xuegod63,xuegod64配置双网卡 。

服务端:xuegod63.cn   IP:192.168.1.63 ens32   ; IP:192.168.2.63 ens35 , vmnet4

客户端:xuegod64.cn   IP:192.168.1.64 ens32   ; IP:192.168.2.64 ens35 , vmnet4

 

将xuegod63配置成ip san,将xuegod63上的sdb1分区,通过ip san 共享出去。(前面一节已经做好了)

服务器端: target     xuegod63

客户端:   initiator    xuegod64

 

配置网络环境:

服务端xuegod63 添加一块网卡:

技术分享图片

生成ens35配置文件,配置IP ,192.168.2.63

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens35
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens35"
DEVICE="ens35"
NBOOT="yes"
IPADDR="192.168.2.63"
PREFIX="24"
IPV6_PRIVACY="no"
[[email protected] Desktop]# systemctl restart network    或 ifdown ens35;ifup ens35
[[email protected] ~]# ifconfig        #查看网络
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.63  netmask 255.255.248.0  broadcast 192.168.7.255
        inet6 fe80::5002:d1:8a0:7840  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:30:c6:51  txqueuelen 1000  (Ethernet)
        RX packets 7516  bytes 539083 (526.4 KiB)
        RX errors 0  dropped 4  overruns 0  frame 0
        TX packets 303  bytes 36655 (35.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.63  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 fe80::6f57:c34c:3709:2e72  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:89:00:c2  txqueuelen 1000  (Ethernet)
        RX packets 9  bytes 779 (779.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 19  bytes 1370 (1.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

客户端xuegod64 也添加一块网卡

技术分享图片

生成ens35配置文件,IP ,192.168.2.64

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens35
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens35"
DEVICE="ens35"
NBOOT="yes"
IPADDR="192.168.2.64"
PREFIX="24"
IPV6_PRIVACY="no"
[[email protected] ~]#  systemctl restart network

安装服务端target并配置(请参照上一节课程内容)

[[email protected] ~]# yum -y install targetcli

增加双IP

[[email protected] ~]# targetcli
/> iscsi/iqn.2018-04.cn.xuegod:server/tpg1/portals/ create 192.168.1.63 3260
/> iscsi/iqn.2018-04.cn.xuegod:server/tpg1/portals/ create 192.168.2.63 3260

配置客户端: xuegod64

安装包
[[email protected] ~]# yum install -y iscsi-initiator-utils
启动iscsi服务
[[email protected] ~]# systemctl start iscsi
设置开机启动服务
[[email protected] ~]# systemctl enable iscsi
[[email protected] ~]# systemctl enable iscsid

配置ISCSIInitiator名称

注:此处InitiatorName必须与服务端配置的ACL允许ISCSI客户机连接的名称一致。

[[email protected] ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2018-04.cn.server:xugod64

重启服务
[[email protected] ~]# systemctl restart iscsid
发现(查找)ISCSI设备
[[email protected] ~]# iscsiadm -m discovery -t st -p 192.168.2.63
连接ISCSI设备
[[email protected] ~]# iscsiadm -m node --login
查看系统磁盘信息
[[email protected] ~]# ls /dev/sd*
…..        /dev/sdb  /dev/sdc
格式化挂载(已格式化忽略)
[[email protected] ~]# mkfs.xfs /dev/sdb

测试挂载写数据
[[email protected] ~]#  mount  /dev/sdb  /opt
[[email protected] ~]#  echo aabbcc >/opt/a.txt

挂载另一路径设备
[email protected] ~]# mkdir  /test
[[email protected] ~]# mount  /dev/sdc  /test  挂载报错了吧?

[[email protected] ~]#blkid /dev/sdc /dev/sdb   #对比一下,发现UUID一样的, 相同id不能重复挂载
解决方法:
[[email protected] ~]#mount -t xfs -o nouuid /dev/sdc  /test  #跳过UUID挂载

[[email protected] ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             9.7G  3.7G  5.5G  41% /
tmpfs                 569M     0  569M   0% /dev/shm
/dev/sda1             194M   28M  157M  15% /boot
/dev/sr0              3.4G  3.4G     0 100% /mnt
/dev/sdc            5.0G  138M  4.6G   3% /test
/dev/sdb             5.0G  138M  4.6G   3% /opt


在xuegod63服务端查看链接状态
[[email protected] ~]# netstat -antup | grep 3260

查看连接结构:
[[email protected] ~]#yum –y install tree 
[[email protected] ~]# tree /var/lib/iscsi/
/var/lib/iscsi/
├── ifaces
├── isns
├── nodes
│   └── iqn.2015-01.cn.xuegod.www:target_san1
│       ├── 192.168.1.63,3260,1
│       │   └── default
│       └── 192.168.2.63,3260,1
│           └── default
├── send_targets
│   ├── 192.168.1.63,3260
│   │   ├── iqn.2015-01.cn.xuegod.www:target_san1,192.168.1.63,3260,1,default -> /var/lib/iscsi/nodes/iqn.2015-01.cn.xuegod.www:target_san1/192.168.1.63,3260,1
│   │   └── st_config
│   └── 192.168.2.63,3260
│       ├── iqn.2015-01.cn.xuegod.www:target_san1,192.168.2.63,3260,1,default -> /var/lib/iscsi/nodes/iqn.2015-01.cn.xuegod.www:target_san1/192.168.2.63,3260,1
│       └── st_config

 

二、实战: 在存储客户端xuegod64上配置多路径

       多路径软件Device Mapper Multipath(DM-Multipath)可以将服务器节点和存储阵列之间的多条I/O链路配置为一个单独的设备。这些I/O链路是由不同的线缆、交换机、控制器组成的SAN物理链路。Multipath将这些链路聚合在一起,生成一个单独的新的设备。

 1.DM-Multipath概览:

(1)数据冗余

DM-Multipath可以实现在active/passive模式下的灾难转移。在active/passive模式下,只有一半的链路在工作,如果链路上的某一部分(线缆、交换机、控制器)出现故障,DM-Multipath就会切换到另一半链路上。

(2)提高性能

DM-Multipath也可以配置为active/active模式,从而I/O任务以round-robin的方式分布到所有的链路上去。通过配置,DM-Multipath还可以检测链路上的负载情况,动态地进行负载均衡。

 2. 软件安装

安装多路经软件
[[email protected] ~]# yum install device-mapper-multipath -y

使用默认配置文件启动
[[email protected] ~]# cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf   /etc/
[[email protected] ~]# systemctl restart multipathd
[[email protected] ~]# multipath -ll    #没有输出消息。 表示出错了。

解决:把正在使用中的sdb和sdbc卸载了
[[email protected] ~]# umount  /opt
[[email protected] ~]# umount  /test

[[email protected] ~]# /etc/init.d/iscsi  restart
[[email protected] ~]# systemctl restart multipathd
[[email protected] ~]# multipath –ll

技术分享图片

36001405f4ddd118ad384b69b30433220(远程存储设备id)dm-2 LTO-ORG(厂商) ,sun1(产品ID)  size=5.0G features=‘0‘ hwhandler=‘0‘ wp=rw

|-+- policy=‘service-time 0‘ prio=1 status=active   #默认使用active的链路

| `- 34:0:0:1 sdb 8:16 active ready running

`-+- policy=‘service-time 0‘ prio=1 status=enabled  #有效的链路,但不是活动链路

  `- 35:0:0:1 sdc 8:32 active ready running

#默认配置并不会实现负载均衡,只会实现高可用的效果。

# (36001405f4ddd118ad384b69b30433220)  远程存储设备的产品信息,由于sdb和sdc对应的都是远端同一个存储,所以产品信息是一样的,最后被多路经驱动发现,所以为他们生成了一个设备文件/dev/mapper/mpatha

[[email protected] ~]# ll  /dev/mapper/mpatha*
lrwxrwxrwx 1 root root 7 1月  13 09:02 /dev/mapper/mpatha -> ../dm-2san 

 三、实战2:修改配置文件,启动高可用负载均衡模式,并自定义多路经设备文件的名字

[[email protected] ~]# vim /etc/multipath.conf 

注销掉下面三行内容

技术分享图片

请在此模版下写内容:

 技术分享图片

在74行以下插入以下内容:3600140510a3f0e98a0c4ec1a9a34f762
multipaths {
        multipath {
                wwid   " 36001405f4ddd118ad384b69b30433220"   #填写硬盘产品关键信息
                alias                   webdata   #映射后的别名,可以随便取
                path_grouping_policy    multibus   #路径组策略
                 path_selector           "round-robin 0"
                failback                 manual
                rr_weight               priorities
                no_path_retry           5
        }
}

重启服务multipathd,测试负载均衡:

[[email protected] ~]# systemctl restart multipathd
[[email protected] ~]#  systemctl restart iscsi   #需要重新识别一下存储
再次查看:
[[email protected] ~]# multipath -ll
webdata (36001405f4ddd118ad384b69b30433220) dm-2 xuegod  ,target1         
size=5.0G features=‘1 queue_if_no_path‘ hwhandler=‘0‘ wp=rw
`-+- policy=‘round-robin 0‘ prio=1 status=active
  |- 34:0:0:1 sdb 8:16 active ready running
  `- 35:0:0:1 sdc 8:32 active ready running
注:之前相当于主备,现在相当于负载均衡 。


测试:
[[email protected] ~]# ls /dev/mapper/webdata*
  webdata                               # webdata对应硬盘中的对应硬盘sdb 
[[email protected] ~]# mount /dev/mapper/webdata  /opt
[[email protected] ~]# cp /etc/hosts  /opt
[[email protected] ~]# ls /opt
lost+found  passwd  hosts

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

以上是关于iscsi多路径配置方式的主要内容,如果未能解决你的问题,请参考以下文章

vSphere中NFS和软件iScsi存储多路径介绍

Cluster基础:配置iSCSI服务编写udev规则配置并访问NFS共享部署Multipath多路径环境

Lenovo DS存储Linux下ISCSI 多路径映射配置

在vmware虚机上用iscsi协议建立多路径环境测试multipath

iscsi挂载和多路径——实战篇

Rhel Linux multipath + OpenfIler raid iscsi