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

Multipath相关软件介绍

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2019-5-7 12:21:17 | 显示全部楼层 |阅读模式
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驱动。
( B/ h1 y/ ^- |8 T, o: K/ ?
AIX
http://blog.163.com/herod_xiao/blog/static/871883992011819112227689/
* r2 J! k/ U  G5 t/ ~5 U. J" v3 M

( w8 p5 r1 j7 ^; D0 Y! ~
1. 检查multipath模块,如果没有相关模块就说明没有安装相关软件包
lsmod | grep dm_multipath
yum -y install device-mapper device-mapper-multipath
' W/ J$ g1 Y6 Z" N* m
2. 加载相关模块
modprobe dm-multipath
modprobe dm-round-robin
  q$ \9 q& B5 h
3. 生成multipath配置文件,并配置
/sbin/mpathconf --enable
配置multipath.conf文件

9 [# P; M6 _; I, W
4. 启动multipath服务
service multipathd start
chkcofig multipathd on
[backcolor=rgb(245, 245, 245) !important][url=][/url]! ?4 r$ q  i0 U1 u0 B
[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]
8 U- x9 d3 X% S9 s! Q5 V
% ^( U5 m! ~  e- p9 D( w6 E$ v$ ?9 J$ ?

* O' g4 K$ D$ }3 |# k
如果完成配置后,不能使用multipath -ll查看到任何多路径信息,就需要手工重新扫描HBA信息
一般新增LUN映射给主机后,系统无法直接更新挂载的存储盘,需要重新扫描。
# cd /sys/class/scsi_host/host4/# echo '- - - ' > scan或echo "1" > /sys/class/fc_host/host/issue_lip  //某些存储或系统没有scan文件,可以通issue_lip文件识别- @, e9 [: o- c0 k: f8 f
0 v- W9 e' c1 e; T# ~" s' e
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

% p' f) ]. J$ j- N
2

" p  @& F: O9 b  W4 k
3
, q4 y9 I2 U: D5 j6 z6 g
4
7 h  _3 Z* b1 `; M. v
5
) t6 I# R& X0 e, w
6
& B2 D. r5 P  s. w2 C7 {
7
* I. g& ^7 v5 f1 X5 l9 M# P
8

& o% ?3 K$ o; C  s; z
9

- u" h% I1 ?$ f) }5 }
10

& W+ ^( r) q! Q  H+ \6 d
11

5 \- F7 R" Q5 ?$ i% `9 E
12

; ~, j& j5 f0 n; f9 B. A* w- a4 g
13
& ~, X( S3 j; c1 ?6 _: _
14
, C! n- h4 P3 |' S
15

/ x" ^  I2 V8 q- N
16

  S: Z, {& x: n( j
17

9 O& @) m( t2 L
18
2 b. V( N: N# z. k7 f7 G& s- x
Run "kpartx -a" after FDISK is completed to add all partition mappings on the
+ K- T) E4 w9 }& `$ W7 H
newly-created multipath device
' \/ \/ D, o" P3 u& q
8 O- ^; c% K1 y' G  R2 B

8 S2 O+ c/ T4 k. F  N8 k
) |" [' B( |% [$ U2 J6 K; R4 I
[root@TYEDI1 host4]# ls -l /dev/mapper/dm-*
- b6 r; \+ o2 p2 K, M$ j; f7 @- Q
brw-rw---- 1 root disk 253, 0 Jan 21 22:59 /dev/mapper/dm-app

- C+ v+ b1 t( ?8 W( i6 p. S& a/ I; o
brw-rw---- 1 root disk 253, 2 Jan 21 22:35 /dev/mapper/dm-arch

+ ?# \% ]9 L. u; H" }0 u
brw-rw---- 1 root disk 253, 1 Jan 21 22:52 /dev/mapper/dm-db

$ q6 d3 D$ }4 }* c: Y) n: D* Y* n! j, T) N3 i- s& V
[root@TYEDI1 host4]# kpartx -a /dev/mapper/dm-app

' R' r) e* S& `$ B
) b- N- w4 c8 C0 N. p* k% u4 x, K8 D! G) J- l+ c8 I
[root@TYEDI1 host4]# ls -l /dev/mapper/dm-*
$ \4 O. D% }8 _5 M7 S+ [* |
brw-rw---- 1 root disk 253, 0 Jan 21 22:59 /dev/mapper/dm-app

( ]' G1 f; u5 M3 T: k6 D
brw-rw---- 1 root disk 253, 3 Jan 21 23:01 /dev/mapper/dm-app1
3 S% k3 `3 U: U) M4 h2 s
brw-rw---- 1 root disk 253, 2 Jan 21 22:35 /dev/mapper/dm-arch

1 D6 ~: s: D+ w$ c+ Q( \8 I
brw-rw---- 1 root disk 253, 1 Jan 21 22:52 /dev/mapper/dm-db

& t, B) J" @$ ?0 p! v& r
8 H7 G; b3 r& L& Q

5 z1 y7 P5 \8 B" R  b4 s% w+ I; O; U( _3 _  g; C0 a3 ^- i/ j

  c* l) w' s/ k+ i5 z3 b. K4 \/ W4 V2 a

/ `- P5 [8 @, G; H4 r, d; D) K$ k: Z' f8 I) ^$ U( K7 t; O
其他配置:
1. udev绑定权限
RHEL6.5,对于multipath的权限,手工去修改几秒后会变回root。所以需要使用udev去绑定好权限。
[backcolor=rgb(245, 245, 245) !important][url=][/url]1 ?$ m! n" w/ X1 Z) ~. _% ^" i* C4 ?/ v
1)搜索对应的配置文件模板:[root@jyrac1 ~]# find / -name 12-*/usr/share/doc/device-mapper-1.02.79/12-dm-permissions.rules\8 e3 _4 w) V, e
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]/ _& d. [8 O3 b1 {

" A4 F! N+ E8 C
2 U* O) K. z# D" Y$ G: r
, T  m7 W- B8 l- u& }! p
1 g8 f( u* N: {, s" H- T% ]6 V6 E6 e3 M
5 r' P. i2 B# }( c# Q' N3 E
可以使用lsscsi查看识别的磁盘信息:
[backcolor=rgb(245, 245, 245) !important][url=][/url]
) ?" s5 w- _6 |! \3 r9 f: w; g[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]
, Y: n3 Q3 x, _, N- W' R" e! n
, _0 f* L  S* V, X1 G. C1 o# _- B8 ^. n! s8 u

+ _9 f( D* @$ o) ?! C9 U" |& A% F/ V3 ~1 v. q) p! J/ k

" I; j) I( f8 T" }
1. multipath常用操作:
multipath -r (修改multipath.conf配置文件之后重新加载)  _. ?$ m' b7 R
multipath -ll (查看多路径状态)
! E9 ]" `, G) o* K6 }. bmultipath -v2 (格式化路径,检测路径,合并路径)
/ L8 i0 E0 m; l' I& d$ ^: Wmultipath -v3 (查看多路径详情blacklist、whitelist和设备wwid)
- U- S/ D+ `7 E$ s' Gmultipath -F (删除现有链路)
2. multipath文件详细介绍
接下来的工作就是要编辑/etc/multipath.conf的配置文件
multipath.conf主要包括blacklist、multipaths、devices三部份的配置8 ]7 r) c- }* t( ?
blacklist配置
9 B1 v# s5 g" j' D% E7 K( {
blacklist {
5 t4 G6 A& x  _; _0 s9 O# o
  devnode "^sda"

6 ]% ?5 C; h" y3 N7 _
}

* k5 m2 b* R+ v/ O6 U% z7 UMultipaths部分配置multipaths和devices两部份的配置。
* X# ~8 I6 Z" V- ?9 E- mmultipaths {
$ P7 D6 M! ]& H  multipath {' ~, w4 o/ |! e: U+ m1 i; p
    wwid ****************       #此值multipath -v3可以看到
- S! ^4 C+ m* ?* S, R    alias iscsi-dm0         #映射后的别名,可以随便取
6 N( S- q* Y9 b( T. S+ w    path_grouping_policy multibus   #路径组策略
9 R5 n# u8 X! o    path_checker tur         #决定路径状态的方法3 J8 w6 a' X* [0 i* \, \  V
    path_selector "round-robin 0"   #选择那条路径进行下一个IO操作的方法- ~  @/ f5 \  R
  }
6 k! f! C/ G( H# ^/ @9 h}
& h2 p# t; r3 V$ q7 m  HDevices部分配置$ f4 f1 I- H9 W4 s9 Y
devices {/ g( i3 K) \6 D# Y
  device {
: b+ [/ b* A. h3 \+ k0 ?; l    vendor "iSCSI-Enterprise"           #厂商名称/ q. `0 w7 [; K% e$ l- t1 Y
    product "Virtual disk"             #产品型号
. h; y+ d, K0 z4 Z1 j7 E1 x    path_grouping_policy multibus         #默认的路径组策略3 l) U2 P! Y. }* V* Y4 d, H! K- E
    getuid_callout "/sbin/scsi_id -g -u -s /block/%n" #获得唯一设备号使用的默认程序5 y' X) D/ i) m2 p0 J; j
    prio_callout      "/sbin/acs_prio_alua %d"      #获取有限级数值使用的默认程序
$ M7 Z( S( e0 m    path_checker readsector0           #决定路径状态的方法+ l) r' o. [# d' Q) h9 b
    path_selector "round-robin 0"   #选择那条路径进行下一个IO操作的方法
: @& c& ?) v! M4 x2 v4 a8 K    failback        immediate     #故障恢复的模式5 @" N6 t6 e; r2 n% h9 c( [. Y: ~
      no_path_retry      queue     #在disable queue之前系统尝试使用失效路径的次数的数值
8 G9 R+ W/ n- u& v5 h; ?      rr_min_io       100       #在当前的用户组中,在切换到另外一条路径之前的IO请求的数目
6 f3 K. H: k( r* E2 v  }3 q( E* a/ H- Y9 r
}
- g4 i2 w* {2 l* ?" U
相关参数的标准文档的介绍:
Attribute
Description
7 x. I! K2 p! D, \* p9 V* 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.

2 L2 p# J' y  u& }
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.
( i' k+ T" D( I# Z$ H( ~# b& V
path_grouping_policy
Specifies the default path grouping policy to apply to unspecified multipaths. Possible values include:

6 k% E0 A' V  _
failover = 1 path per priority group

# x8 }: |* S# c, T
multibus = all valid paths in 1 priority group
( Y0 z! p1 S! u! o+ \8 M! |( f
group_by_serial = 1 priority group per detected serial number
) L8 z6 F  x& B* z# M
group_by_prio = 1 priority group per path priority value
, ~! b. J+ j, C2 I% B& J/ W! q
group_by_node_name = 1 priority group per target node name
( B( ~3 e- |+ Q4 Z$ s' y
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.

5 `0 j: }7 x3 Q4 d& w
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.

. a: E7 h  y0 r6 j5 U9 i
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.
: O, `" d' e+ ]0 M* ^1 G
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.

+ c- L8 P2 N1 o5 y
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.
0 L8 k+ }9 k% ^& n' G! a5 l
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.

# r5 }: {1 q$ ?
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.

7 s3 z8 B- x+ j7 i/ J% Q' x
flush_on_last_del
If set to yes, then multipath will disable queueing when the last path to a device has been deleted.

9 m6 {% B; C6 d/ x! o% r: D; z2 p3 W' [) K$ r6 |  w5 J
multipath与oracle ASM结合
https://www.cnblogs.com/jyzhao/p/7208620.html

; N* Y# D" q% I1 x* h# Z* q
已有配置文件:
[backcolor=rgb(245, 245, 245) !important][url=][/url]. X$ G/ h( A6 K) B' I. |' E' E
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]8 p9 |4 P& i/ t% j% v7 u7 Z! i
; O" G, _$ \& U( |) C
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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