multipath多路径配置问题汇总

使用mpath设备

multipath生成映射后,会在/dev目录下产生多个指向同一条链路的设备:

/dev/mapper/mpathn

/dev/mpath/mpathn

/dev/dm-n

但它们的来源是完全不同的:

/dev/mapper/mpathn multipath虚拟出来的多路径设备,我们应该使用这个设备;

/dev/mpath/mpathn udev设备管理器创建的,实际上就是指向下面的dm-n设备,仅为了方便,不能用来挂载;

/dev/dm-n 是软件内部自身使用的,不能被软件以外使用,不可挂载。

简单来说,就是我们应该使用/dev/mapper/下的设备符。对该设备即可用fdisk进行分区,或创建为pv

测试multpath路径

然后用iostat观察各通道的流量和状态,以判断Failover或负载均衡方式是否正常:

 

# dd if=/dev/zero of=/dev/mapper/mpath0

# iostat -k 2

容错模式:

mpath18设备读写时,sdafsdv 会处于active状态,都有数据流,但sdbsdl 组成的链路是enabled,作为ready情况。这为Failover(主备)情况

修改多路径模式

默认情况下,multipath已经支持大部分常见的存储型号(可见multipath.conf.defaults),但不同的multipath版本可能都有些不同。这时,建议参考存储的官方文档:

在前面的配置中,我们已经在/etc/mulitpah.conf中配置了多路径的默认path_grouping_policymultibus。但有时候,同一台机器上如果连接了一个以上的存储时,可能默认规则并不完全适用。这时,我们可以给特定的存储定制多路径符合的策略。

devices {

device {

vendor "HITACHI" //厂商名称

product "OPEN-V" //产品型号

path_grouping_policy group_by_prio //默认的路径组策略

path_grouping_policy    failover

#getuid_callout "/sbin/scsi_id -p 0x80-g -u -s /block/%n" //获得唯一设备号使用的默认程序

path_checker readsector0 //决定路径状态的方法

path_checker            tur

path_selector  "round-robin 0" //选择那条路径进行下一个IO操作的方法

prio_callout "/sbin/mpath_prio_alua/dev/%n" //获取有限级数值使用的默认程序

failback immediate //故障恢复的模式

#hardware_handler "0" //确认用来在路径切换和IO错误时,执行特定的操作的模块。

#no_path_retry queue //disablequeue之前系统尝试使用失效路径的次数的数值

#rr_min_io 100 //在当前的用户组中,在切换到另外一条路径之前的IO请求的数目

}

}

※千万不要写错path_checker(可能值有:readsector0, tur, emc_clariion, hp_sw, directio)。不清楚的,可从存储的官方资料查看

排错过程

# multipath -v3 -ll

# dmsetup ls

# multipathd -k

> > show config

> >reconfigure

> >show paths

> > CTRL-D

/var/lib/multipath/bindings

/dev/mapper/

# cat /sys/block/sda/device/vendor

# cat /sys/block/sda/device/model

※注意:

/var/lib/multipath/bindings显示的内容包括黑名单中的wwid,其mpathn顺序与multipath-ll 的结果可能不同。实际以multipath -ll 的结果为可用设备。

 

路径切换处理

自定义设备

※注意:1、绑定后,需重新生成路径的映射表;2、当加入该wwid绑定后,没有绑定的设备将不能使用,用-ll 也无法看到这些设备,但/var/lib/multipath/bindings 中可见。

启动服务和生成映

# modprobe dm-multipath

# service multipathd start

# multipath -v0

更新config文件

在您更新 /etc/multipath.conf文件后,您必须手动让 m ultipathd 守护进程重新载入该文件。以下命令可重新载入更新的 /etc/multipath.conf 文件。

# servicemultipathd reload

你可能感兴趣的:(mpath设备,multipath汇总)