易陆发现互联网技术论坛

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

Multipath相关软件介绍

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

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

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

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驱动。
' ^3 n& \4 `# H7 t
AIX
http://blog.163.com/herod_xiao/blog/static/871883992011819112227689/
) c6 @5 H6 v( ]0 f
/ r; S: t3 Q4 V& v
1. 检查multipath模块,如果没有相关模块就说明没有安装相关软件包
lsmod | grep dm_multipath
yum -y install device-mapper device-mapper-multipath

5 J8 v' L0 A$ x8 s* d4 C! \
2. 加载相关模块
modprobe dm-multipath
modprobe dm-round-robin
( m) I' X, e  u4 y8 D  x
3. 生成multipath配置文件,并配置
/sbin/mpathconf --enable
配置multipath.conf文件
! Q8 }9 s8 z7 @% [
4. 启动multipath服务
service multipathd start
chkcofig multipathd on
[backcolor=rgb(245, 245, 245) !important][url=]

' B3 E9 w- u3 `( q! M+ B                               
登录/注册后可看大图
[/url]

5 j. ~% v9 Q/ D9 s[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=]
- ?8 m# f& d0 U0 D
                               
登录/注册后可看大图
[/url]

( ]6 S$ z9 x! I1 v7 ?% [# R2 `, b" W6 X

# ]; x$ x9 P4 e
8 L- s7 D3 a5 u; U
如果完成配置后,不能使用multipath -ll查看到任何多路径信息,就需要手工重新扫描HBA信息
一般新增LUN映射给主机后,系统无法直接更新挂载的存储盘,需要重新扫描。
# cd /sys/class/scsi_host/host4/# echo '- - - ' > scan或echo "1" > /sys/class/fc_host/host/issue_lip  //某些存储或系统没有scan文件,可以通issue_lip文件识别
3 s: |, g+ |  |$ Z$ `( O$ o6 l1 C6 F- n$ J% M$ y! Q8 Z% B+ q
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
) `  C  E( n, Q5 m( g" ^/ h
2

1 H/ k  W" J3 R4 t8 V, O/ [# L
3
& a% t0 s% `0 @, k/ P$ L
4
! G8 R# T- s7 t7 ?$ r
5

  F' A  T# {; I! D7 J: T. b7 r! |
6

. f% g/ P7 L9 n: {5 w/ d, S! B# T0 U
7

- O" ?, z9 Q3 _: w& ~
8

, V- I7 w  t6 W' E7 X" H
9
% o) m. Y7 _8 ~2 ~6 Y
10
7 i6 m3 G) Q5 B/ A
11
2 O/ r. ~" r4 v% C' d" O
12

0 ]  q" C, x; B
13
* r$ @/ i2 `3 l7 j
14

9 e3 _7 Z( H7 q1 }
15

7 m! U. V5 g3 ~; X+ e* H8 u0 h
16

7 h# I$ m: t& n! F, V# Q: T3 {
17
  g9 G$ D: H6 s" o7 f2 g% C
18

% A0 y* R7 R9 x# ^; _& J% D( ?; M
Run "kpartx -a" after FDISK is completed to add all partition mappings on the

8 i' N$ [& i) d1 G0 c
newly-created multipath device

% d& ^8 Z6 Y2 V. Z- @2 L$ T% O# f% c9 Q+ \
8 S" y- Z9 R7 _

, u$ n7 L7 m# n3 f; L. f
[root@TYEDI1 host4]# ls -l /dev/mapper/dm-*

6 Z2 `' v; T* |
brw-rw---- 1 root disk 253, 0 Jan 21 22:59 /dev/mapper/dm-app

: U' {+ B) z4 I9 z: e, \1 n  U9 t; Q
brw-rw---- 1 root disk 253, 2 Jan 21 22:35 /dev/mapper/dm-arch
. F& A8 I; j4 Z$ \( x1 o& U
brw-rw---- 1 root disk 253, 1 Jan 21 22:52 /dev/mapper/dm-db
  ?) E2 R) ?+ `' I7 ]/ C

/ O$ a- J; S7 Z: C7 r) ?3 `
[root@TYEDI1 host4]# kpartx -a /dev/mapper/dm-app

% x3 v2 G6 \1 E& f' c
0 c, `6 I+ P4 _% b) Q% s6 ]
4 G+ K2 J4 s6 \& t
[root@TYEDI1 host4]# ls -l /dev/mapper/dm-*

. n. K% E+ Z+ w  X2 ?1 W
brw-rw---- 1 root disk 253, 0 Jan 21 22:59 /dev/mapper/dm-app

# `. U8 o0 ~; q7 o
brw-rw---- 1 root disk 253, 3 Jan 21 23:01 /dev/mapper/dm-app1

7 H1 a+ t7 C' R4 z
brw-rw---- 1 root disk 253, 2 Jan 21 22:35 /dev/mapper/dm-arch
9 `* ^; E1 {# _
brw-rw---- 1 root disk 253, 1 Jan 21 22:52 /dev/mapper/dm-db
2 I% c  j' I9 J9 w/ S1 V  G/ g% ?- }. d

' z5 u2 b$ k4 i) t3 ^) x
* K( p( _( |2 l7 l: O! Z. W8 Y
! N) W; v7 |& s# G" A) X# l; Y  V

7 n5 l) Y) d7 G) Z0 H, z( L
. q) w, y. E5 n% Q: V4 j  u( w+ t
/ ?9 [  o& t3 e* S9 i$ G  I9 _0 J1 d: y! J6 Z8 q( |
其他配置:
1. udev绑定权限
RHEL6.5,对于multipath的权限,手工去修改几秒后会变回root。所以需要使用udev去绑定好权限。
[backcolor=rgb(245, 245, 245) !important][url=]
8 K8 p7 `- {* @" w
                               
登录/注册后可看大图
[/url]
- z! o5 M& b; f5 Q* P+ U+ Z) ]
1)搜索对应的配置文件模板:[root@jyrac1 ~]# find / -name 12-*/usr/share/doc/device-mapper-1.02.79/12-dm-permissions.rules\
" l+ e* Q7 N. x2)根据模板新增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=]
1 P* x( s2 g+ |# Q3 n) c* T5 u( Q$ _
                               
登录/注册后可看大图
[/url]
6 ~4 g% p! N# u1 _4 u# W

4 g6 N( U3 [. `1 b- R, L1 x+ D2 |1 q. O- Z0 E$ c: M, S1 g

, m$ g1 x6 D3 E8 N* H3 _( }: D$ U6 J4 \

  b3 b6 \. R+ |  W) Q- r5 K7 |+ @7 A9 G: N
可以使用lsscsi查看识别的磁盘信息:
[backcolor=rgb(245, 245, 245) !important][url=]

" F7 A. L$ A5 ?3 W1 N* ?                               
登录/注册后可看大图
[/url]

. D7 x: A; C  T% m[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=]
# q8 m, ~: k& R+ j' {" \/ a
                               
登录/注册后可看大图
[/url]
& l! z, k8 y5 Z  ?/ b; r/ ~5 c
; F& y2 V* f" r

2 ?6 M7 ~0 U! [" V6 w9 W' D
! u: Y8 t) n" d, E. a+ ~3 l
  B7 ?1 z7 Z8 `9 T6 r6 y  \: R; R2 g" c2 {
1. multipath常用操作:
multipath -r (修改multipath.conf配置文件之后重新加载)
2 n) E  T& ]- Rmultipath -ll (查看多路径状态)& {8 |9 ?6 N, W2 u. y. \/ R% R5 [# g
multipath -v2 (格式化路径,检测路径,合并路径)
/ E9 Y) L( L: p* Fmultipath -v3 (查看多路径详情blacklist、whitelist和设备wwid)
2 C( {1 r, F% c+ K8 s- cmultipath -F (删除现有链路)
2. multipath文件详细介绍
接下来的工作就是要编辑/etc/multipath.conf的配置文件
multipath.conf主要包括blacklist、multipaths、devices三部份的配置
: P. q, N; d- qblacklist配置0 N4 e" x7 f  ]$ S
blacklist {

9 k! f* [5 S8 t* e
  devnode "^sda"
6 U/ j& |2 G* A9 J: e. b
}

" D- \2 U$ `/ j" P7 p6 HMultipaths部分配置multipaths和devices两部份的配置。3 F4 @0 K2 Q" k4 d3 g2 x$ }
multipaths {
  Z% Q4 f" v6 I: C8 _! I: C9 c  multipath {3 N  c$ f6 S8 x" z- w+ c  }
    wwid ****************       #此值multipath -v3可以看到
" w' e. c8 Q0 P1 M) |& y: b    alias iscsi-dm0         #映射后的别名,可以随便取
& F. s* h3 k# E2 h8 d/ R    path_grouping_policy multibus   #路径组策略
# [! _; E& C" c9 H3 p* g    path_checker tur         #决定路径状态的方法2 z' @* \* p2 Q8 u5 j/ A
    path_selector "round-robin 0"   #选择那条路径进行下一个IO操作的方法# T! O: J6 R$ ?: W/ L# |$ @
  }# X  M) J- F" S$ \! ^' K4 p, y
}
: V' Z2 s& D0 C7 C0 W7 |& A! FDevices部分配置8 {- W7 P$ h, J6 P' D9 E
devices {
0 L7 x2 [5 ~( r7 i  device {5 s( g) b1 A" ~, [+ s! m8 p
    vendor "iSCSI-Enterprise"           #厂商名称& S) M9 ~! S1 @
    product "Virtual disk"             #产品型号1 r7 r$ y9 K" O2 ^
    path_grouping_policy multibus         #默认的路径组策略  O8 I: i8 n7 y& x- m
    getuid_callout "/sbin/scsi_id -g -u -s /block/%n" #获得唯一设备号使用的默认程序
5 R9 }! ]/ |3 n# t    prio_callout      "/sbin/acs_prio_alua %d"      #获取有限级数值使用的默认程序9 c" U/ }  N+ i1 a# F
    path_checker readsector0           #决定路径状态的方法* K9 q4 m7 {; R# V+ |' f
    path_selector "round-robin 0"   #选择那条路径进行下一个IO操作的方法+ u( P: [9 W$ F& x1 o) l3 h
    failback        immediate     #故障恢复的模式
0 ]; W9 p# D  ^* G      no_path_retry      queue     #在disable queue之前系统尝试使用失效路径的次数的数值
! I# j: }% I$ X  p4 C      rr_min_io       100       #在当前的用户组中,在切换到另外一条路径之前的IO请求的数目
7 l$ w4 I. s$ J" d9 @0 i  }' O& _# N) F' I2 a  {3 Q) I
}" e! r6 N7 U8 V2 m2 j
相关参数的标准文档的介绍:
Attribute
Description
+ s7 X( M  g  F3 p% y( o
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.
( D9 i9 r$ C; Z# n% ?
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 p! c, {. ]* ]% S
path_grouping_policy
Specifies the default path grouping policy to apply to unspecified multipaths. Possible values include:

: f5 y$ K* k, y  W' m0 k! V
failover = 1 path per priority group

! r- O8 ~+ _( {; n( Z0 W/ K
multibus = all valid paths in 1 priority group

4 S9 h* b  p7 ]" ^" I
group_by_serial = 1 priority group per detected serial number

5 Y4 ?( H; w) |3 V( I
group_by_prio = 1 priority group per path priority value

2 X2 o1 a1 Y# a' n
group_by_node_name = 1 priority group per target node name

1 W' K+ V& w; H' G8 p7 B% l7 F! i" P
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.

7 z5 {/ p: E( T2 a
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.
/ u) f! O! @0 ?: g
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.
) V$ [, v* d$ ^2 v
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.

- I7 C5 s' x3 r! j, U4 F! X
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.

) M; u" g2 \( w  h
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.

; p8 W+ i3 b% j' @7 t
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.
4 V/ j" j; A/ l: A
flush_on_last_del
If set to yes, then multipath will disable queueing when the last path to a device has been deleted.

1 w6 p% z7 E% Z9 p; ~1 K$ l  h  J2 p6 b$ a
multipath与oracle ASM结合
https://www.cnblogs.com/jyzhao/p/7208620.html

+ n/ X# w( L$ v. L8 v2 M
已有配置文件:
[backcolor=rgb(245, 245, 245) !important][url=]

* g& o3 w7 d% i8 \6 d$ g0 O                               
登录/注册后可看大图
[/url]
& x* C2 L& S) e' G& 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=]

+ c/ G- I) p4 K# v1 s* R                               
登录/注册后可看大图
[/url]
+ J' ^" Q+ [* o) l" U
+ C  L8 X2 V* Q6 e' q  J! B$ k( a
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

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

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

GMT+8, 2026-4-8 21:36 , Processed in 0.071016 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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