找回密码
 注册
查看: 3916|回复: 0

Multipath相关软件介绍

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2019-5-7 12:21:16 | 显示全部楼层 |阅读模式
1. device-mapper-multipath
  即multipath-tools,主要提供multipathd和multipath等工具和 multipath.conf等配置文件。这些工具通过device mapper的ioctr的接口创建和配置multipath,设备创建的多路径设备映射会在/dev /mapper中。
2. device-mapper
  主要包括两大部分:内核部分和用户部分。内核部分主要由device mapper核心(dm.ko)和一些target driver(md-multipath.ko)。核心完成设备的映射,而target根据映射关系和自身特点具体处理从mappered device 下来的i/o。同时,在核心部分,提供了一个接口,用户通过ioctr可和内核部分通信,以指导内核驱动的行为,比如如何创建mappered device,这些divece的属性等。linux device mapper的用户空间部分主要包括device-mapper这个包。其中包括dmsetup工具和一些帮助创建和配置mappered device的库。这些库主要抽象,封装了与ioctr通信的接口,以便方便创建和配置mappered device。multipath-tool的程序中就需要调用这些库
3. dm-multipath.ko和dm.ko:dm.ko是device mapper驱动。它是实现multipath的基础。dm-multipath其实是dm的一个target驱动。
0 ]! }* o+ Q6 M% f/ |! i9 P( R
AIX
http://blog.163.com/herod_xiao/blog/static/871883992011819112227689/
( Q% z% a2 o+ N  h
/ }; l. M8 o- a; h: s2 b+ l3 V
1. 检查multipath模块,如果没有相关模块就说明没有安装相关软件包
lsmod | grep dm_multipath
yum -y install device-mapper device-mapper-multipath
( g+ r  {+ s! ?# B) E, ~; g  p% D7 m
2. 加载相关模块
modprobe dm-multipath
modprobe dm-round-robin
2 |. y5 V, a$ u
3. 生成multipath配置文件,并配置
/sbin/mpathconf --enable
配置multipath.conf文件

5 `- N- X/ A8 L4 r4 [5 j( ~
4. 启动multipath服务
service multipathd start
chkcofig multipathd on
[backcolor=rgb(245, 245, 245) !important][url=][/url]% D# J6 n2 H' g) z, N- @. F+ g
[root@tyhr ~]# multipath -llmpathc (36005076801820709e000000000000087) dm-3 IBM,2145size=300G features='1 queue_if_no_path' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=1 status=active  |- 4:0:0:1 sdc 8:32  active ready running  |- 4:0:2:1 sde 8:64  active ready running  |- 5:0:2:1 sdg 8:96  active ready running  `- 5:0:4:1 sdi 8:128 active ready runningmpathb (36005076801820709e000000000000086) dm-2 IBM,2145size=100G features='1 queue_if_no_path' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=1 status=active  |- 4:0:0:0 sdb 8:16  active ready running  |- 4:0:2:0 sdd 8:48  active ready running  |- 5:0:2:0 sdf 8:80  active ready running  `- 5:0:4:0 sdh 8:112 active ready running[backcolor=rgb(245, 245, 245) !important][url=][/url]
, H* _0 [  n0 y" x+ ~
% Z) |( Q$ v9 ^2 V" Y! C. [$ X1 j$ O$ b2 e$ E8 Y
( e' T* N# ^. J% W! u0 E) A5 |
如果完成配置后,不能使用multipath -ll查看到任何多路径信息,就需要手工重新扫描HBA信息
一般新增LUN映射给主机后,系统无法直接更新挂载的存储盘,需要重新扫描。
# cd /sys/class/scsi_host/host4/# echo '- - - ' > scan或echo "1" > /sys/class/fc_host/host/issue_lip  //某些存储或系统没有scan文件,可以通issue_lip文件识别: l+ l  b0 |2 P6 w( b5 D

) h1 G8 ?4 V# l2 c* h2 V% K
RHEL5.x 操作系统,新增multipath后,能够识别磁盘,但是通过fdisk分区后,不能显示分区信息(/dev/mapper/dm-app 磁盘不显示/dev/mapper/dm-appp1)。partprob无报错但是没有效果。fdisk w保存后有报错:
WARNING: Re-reading the partition table failed with error 22: Invalid argument.
[backcolor=rgb(255, 255, 255) !important][size=1em]
1
; M# ]8 f. q8 r" n: l7 \
2
% R& n0 W- K6 Z- ?2 g. ^
3

2 d8 u* d% O% S$ [
4

) Q4 E5 N8 m7 c/ `
5

) S5 ~. y/ E4 U) E$ M3 Z
6

8 q+ I0 L# @$ T- E0 ^3 F; g3 X0 m
7

$ E5 u% U; ]* R' }9 g
8
" Y: w& W1 E# d9 h& [
9
& [( U# h: x: x3 c* A2 P9 t
10

: N! s' ~4 i. R
11

: \3 m4 V. y, u* M: e4 d8 I
12

# ?4 i! z6 a4 p5 @( q' ]
13
! ~) {, o; v% [: v: A
14

# |5 O" l- p( g
15

/ g& l' E( n; k; P6 j8 h+ U8 U
16
3 V8 C& r1 q8 A, R6 Q
17

# g4 R4 l& B, c7 y3 E: h. V/ |5 ~
18

1 P7 Q( k% r# P, `- W) y9 h6 B
Run "kpartx -a" after FDISK is completed to add all partition mappings on the
& w" ^0 S( ]) a$ T' C/ v- q
newly-created multipath device

" a* x( M6 K2 Q4 J
  K% m  l4 P5 e% T- L
$ J$ X$ N" }) M3 @* |: U! E" y( M9 D
[root@TYEDI1 host4]# ls -l /dev/mapper/dm-*
% [7 Y( r! D8 g, ]
brw-rw---- 1 root disk 253, 0 Jan 21 22:59 /dev/mapper/dm-app

# d3 p1 E7 M1 Y+ E# l( _' r
brw-rw---- 1 root disk 253, 2 Jan 21 22:35 /dev/mapper/dm-arch
8 J; H- O3 R  B- W: P
brw-rw---- 1 root disk 253, 1 Jan 21 22:52 /dev/mapper/dm-db
0 z0 s* e6 {* R% Q- q7 [

1 ^1 W! N0 ^6 H) F& ?
[root@TYEDI1 host4]# kpartx -a /dev/mapper/dm-app
7 z) d6 |; y; K3 h$ m1 e
, S) E* D* s" m3 X

* N6 c  Q0 L: _. r; M0 z
[root@TYEDI1 host4]# ls -l /dev/mapper/dm-*
! E$ b# P) M/ Y; B
brw-rw---- 1 root disk 253, 0 Jan 21 22:59 /dev/mapper/dm-app
4 H3 ]2 E" ~8 e$ x% Y
brw-rw---- 1 root disk 253, 3 Jan 21 23:01 /dev/mapper/dm-app1
0 M( k5 X* W; `, P9 |5 z% a
brw-rw---- 1 root disk 253, 2 Jan 21 22:35 /dev/mapper/dm-arch

, m5 t) Q. ]/ D9 F2 ~
brw-rw---- 1 root disk 253, 1 Jan 21 22:52 /dev/mapper/dm-db

# H7 l; E7 K5 |, w) T

: Z# `5 B( \) a, v, F- O

8 D2 Z" @0 B2 m, {1 T0 s, e1 x
) o8 ?  D* U- c! w
1 `: B1 ?2 ]  B; j# b
4 ^: Q0 f( k3 O7 A' c1 H

  y: C+ f0 g/ C: g2 e& V
2 L, o  Y, s/ M; _2 Y2 z3 w
其他配置:
1. udev绑定权限
RHEL6.5,对于multipath的权限,手工去修改几秒后会变回root。所以需要使用udev去绑定好权限。
[backcolor=rgb(245, 245, 245) !important][url=][/url]
4 b  q  |  @6 z( ]; P1 p& A2 z1)搜索对应的配置文件模板:[root@jyrac1 ~]# find / -name 12-*/usr/share/doc/device-mapper-1.02.79/12-dm-permissions.rules\. d  ?! [6 ^. d7 L5 q
2)根据模板新增12
-dm-permissions.rules文件在/etc/udev/rules.d/下面:vi /etc/udev/rules.d/12-dm-permissions.rules# MULTIPATH DEVICES## Set permissions for all multipath devicesENV{DM_UUID}=="mpath-?*", OWNER:="grid", GROUP:="asmadmin", MODE:="660"# Set permissions for first two partitions created on a multipath device (and detected by kpartx)# ENV{DM_UUID}=="part[1-2]-mpath-?*", OWNER:="root", GROUP:="root", MODE:="660"3)查看多路径对应的底层dm设备:[root@jyrac2 rules.d]# ls -lh /dev/dm*brw-rw---- 1 root disk 253, 0 Jul 19 16:40 /dev/dm-0brw-rw---- 1 root disk 253, 1 Jul 19 16:40 /dev/dm-1brw-rw---- 1 root disk 253, 2 Jul 19 21:20 /dev/dm-2brw-rw---- 1 root disk 253, 3 Jul 19 21:20 /dev/dm-34)启动start_udev[root@jyrac2 rules.d]# start_udev Starting udev: [  OK  ]5)查看权限:[root@jyrac2 rules.d]# ls -lh /dev/dm*brw-rw---- 1 root disk     253, 0 Jul 19 21:35 /dev/dm-0brw-rw---- 1 root disk     253, 1 Jul 19 21:35 /dev/dm-1brw-rw---- 1 grid asmadmin 253, 2 Jul 19 21:35 /dev/dm-2brw-rw---- 1 grid asmadmin 253, 3 Jul 19 21:35 /dev/dm-36)等30s后再查,权限固定:[root@jyrac2 rules.d]# ls -lh /dev/dm*brw-rw---- 1 root disk     253, 0 Jul 19 21:35 /dev/dm-0brw-rw---- 1 root disk     253, 1 Jul 19 21:35 /dev/dm-1brw-rw---- 1 grid asmadmin 253, 2 Jul 19 21:35 /dev/dm-2brw-rw---- 1 grid asmadmin 253, 3 Jul 19 21:35 /dev/dm-3[backcolor=rgb(245, 245, 245) !important][url=][/url]
/ W# k) X3 X  F1 K8 p# c. A% A) C' S% l# l' j0 q$ }* u& j
- O6 Q7 ?/ U% V4 ?% C  Q: T

# V* l4 c% d, c7 `1 W8 ?
! V3 O( I- l, n6 D  U# K6 g
+ p+ y  F5 _# s" e
/ }0 [+ P0 z9 q" f; X6 n5 a4 @
可以使用lsscsi查看识别的磁盘信息:
[backcolor=rgb(245, 245, 245) !important][url=][/url]
- H( V; h6 }2 V6 S2 Z5 N: _5 x2 H# q[root@tyhr ~]#  lsscsi [0:0:0:0]    cd/dvd  TSSTcorp DVD-ROM TS-L333H ID03  /dev/sr0 [2:0:0:0]    cd/dvd  IMM      Virtual CD/DVD   0316  /dev/sr1 [3:0:0:0]    disk    IBM-ESXS MBF2300RC        SB27  -       [3:0:1:0]    disk    IBM-ESXS MBF2300RC        SB27  -       [3:1:1:0]    disk    LSILOGIC Logical Volume   3000  /dev/sda [4:0:0:0]    disk    IBM      2145             0000  /dev/sdb [4:0:0:1]    disk    IBM      2145             0000  /dev/sdc [4:0:2:0]    disk    IBM      2145             0000  /dev/sdd [4:0:2:1]    disk    IBM      2145             0000  /dev/sde [5:0:2:0]    disk    IBM      2145             0000  /dev/sdf [5:0:2:1]    disk    IBM      2145             0000  /dev/sdg [5:0:4:0]    disk    IBM      2145             0000  /dev/sdh [5:0:4:1]    disk    IBM      2145             0000  /dev/sdi [backcolor=rgb(245, 245, 245) !important][url=][/url]& ^8 D6 ~3 p- j5 p) ?6 m

# F1 M. E7 v" o& O7 [5 D# _* o3 B2 r+ [6 Q, V4 D0 {
! T" n* N) m/ U7 W- F- c5 Q/ |
- B# y! ?! H" q. }; Y" L3 K

( }2 [  z' D2 F) m# a" ]: C
1. multipath常用操作:
multipath -r (修改multipath.conf配置文件之后重新加载)
  \5 ~7 t+ j: `$ Y1 \/ nmultipath -ll (查看多路径状态)
8 E' Z# M) B" omultipath -v2 (格式化路径,检测路径,合并路径)' F$ U! y* s  G9 P- e' X8 D) D
multipath -v3 (查看多路径详情blacklist、whitelist和设备wwid)
- \, O, ]* }1 @3 C0 Z  {multipath -F (删除现有链路)
2. multipath文件详细介绍
接下来的工作就是要编辑/etc/multipath.conf的配置文件
multipath.conf主要包括blacklist、multipaths、devices三部份的配置3 G/ [4 f% [4 x0 F0 ?
blacklist配置
* |" g  h$ T$ t" u* J) B
blacklist {
& K8 e1 L1 |1 W/ T' U
  devnode "^sda"
4 H6 Z& p& L- Z& W4 F/ z6 C
}

6 J# m& y4 |* [  IMultipaths部分配置multipaths和devices两部份的配置。/ Q; Y0 w% [) l) w0 m
multipaths {
7 T# Y, _  d  ?, l$ ~" B8 @  multipath {
- |7 @: H1 P3 m) o. z$ R: r( B) l    wwid ****************       #此值multipath -v3可以看到
( |, w) H, }7 m! J- Z    alias iscsi-dm0         #映射后的别名,可以随便取
  y9 k8 p( u7 H    path_grouping_policy multibus   #路径组策略% W/ O, e' p& @% O. [, I  y
    path_checker tur         #决定路径状态的方法
$ X6 U1 E7 c' C2 q    path_selector "round-robin 0"   #选择那条路径进行下一个IO操作的方法, t3 t$ j* @, G0 T  N$ d, ]' |- i; M1 W
  }
$ m0 ^& i' H  t0 J5 x1 d' `}
5 Y+ _. K/ @. z% ]+ _4 M, V" YDevices部分配置% L6 T4 z8 S5 t9 O: Y( ^
devices {- I5 Z" p, F  B$ p
  device {. t, [( v: A  H' E$ a4 n, Y$ ~
    vendor "iSCSI-Enterprise"           #厂商名称
8 g1 L; G  K# Q6 P. u5 w    product "Virtual disk"             #产品型号: d3 E2 Z( Q) |% f5 ]3 ?. o3 h
    path_grouping_policy multibus         #默认的路径组策略0 O$ `# v- {4 x0 u/ @7 A
    getuid_callout "/sbin/scsi_id -g -u -s /block/%n" #获得唯一设备号使用的默认程序
: {9 R6 f0 t% T    prio_callout      "/sbin/acs_prio_alua %d"      #获取有限级数值使用的默认程序( G4 m; ^& v6 t- h: z4 ?! k$ p
    path_checker readsector0           #决定路径状态的方法! Y4 f2 \9 z8 P+ O, x/ b
    path_selector "round-robin 0"   #选择那条路径进行下一个IO操作的方法1 A, @1 \+ c: U: k+ X! a3 v
    failback        immediate     #故障恢复的模式
/ Q4 Y# A7 t+ P( g, t) l3 r      no_path_retry      queue     #在disable queue之前系统尝试使用失效路径的次数的数值
" N/ ^, V, \& D, L      rr_min_io       100       #在当前的用户组中,在切换到另外一条路径之前的IO请求的数目
' D, v: ]$ X( p/ B1 L6 \; M9 x  }
$ ~( H: u8 `  f/ i' q1 R+ m* \' |( h}
& e8 w: n- U- {9 t
相关参数的标准文档的介绍:
Attribute
Description

7 D$ s$ A" z' g8 @1 V7 Y
wwid
Specifies the WWID of the multipath device to which the multipath attributes apply. This parameter is mandatory for this section of themultipath.conf file.

- _; p1 I1 A* Y2 u, O& v: K
alias
Specifies the symbolic name for the multipath device to which themultipath attributes apply. If you are using user_friendly_names, do not set this value tompathn; this may conflict with an automatically assigned user friendly name and give you incorrect device node names.
3 A$ V8 R2 w2 N5 Q7 R9 _( l
path_grouping_policy
Specifies the default path grouping policy to apply to unspecified multipaths. Possible values include:
5 V2 w4 h* ]; s# J$ ^% t
failover = 1 path per priority group

$ b# e4 Z8 s0 }, m9 T6 d2 H
multibus = all valid paths in 1 priority group
* Y3 \, P; h- \- m
group_by_serial = 1 priority group per detected serial number
( y: z8 C  K) a- x2 ]
group_by_prio = 1 priority group per path priority value
" z3 P, h( ]" V
group_by_node_name = 1 priority group per target node name
2 U7 G- A2 D& S4 A
path_selector
Specifies the default algorithm to use in determining what path to use for the next I/O operation. Possible values include:
round-robin 0: Loop through every path in the path group, sending the same amount of I/O to each.
queue-length 0: Send the next bunch of I/O down the path with the least number of outstanding I/O requests.
service-time 0: Send the next bunch of I/O down the path with the shortest estimated service time, which is determined by dividing the total size of the outstanding I/O to each path by its relative throughput.
) j- T6 ]1 S/ K/ k  u7 p
failback
Manages path group failback.
A value of immediate specifies immediate failback to the highest priority path group that contains active paths.
A value of manual specifies that there should not be immediate failback but that failback can happen only with operator intervention.
A value of followover specifies that automatic failback should be performed when the first path of a path group becomes active. This keeps a node from automatically failing back when another node requested the failover.
A numeric value greater than zero specifies deferred failback, expressed in seconds.
8 y8 t- H4 F# ]: o4 ]6 P: C; S
prio
Specifies the default function to call to obtain a path priority value. For example, the ALUA bits in SPC-3 provide an exploitableprio value. Possible values include:
const: Set a priority of 1 to all paths.
emc: Generate the path priority for EMC arrays.
alua: Generate the path priority based on the SCSI-3 ALUA settings.
tpg_pref: Generate the path priority based on the SCSI-3 ALUA settings, using the preferred port bit.
ontap: Generate the path priority for NetApp arrays.
rdac: Generate the path priority for LSI/Engenio RDAC controller.
hp_sw: Generate the path priority for Compaq/HP controller in active/standby mode.
hds: Generate the path priority for Hitachi HDS Modular storage arrays.
& w, y2 X+ |7 F% u. ]( ~! Q
no_path_retry
A numeric value for this attribute specifies the number of times the system should attempt to use a failed path before disabling queueing.
A value of fail indicates immediate failure, without queueing.
A value of queue indicates that queueing should not stop until the path is fixed.
% r1 X- B+ O2 ~& U
rr_min_io
Specifies the number of I/O requests to route to a path before switching to the next path in the current path group. This setting is only for systems running kernels older that 2.6.31. Newer systems should userr_min_io_rq. The default value is 1000.
( k: |3 H* D" R4 q& u+ ?1 |# S
rr_min_io_rq
Specifies the number of I/O requests to route to a path before switching to the next path in the current path group, using request-based device-mapper-multipath. This setting should be used on systems running current kernels. On systems running kernels older than 2.6.31, use rr_min_io. The default value is 1.
5 P. |- }! }2 B  p
rr_weight
If set to priorities, then instead of sending rr_min_io requests to a path before callingpath_selector to choose the next path, the number of requests to send is determined byrr_min_io times the path's priority, as determined by the prio function. If set touniform, all path weights are equal.
$ e+ W+ S3 x3 ^5 v" P
flush_on_last_del
If set to yes, then multipath will disable queueing when the last path to a device has been deleted.
7 b4 R/ V3 y$ m/ {# ]

. H* l; c# E4 B
multipath与oracle ASM结合
https://www.cnblogs.com/jyzhao/p/7208620.html

/ j4 r, q5 M4 H7 ^# \. R+ p0 s
已有配置文件:
[backcolor=rgb(245, 245, 245) !important][url=][/url]# a5 ?* E8 t7 h, i% o% a( C$ p
defaults {    polling_interval    30    failback            immediate    no_path_retry       5    rr_min_io           100    path_checker        tur    user_friendly_names yes }devnode_blacklist {        devnode "sda"}devices {    device {        vendor                   "IBM"        product                  "2145"        path_grouping_policy     group_by_prio        prio_callout             "/sbin/mpath_prio_alua /dev/%n"    }    device {        vendor                   "IBM"        product                  "1750500"        path_grouping_policy     group_by_prio        prio_callout             "/sbin/mpath_prio_alua /dev/%n"    }    device {        vendor                   "IBM"        product                  "2107900"        path_grouping_policy     group_by_serial    }    device {        vendor                   "IBM"        product                  "2105800"        path_grouping_policy     group_by_serial    }}multipaths {        multipath {                wwid    36005076801820709e000000000000043                alias   dm-vote01        }}[backcolor=rgb(245, 245, 245) !important][url=][/url]/ v! W5 f  U% B' @& k2 E) m
8 s! C' J& \( }" g
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 04:39 , Processed in 0.027952 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表