易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 3911|回复: 0
收起左侧

Multipath相关软件介绍

[复制链接]
发表于 2019-5-7 12:21:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
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驱动。

7 z1 ], ~5 k: `0 w2 O4 N3 T
AIX
http://blog.163.com/herod_xiao/blog/static/871883992011819112227689/
- n& b6 H* l+ H0 o! A/ d% t3 {

% T) V( t/ c' g; c' w6 N* T
1. 检查multipath模块,如果没有相关模块就说明没有安装相关软件包
lsmod | grep dm_multipath
yum -y install device-mapper device-mapper-multipath

8 t/ s0 U  D2 e
2. 加载相关模块
modprobe dm-multipath
modprobe dm-round-robin
) f2 v6 t- [5 I. i, K+ D
3. 生成multipath配置文件,并配置
/sbin/mpathconf --enable
配置multipath.conf文件
  R% b9 ~( e9 a' e( }0 G1 r
4. 启动multipath服务
service multipathd start
chkcofig multipathd on
[backcolor=rgb(245, 245, 245) !important][url=]

; K% C. g' c8 {. ~8 |/ s8 ~                               
登录/注册后可看大图
[/url]
, d3 w6 c" u7 c; j/ M
[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=]

, f; l, B, L/ [) V  H, I: t! K3 g2 F                               
登录/注册后可看大图
[/url]
- T, G" n6 e. G- u

0 L; h$ ]) m+ l% U
8 V% G  f5 [0 ?
9 o$ E5 s' a9 A! T+ ^* L
如果完成配置后,不能使用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* ~( W4 C
# t# k* I8 C. f- M9 k# P7 M
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
+ g0 S+ {+ C% x( U+ @  R! F2 s
2
- G$ Q0 Z* C' j3 J% V
3
" ]4 T2 d4 U+ w, @
4
( l) i8 B7 h  L4 f% w  ^) u
5

9 g; Z5 u8 E7 L  L( A1 g
6

  Y/ }2 Y! d( s( K
7
& L! `4 Q# f3 B% N* H
8
( I: U' I- G' n% ~
9

! y) E0 _) L( i9 j& f: P/ W& P
10

) i& [0 U: H1 y
11
+ y7 o1 p  n; ]" ^
12

& R" N% y& H5 c! k5 `! T- w- r- O+ Y/ }
13
& B7 Y' @' [. [8 w( P7 A) o
14

. e  A: e) |* u' Z1 m8 r& P+ e( Y7 G
15
9 s2 f& p8 K' O  ?, r. p7 `5 V( P
16

0 X' n* z) w% {/ A; t
17
, v$ E: M% D5 B
18

+ }7 `8 d1 j& g) b0 p  ^9 F' `
Run "kpartx -a" after FDISK is completed to add all partition mappings on the

. B1 s8 }( G* y
newly-created multipath device

, e1 H# w$ @( k$ r( j# V3 {' k- V3 N- _
. b, S, l3 n+ J, u% L. J
2 M* f$ Q! l3 s, p# V
[root@TYEDI1 host4]# ls -l /dev/mapper/dm-*

1 D2 c& c% E! j5 w) U
brw-rw---- 1 root disk 253, 0 Jan 21 22:59 /dev/mapper/dm-app
& Y" ^9 V5 p  Z' H& U$ P
brw-rw---- 1 root disk 253, 2 Jan 21 22:35 /dev/mapper/dm-arch
- M- G5 o$ E: i7 K. R. b
brw-rw---- 1 root disk 253, 1 Jan 21 22:52 /dev/mapper/dm-db

0 W4 ]0 }& P& |+ r6 n5 {1 F6 m
[root@TYEDI1 host4]# kpartx -a /dev/mapper/dm-app

/ l1 N; v$ H" y7 g- o8 D- v1 J( T3 j

" w  b* e" }9 T, I
[root@TYEDI1 host4]# ls -l /dev/mapper/dm-*

: J1 b6 }4 W: Q7 K4 Y, m5 f
brw-rw---- 1 root disk 253, 0 Jan 21 22:59 /dev/mapper/dm-app
# M6 j' h+ f4 O* I+ G- I1 g5 W
brw-rw---- 1 root disk 253, 3 Jan 21 23:01 /dev/mapper/dm-app1

