Linux Multipath+iscsi实现多路径配置

一、Multipath介绍


1、Multipath简介

普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。

2、实现功能

  • 故障的切换和恢复

  • IO流量的负载均衡

  • 磁盘的虚拟化

二、实验环境


selinux iptables off

主机名IP操作系统已有磁盘安装服务
server1(客户端)10.10.10.1(eth0)、172.25.254.1(eth1)rhel7.3sda、sdbiscsi-initiator-utils(发现iscsi)、multipath
server2(服务器端)10.10.10.2(eth0)、172.25.254.2(eth1)rhel7.3sda、sdbtargetcli.noarch(iscsi服务)

三、iscsi安装(服务器端)


1、安装iscsi

[root@server2 ~]# yum install -y targetcli.noarch

2、配置iscsi

[root@server2 ~]# targetcli 
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb41
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> /backstores/block create dream:storage1 /dev/sdb
Created block storage object dream:storage1 using /dev/sdb.

/> /iscsi create iqn.2019-03.com.example:server2 
Created target iqn.2019-03.com.example:server2.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

/> /iscsi/iqn.2019-03.com.example:server2/tpg1/acls create iqn.2019-03.com.example:server2 
Created Node ACL for iqn.2019-03.com.example:server2

/> /iscsi/iqn.2019-03.com.example:server2/tpg1/luns create /backstores/block/dream:storage1 
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2019-03.com.example:server2

/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json

四、iscsi配置(客户端)


1、安装并加入认证

[root@server1 ~]# yum install -y iscsi-initiator-utils
[root@server1 ~]# vim /etc/iscsi/initiatorname.iscsi         
InitiatorName=iqn.2019-03.com.example:server2

2、发现服务器端iscsi

[root@server1 ~]# iscsiadm -m discovery -t st -p 10.10.10.2
10.10.10.2:3260,1 iqn.2019-03.com.example:server2

[root@server1 ~]# iscsiadm -m discovery -t st -p 172.25.254.2
172.25.254.2:3260,1 iqn.2019-03.com.example:server2

3、登陆

[root@server1 ~]# iscsiadm -m node -T iqn.2019-03.com.example:server2 -p 10.10.10.2 -l        
Logging in to [iface: default, target: iqn.2019-03.com.example:server2, portal: 10.10.10.2,3260] (multiple)
Login to [iface: default, target: iqn.2019-03.com.example:server2, portal: 10.10.10.2,3260] successful.

[root@server1 ~]# iscsiadm -m node -T iqn.2019-03.com.example:server2 -p 172.25.254.2 -l
Logging in to [iface: default, target: iqn.2019-03.com.example:server2, portal: 172.25.254.2,3260] (multiple)
Login to [iface: default, target: iqn.2019-03.com.example:server2, portal: 172.25.254.2,3260] successful.

4、查看磁盘

可以发现多了sdc、和sdd二块磁盘,我们不加入multipath会识别成二块磁盘,所以我们可以加入mutipath防止网卡坏掉!!!

[root@server1 ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00007256

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      616447      307200   83  Linux
/dev/sda2          616448     2715647     1049600   82  Linux swap / Solaris
/dev/sda3         2715648    41943039    19613696   83  Linux

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes

Disk /dev/sdd: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes

五、multipath安装及配置(客户端)


1、安装multipath

[root@server1 ~]# yum -y install device-mapper-multipath
[root@server1 ~]# modprobe dm-multipath
[root@server1 ~]# modprobe dm-round-robin
[root@server1 ~]# lsmod | grep dm_multipath
dm_multipath           23065  1 dm_round_robin
dm_mod                114430  3 dm_multipath,dm_log,dm_mirror

[root@server1 ~]# rpm -ql device-mapper-multipath     ###查看生成文件
[root@server1 ~]# cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/

### 也可以通过下面命令生成配置文件
[root@server1 ~]# mpathconf --enable                 ###生成配置文件/etc/multipath.conf

2、查看wwid

[root@server1 ~]# /usr/lib/udev/scsi_id --whitelisted --device=/dev/sdc
360014056393309b846f47bcae82517a0

3、配置multipath(主备模式)

[root@server1 ~]# vim /etc/multipath.conf 
defaults {
        user_friendly_names yes
        find_multipaths yes
}
multipaths {
    multipath {
        wwid    360014056393309b846f47bcae82517a0
        alias   mpathao
  }
}

[root@server1 ~]# systemctl start multipathd
[root@server1 ~]# ls /dev/mapper/
control  mpathao

4、格式化挂载

[root@server1 ~]# mkfs.xfs /dev/mapper/mpathao
[root@server1 ~]# mount /dev/mapper/mpathao /media

5、查看状态

[root@server1 ~]# multipath -rr
[root@server1 ~]# multipath -ll          

6、负载均衡

[root@server1 ~]# vim /etc/multipath.conf 
multipaths {
        multipath {
                wwid   360014056393309b846f47bcae82517a0
                alias    mpathao
                path_grouping_policy    multibus
                 path_selector	       "round-robin 0"
                failback                manual
                rr_weight               priorities
                no_path_retry           5
        }
}

[root@server1 ~]# systemctl restart multipathd
[root@server1 ~]# systemctl restart iscsi

六、multipath配置简介


可用的节关键字如下:
    - defaults:全局属性的默认设置。
    - blacklist:黑名单,multipath会忽略黑名单中的设备。
    - blacklist_exceptions:免除黑名单,加入黑名单内,但包含在这里的设备不会被忽略。
    - multipaths:多路径相关配置。
    - devices:存储设备相关配置。
    
配置文件:
uid_attribute:用udev的哪个属性唯一标识一个设备,默认值为ID_SERIAL
path_grouping_policy       ###路径分组策略
    - failover             ###一条路径一个组(默认值)
    - multibus             ###所有路径在一个组
    - group_by_serial      ###根据序列号分组
    - group_by_prio        ###根据优先级分组
    - group_by_node_name   ###根据名字分组

path_selector              ###I/O操作算法
    - service-time 0       ###选择IO服务时间最短的路径(默认值)
    - round-robin 0        ###多个路径间不断循环
    - queue-length 0       ###选择当前处理IO数最少的路径

failback                   ###回复失败管理
    - immediate            ###立刻回复到活跃的优先级最高的组
    - manual               ###不操作,需自行处理
    - followover           ###第一个路径变为活动状态时应执行自动故障回复。 这可以防止节点在另一个节点请求故障转移时自动失败。
    
no_path_retry              ###多少次后禁止排队
    - fail                 ###失败后就立刻失败,没有排队
    - queue                ###一直进行排队,直到修复
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wielun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值