1.什么是多路径
1.1路径
物理层面一条数据的访问通道
访问方式:
(1)以太网卡+双绞网线+以太网交换机
(2)HBA光纤卡+光纤线+光纤交换机
访问过程:
(1)冗余链路failover:使用多于2条的链路进行传输,如果A链路出现故障,则B链路会及时替代A链路继续传输,等A链路恢复连接后,B链路再退回等待状态
(2)聚合链路multipath:也有多于两条的链路,但所有链路同时工作,以拓宽传输带宽
1.2 iscsi与multipath
在iscsi服务器上如果有多块网卡,那就相当于有了多块scsi控制器,客户端可以通过iscsiadm命令发现服务器端2个ip下的iscsi磁盘
iscsiadm -m discovery -t st -p 192.168.0.54
#scsiadm -m node -T target1 -p 192.168.0.54:3260 -l
#发现并添加服务器0.54网卡端的iscsi磁盘
iscsiadm -m discovery -t st -p 192.168.0.64
iscsiadm -m node -T target1 -p 192.168.0.64:3260 -l
#发现并添加服务器0.64网卡端的iscsi磁盘
如下图所示:sdb与sdc是来自服务器的2个LUN,但客户端却又识别出了一模一样的sdd和sde。这是因为服务器端的网卡过多使客户端的识别发生了错误。
以其中一个LUN为例,错误的发生可以总结为下图:
使用multipath软件,可以解决客户端的这种识别错误
2.multipath安装与配置
2.1安装软件包
yum -y install device-mapper*
2.2将multipath添加至内核模块中
modprobe dm-multipath
modprobe dm-round-robin
2.3创建配置文件
cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/multipath.conf
#如果没有/etc/multipath.conf这个文件,可以用这条命令复制一个模板过来
然后对这个配置文件进行修改:vim /etc/multipath.conf
找到文件中defaults的区域,取消它大括号里的所有注释,这代表开启了multipath最基本的多路聚合功能
2.4开启服务
systemctl start multipathd
systemctl enable multipathd
2.5验证
(1)multipath -ll
键入此命令后,可以看到客户端识别出了mpatha与mpathb两条聚合路径,这就是服务器上的2个LUN
(2)lsblk
可以看到虽然sdb与sdd显示为2个不同的磁盘,但已被抽象为相同的mpatha,其下的分区也是相同的
客户端在向mathp中存放数据的时候,会从服务器的两个网卡同时传输,从而提高传输速率,而且如果传输过程中其中一块网卡down掉了,数据的传输也不会出现错误,只是变成单路径传输。