0 o0 L' F" E! x7 p2 h
brw-rw---- 1 root disk 253, 2 Jan 21 22:35 /dev/mapper/dm-arch
8 a1 h4 T9 V; {4 P0 O) w, }( t( O
brw-rw---- 1 root disk 253, 1 Jan 21 22:52 /dev/mapper/dm-db
! t+ S4 h- M4 s( z9 W7 W& d5 f
4 d; J; t0 P5 x/ B2 E

! Q5 N& Q  X  w& }/ z' a+ R+ h
0 }* L6 `. m3 g+ ?$ z
3 M" D( Q9 ]1 R& ?) y/ ]

% L& y: n5 B- J; F! f1 [- c) G: {; z# ]- F8 F: j

$ b% C  m, a6 t; ?; R" I/ J
其他配置:
1. udev绑定权限
RHEL6.5,对于multipath的权限,手工去修改几秒后会变回root。所以需要使用udev去绑定好权限。
[backcolor=rgb(245, 245, 245) !important][url=]

6 W; n  r+ g) L7 [, W$ o                               
登录/注册后可看大图
[/url]
. {3 C9 ?2 m% M& E0 h
1)搜索对应的配置文件模板:[root@jyrac1 ~]# find / -name 12-*/usr/share/doc/device-mapper-1.02.79/12-dm-permissions.rules\
6 e, V- y5 W; `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=]

: v( X2 A# O. b% T" j                               
登录/注册后可看大图
[/url]

9 K7 x! t& J" S' B. O% k( L! N$ f( Q, n

7 J. h  q6 Y. F( a- A9 c6 F, H+ f% T9 S* R
) T) b* Q/ h' \+ c: f
: w/ D' C# k' F( E- d
6 e8 l5 k7 b- b9 j( Z; X" G
可以使用lsscsi查看识别的磁盘信息:
[backcolor=rgb(245, 245, 245) !important][url=]

; S3 ]! v. i" D3 @, E) g% D                               
登录/注册后可看大图
[/url]

. T+ j  j# p/ t! N) z: }6 Y2 V* a[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=]
5 j, |1 @8 S2 y4 I. ~/ F
                               
登录/注册后可看大图
[/url]

+ v% w" z6 @. F( D; @9 ]+ |/ _1 p: Y8 w. @0 e  i

8 Z; w# O$ R/ m2 c$ h
6 o9 e4 A0 [% n6 Y7 C0 K2 b: y; A4 z% u, @! ]8 U3 G

4 Y0 y3 H) Y' m0 U9 Q# D
1. multipath常用操作:
multipath -r (修改multipath.conf配置文件之后重新加载)1 G$ C% a$ y/ `& S( x
multipath -ll (查看多路径状态)+ ?) R8 L6 {" @
multipath -v2 (格式化路径,检测路径,合并路径)8 L* T) P+ R3 M: F8 g  T/ t
multipath -v3 (查看多路径详情blacklist、whitelist和设备wwid)& I' h% V) k# K: \, {+ G: R
multipath -F (删除现有链路)
2. multipath文件详细介绍
接下来的工作就是要编辑/etc/multipath.conf的配置文件
multipath.conf主要包括blacklist、multipaths、devices三部份的配置
! E5 O, W* ?3 x, p% X) iblacklist配置
$ o% h' h: x! N% m; o4 }
blacklist {
7 j# R8 b2 T$ t: g( E4 {6 ]
  devnode "^sda"
* U, c5 X( v9 r. G
}
9 ^* }$ t# {0 `/ w
Multipaths部分配置multipaths和devices两部份的配置。  k: k" r" ?- Q
multipaths {& Y- h( h0 H- H
  multipath {3 s' D% R7 s2 X7 |0 V
    wwid ****************       #此值multipath -v3可以看到
1 Q! S. t% |# g3 q0 ]    alias iscsi-dm0         #映射后的别名,可以随便取3 O- }+ j  f% R9 d9 S! ~. r3 b/ S( v3 @) w
    path_grouping_policy multibus   #路径组策略
8 |# v; X& H* u0 i- M% N* c    path_checker tur         #决定路径状态的方法
; M4 B! v! l/ u% i2 x    path_selector "round-robin 0"   #选择那条路径进行下一个IO操作的方法4 k2 i5 z% R6 G1 c$ r. r
  }& Y; E& r7 m8 Y( O; W
}5 k& P' S; f9 n* k. e% }, \
Devices部分配置4 p2 Q5 `, Y; ?' M
devices {
6 U# y/ }6 j3 U9 r* _5 i+ e  device {
# I. K+ T. H4 Q) C* w    vendor "iSCSI-Enterprise"           #厂商名称
1 A; ]) ~% D2 ~8 H) ~    product "Virtual disk"             #产品型号
7 ^4 {2 _9 Z2 h8 X' Y. N    path_grouping_policy multibus         #默认的路径组策略3 E* Z' W' ?- r6 N5 e' P0 V  L
    getuid_callout "/sbin/scsi_id -g -u -s /block/%n" #获得唯一设备号使用的默认程序* H8 A! v. q( s! N" Q
    prio_callout      "/sbin/acs_prio_alua %d"      #获取有限级数值使用的默认程序
: L, i! X( X: h- @# h1 u    path_checker readsector0           #决定路径状态的方法' H8 d- Z% v- i2 m' t. F1 y& a7 X
    path_selector "round-robin 0"   #选择那条路径进行下一个IO操作的方法& Z) I6 q% Z% m
    failback        immediate     #故障恢复的模式
% y# A( u$ m& \0 T+ G" B! ^9 Z/ _      no_path_retry      queue     #在disable queue之前系统尝试使用失效路径的次数的数值
/ V. l2 J1 \6 l( x1 q      rr_min_io       100       #在当前的用户组中,在切换到另外一条路径之前的IO请求的数目
6 \6 m4 @1 ^4 R0 f+ ^  }
! j. X" p  n$ t& D: X/ ~}
! l4 i1 K4 Z1 f% h
相关参数的标准文档的介绍:
Attribute
Description
5 v& X' O8 C2 C' c. s" \
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.

  c' A9 c& S# K( P& Q0 v# |& l
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.

# ~* r+ r9 z4 I5 P) v
path_grouping_policy
Specifies the default path grouping policy to apply to unspecified multipaths. Possible values include:

  v% M' s. I7 r. f
failover = 1 path per priority group
5 m4 E, }" S! M; c& t2 a9 ?1 F0 N0 w
multibus = all valid paths in 1 priority group
3 O# L: D3 B1 ^% X. e; Z$ c
group_by_serial = 1 priority group per detected serial number
- j! A0 r% c+ f5 {
group_by_prio = 1 priority group per path priority value

0 Z: `6 y* V7 r) E
group_by_node_name = 1 priority group per target node name
, |' u0 k; N8 l5 v& @4 w1 m+ K
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.
2 B! i% D8 U& U* p- l
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.
+ C7 O  |* A. V' ^8 g, V" u/ {, S+ b6 [
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.
. S% _! i. m. R' P
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.
( |8 d4 D2 @4 U+ U# p+ z
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.

; l9 x) A  h7 w: t: R
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.

, U6 i) @5 r. m4 W! z' \% g
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.

3 S6 t8 Q( k( k+ X0 Q
flush_on_last_del
If set to yes, then multipath will disable queueing when the last path to a device has been deleted.
6 c7 f7 ]7 u, i+ s
9 n1 @0 {/ A  f* {7 O" Z
multipath与oracle ASM结合
https://www.cnblogs.com/jyzhao/p/7208620.html

: C$ Y: Y$ H# ~2 `: T
已有配置文件:
[backcolor=rgb(245, 245, 245) !important][url=]

( I& e; o7 _- a1 @                               
登录/注册后可看大图
[/url]
; X6 C6 J$ y0 G2 Q' i: g' }
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=]
4 k" I1 F$ r% b0 W8 J' y
                               
登录/注册后可看大图
[/url]

' N1 S& d, t7 ]" N$ M* A  U, i4 t
3 t( x* c. \# x+ ?% l% b" m
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 21:32 , Processed in 0.057398 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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