易陆发现互联网技术论坛

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

multipath操作命令 linux系统出现多路径

[复制链接]
发表于 2021-8-12 12:00:19 | 显示全部楼层 |阅读模式

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

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

x
[root@ceph1 ~]# lsblk 3 N. s* I6 B/ n! X9 F8 a) e0 H
NAME            MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT' ?4 A2 U; X4 r* U* h; \
sda               8:0    0 557.9G  0 disk  
; j& L$ S4 c/ J9 }/ L  L1 L3 O" }├─sda1            8:1    0     1G  0 part  /boot
+ D  L! x. Z  k! M0 q└─sda2            8:2    0 556.9G  0 part  + u' z# b. j# I+ O" d; V
  ├─centos-root 253:0    0 552.9G  0 lvm   /, ^1 h; v8 a/ n9 {# [& x
  └─centos-swap 253:1    0     4G  0 lvm   [SWAP]5 T% l% N/ e# ^3 T! r
sdb               8:16   0 447.1G  0 disk  1 T+ C1 k* P: ?, m4 P
└─mpathj        253:9    0 447.1G  0 mpath % ^) d, Q- ~0 ?/ a9 q
sdc               8:32   0 447.1G  0 disk  ) }7 {' T0 {: R
└─mpathi        253:10   0 447.1G  0 mpath
+ K- j0 b3 ?9 ^5 Z1 psdd               8:48   0   3.7T  0 disk  
8 R: K' w, p; E9 m$ n└─mpathc        253:8    0   3.7T  0 mpath & I; t# x* t; X) t- }
sde               8:64   0   3.7T  0 disk  
$ ]3 S% {8 p8 @6 N2 f4 j# l3 W└─mpathh        253:2    0   3.7T  0 mpath & g# d& d. @. L
sdf               8:80   0   3.7T  0 disk  5 F+ M# u( M/ P7 z7 `6 _7 {
└─mpathf        253:7    0   3.7T  0 mpath   F$ G% i6 L) F' H  N# x. J
sdg               8:96   0   3.7T  0 disk  3 Q* S2 B' Y: w
└─mpathd        253:11   0   3.7T  0 mpath , e9 D+ E  _) y: B, s7 g8 S
sdh               8:112  0   3.7T  0 disk  
0 Q0 }5 H* M9 ?( a* i└─mpathk        253:6    0   3.7T  0 mpath
( h3 E2 o+ b$ }" @! Dsdi               8:128  0   3.7T  0 disk  
6 I: X8 I, U/ I. x7 _└─mpathb        253:12   0   3.7T  0 mpath
: D7 w  d$ V- @5 K+ H1 U& L; @3 nsdj               8:144  0   3.5T  0 disk  7 z: }3 B1 W# I9 W4 E4 G- l2 M5 _& g, p
└─mpathe        253:4    0   3.5T  0 mpath
2 h0 H( w% j  L$ n! |/ x$ Psdk               8:160  0   3.5T  0 disk  
1 l+ v7 l& C+ c: E& F$ p9 Z└─mpathg        253:3    0   3.5T  0 mpath
9 O+ I0 D: |$ z0 J( ?, j, L' fsr0              11:0    1  1024M  0 rom   + x/ T# @( P$ f- [1 p
sr1              11:1    1  1024M  0 rom   
' j& l7 r( y6 Snvme0n1         259:0    0 349.3G  0 disk  2 p5 Q1 X4 Y% u3 {% D, O" k+ e% l
└─mpatha        253:5    0 349.3G  0 mpath
) c/ s' ^# h+ D2 i$ M[root@ceph1 ~]# multipath -F. Z) L- b! U) w7 F. [9 T! Q) M
Aug 12 11:31:24 | /etc/multipath.conf line 3, invalid keyword: udev_dir

0 x3 x( w8 C( ~: q
0 w) d9 S) Q7 b% f, P5 @! P

" [/ K0 r% g- ~7 h9 Y: }: l* [3 i' b; Y: l+ I) V$ m
; w& D, Q+ M2 [! o$ Z- Y" g: g( w$ [
multipath操作命令
3 J) o4 I/ f# {, n2 J
# /etc/init.d/multipathd start #开启mulitipath服务: j4 h9 v  j5 _. r0 t. y
# multipath -F #删除现有路径, j/ }7 {- t  P; K+ e+ a% G( y  X
# multipath -v2 #格式化路径
' H* N* ~5 L7 {7 Z9 O: k# multipath -ll #查看多路径
1 h; k6 I: j7 H# Q1 P1 g* E5 m/ u* _: O, t
( r% _+ @# P$ o" M2 I. [

3 e2 U% {# l& M6 Z

/ n4 f" i; w3 J6 g4 j[root@ceph1 dev]# multipath1 [6 n6 \- [( M$ q# i
multipath   multipathd  ; ~' K% s( Q9 g- K0 {& \- e
[root@ceph1 dev]# multipath -ll
' _2 g$ |9 J3 x0 y2 ]/ o# j& NAug 12 11:33:33 | /etc/multipath.conf line 3, invalid keyword: udev_dir' K1 J+ p0 S; S3 c, Z
[root@ceph1 dev]# multipath -l
+ ~% t# X* [( ~1 n1 s- |' E+ n0 kAug 12 11:33:37 | /etc/multipath.conf line 3, invalid keyword: udev_dir
9 x( ]- Q! D. I4 S- i" t! |# [[root@ceph1 dev]# multipath -ll
4 a; P! N. Q& z, vAug 12 11:33:39 | /etc/multipath.conf line 3, invalid keyword: udev_dir

; [8 Z3 ^3 d, `4 H
$ A" _$ Y$ n9 [
7 K9 Z. f6 T6 T6 {
: z/ {7 [( Y/ ]9 A* B9 |% a0 f

9 L3 _. e+ R: J% R9 t; U[root@ceph1 dev]# multipath -F) _% c9 ~8 m+ N
Aug 12 11:34:33 | /etc/multipath.conf does not exist, blacklisting all devices.
0 W" f. @. P% ZAug 12 11:34:33 | A default multipath.conf file is located at" l6 K  h/ w2 F
Aug 12 11:34:33 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
: _  q' z/ Z; p4 A  JAug 12 11:34:33 | You can run /sbin/mpathconf --enable to create
% [6 ^# M: ~8 p# TAug 12 11:34:33 | /etc/multipath.conf. See man mpathconf(8) for more details

7 u: k8 {# l, _* f$ P, n
 楼主| 发表于 2021-8-12 12:00:20 | 显示全部楼层
[root@ceph1 ~]# lsblk : {$ @# P- ^& K/ r5 G
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT9 q' B9 E; G& b4 d8 \( c" \
sda               8:0    0 557.9G  0 disk 7 M8 a5 K8 J8 k  b2 t4 b
├─sda1            8:1    0     1G  0 part /boot# F0 w6 W; `! Y/ Y
└─sda2            8:2    0 556.9G  0 part $ P: j) @& y2 w) L" E- A
  ├─centos-root 253:0    0 552.9G  0 lvm  /
' D1 f; M* z& l5 @8 W/ H1 r+ W  └─centos-swap 253:1    0     4G  0 lvm  [SWAP]  {% e0 Q8 r2 I; b. A+ w1 M; g" a
sdb               8:16   0 447.1G  0 disk . a1 D! j; M9 M" o
sdc               8:32   0 447.1G  0 disk
; S0 M, o* F8 y% z1 O, n" Ksdd               8:48   0   3.7T  0 disk ' z& Y9 i# Y) \& X: g
sde               8:64   0   3.7T  0 disk + o; a5 T; b7 ~8 N6 z/ @; G
sdf               8:80   0   3.7T  0 disk & C; L$ y; I$ M) P/ U: u3 u
sdg               8:96   0   3.7T  0 disk
. T' J' |) e6 p' J, a- csdh               8:112  0   3.7T  0 disk # q& E& |+ ]9 h& V0 H) X! S* R
sdi               8:128  0   3.7T  0 disk
- p" D$ `% a( I: tsdj               8:144  0   3.5T  0 disk
2 L1 n/ x" u/ Qsdk               8:160  0   3.5T  0 disk
1 E8 X7 x( h# g# w/ S/ t9 osr0              11:0    1  1024M  0 rom  
8 B& i0 R! X5 K2 ]/ a( Ksr1              11:1    1  1024M  0 rom  * W$ x8 T0 W; _& d: c" p; e& F
nvme0n1         259:0    0 349.3G  0 disk - J6 g7 K& G" i9 H* ?

2 d& q/ g1 r  z  Q9 d* w; r重启系统之后,看见问题视乎解决了。
 楼主| 发表于 2021-8-12 12:00:21 | 显示全部楼层
4、 multipath磁盘的基本操作* K$ V7 M! t' e/ y& Z1 }
要对多路径软件生成的磁盘进行操作直接操作/dev/mapper/目录下的磁盘就行.
% {3 V3 |$ F) N' y在对多路径软件生成的磁盘进行分区之前最好运行一下pvcreate命令:9 Y$ _( h* x" ]6 b
# pvcreate /dev/mapper/mpath0
+ |1 \4 F+ b" X3 C4 n! {( N& M3 }, k# fdisk /dev/mapper/mpath0
$ i2 L( z8 Q  V1 Yp_w_picpath  K! K% T1 W+ p4 [1 t  ^
用fdisk对多路径软件生成的磁盘进行分区保存时会有一个报错,此报错不用理会。
0 v* o( I+ [6 K% k) A* o4 vfdisk对多路径软件生成的磁盘进行分区之后,所生成的磁盘分区并没有马上添加到/dev/目录下,此时我们要重启IPSAN或者FCSAN的驱动,如果是用iscsi-initiator来连接IPSAN的重启ISCSI服务就可以发现所生成的磁盘分区了9 M( K3 V4 |; m, y, Z
# service iscsi restart
2 i" D' }# g+ ^# ls -l /dev/mapper/
& J& F4 _  V5 ]# x+ E7 P' O: ^3 Y( Bp_w_picpath
: Z' _- `$ p* I* `; n) o& D- |如上图中的mpath0p1和mpath1p1就是我们对multipath磁盘进行的分区
% R. P; i; A" i: Q4 Y. B4 e& T8 n% e# mkfs.ext3 /dev/mapper/mpath0p1 #对mpath1p1分区格式化成ext3文件系统, o6 S5 |. l8 O% }0 A0 ]: n
# mount /dev/mapper/mpath0p1 /ipsan/ #挂载mpath1p1分区. ^0 O% y( W- [0 Q' u2 S
p_w_picpath
! a3 k0 e; ]: M6 y  s8 v- f ( g+ }* U/ s+ ?6 G. y: s/ s

3 V" \. M. g$ T# R& \ 0 p) ~8 I# w) P$ \
四、multipath的高有配置+ ~& X/ J# F. Y$ g( d6 o; R" x  J9 y
以上都是用multipath的默认配置来完成multipath的配置,比如映射设备的名称,multipath负载均衡的方法都是默认设置。那有没有按照我们自己定义的方法来配置multipath呢,当可以。, c! E- q2 t8 f& g' A
1 、multipath.conf 文件的配置' }0 S3 R0 Y3 B5 q& _7 W" P
接下来的工作就是要编辑/etc/multipath.conf的配置文件
7 Y8 C: c* Y, t6 l) y7 Cmultipath.conf主要包括blacklist、multipaths、devices三部份的配置
5 i. u; J7 N' L; {" wblacklist 配置
& l; \  ?6 }( R2 Rblacklist {
. X2 I* F% f' n7 ~3 Hdevnode "^sda"
9 J1 c9 C. h. _/ K7 v9 p}
2 F; a! C+ \) w4 S( HMultipaths 部分配置multipaths和devices两部份的配置。
, S9 G7 a% p2 e9 Bmultipaths {* N' \' t: B3 B$ f' z/ \, ]' y$ g, Q
multipath {* K7 N. p$ `; E) C7 Y
wwid **************** #此值multipath -v3可以看到7 U, U& e* g# N6 S- @, L) W* ~9 _+ t
alias iscsi-dm0 #映射后的别名,可以随便取' T  ]. E" X* o# g8 O+ t2 y1 F; U2 h
path_grouping_policy multibus #路径组策略
7 Q6 ?4 c( s, ?6 p1 kpath_checker tur #决定路径状态的方法
" a& G7 N# W  }" x; H" m! jpath_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法! j7 J9 A: y5 P, h& U
}# A6 `+ V' P" C# g
} . ?2 N. [% c1 j/ L
Devices 部分配置( s2 h+ r/ B9 L/ K$ M: Q0 [0 K" ~. G: R: f
devices {
5 w/ T" l0 g4 ]1 H; m4 Tdevice {0 ~6 x% C4 p( k: H7 D( J
vendor "iSCSI-Enterprise" #厂商名称
9 }# G4 D& r; T( I7 Lproduct "Virtual disk" #产品型号# ^+ j8 @/ ~* Z: {# |- J2 [: e; z
path_grouping_policy multibus #默认的路径组策略
( X+ p' G9 l  J9 T( I0 \) |getuid_callout "/sbin/scsi_id -g -u -s /block/%n" #获得唯一设备号使用的默认程序- [' u/ J+ H8 k+ ]& L
prio_callout      "/sbin/acs_prio_alua %d" #获取有限级数值使用的默认程序
) p+ [, E) m3 D7 y. }: Fpath_checker readsector0 #决定路径状态的方法" G& }( [* r3 a; g7 x6 K+ q
path_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法: ^* P/ R( K- k$ i$ g
failback        immediate #故障恢复的模式) [- B2 g# a6 P5 \6 n' e1 e8 C3 i
   no_path_retry      queue #在disable queue之前系统尝试使用失效路径的次数的数值
, p  R5 u% v# Y8 J* U6 E: F  rr_min_io       100 #在当前的用户组中,在切换到另外一条路径之前的IO请求的数目
, G8 P/ _% B) w$ s8 }  a3 T) U+ }# y! {}
2 `' s! P9 H# Y+ e5 b' F}
' G) K: U9 f  R) B$ g8 }3 u/ w如下是一个完整的配置文件( x* t7 i- ]4 C1 V$ `2 H% f
blacklist {
* m' e; w6 c  `devnode "^sda"$ J) ~# K9 f0 b. J6 n6 ?
}
% |) h  v& W1 ~0 b8 D0 ?4 @defaults {
: Z& h) U' C* Juser_friendly_names no
. w: O$ w4 T( a7 B" g}
# M3 d% [1 X. m: e9 {9 @multipaths {
1 T7 w0 M% m0 v6 l6 @multipath {- @! f) F( z) V9 B3 X# R; u
wwid 14945540000000000a67854c6270b4359c66c272e2f356321  v5 D9 U6 n% I" n* y
alias iscsi-dm0
; L- J6 F- W6 G! f% @path_grouping_policy multibus; \: G) T9 j$ Q- v4 r- F
path_checker tur
6 y0 E0 C. M+ ?5 R7 W  m+ Ypath_selector "round-robin 0"
  O1 l' V' X5 Y6 C1 h, Z2 b0 e}
2 i, w9 m0 J  X7 Smultipath {6 W( W0 _+ V( M% Q+ l; n: r
wwid 14945540000000000dcca2eda91d70b81edbcfce2357f99ee' S2 L3 j3 y+ S9 M0 A
alias iscsi-dm1" }) ~4 |) {. f9 ?6 d$ [
path_grouping_policy multibus
( V4 e# P9 o3 A+ u" Rpath_checker tur
$ k- ?1 X$ B' |path_selector "round-robin 0"; E8 d3 l/ |0 r4 Q* g3 l# t. G8 b
}' p1 N5 `$ @0 h! r
multipath {
/ ^9 |/ o  B3 E0 ?# lwwid 1494554000000000020f763489c165561101813333957ed965 \4 Y9 O/ o! }" C! t
alias iscsi-dm2
& H% X$ r3 e: S* Y- f8 ipath_grouping_policy multibus
" j8 v* I6 o: Opath_checker tur8 B! @* D8 [  o) }/ i% Q6 ^$ \5 R
path_selector "round-robin 0"
0 s# Y( V8 [& E- C}2 C6 L% h  g  k& q" j6 S- d
multipath {9 h" I' \8 t3 L5 z, O& V9 K: h
wwid 14945540000000000919ca813020a195422ba3663e1f03cc3
9 {* b. P" f" Talias iscsi-dm3
* V! w4 I# n+ ]path_grouping_policy multibus+ |0 s% a) S5 k
path_checker tur: `8 [, U: J+ j, [) v: z: ?; j$ `
path_selector "round-robin 0"2 y+ X  N9 s- u2 C* U( n
}
' T! u  x) O' d! F, I- h& U6 {}* S4 y, f7 B6 @9 G( @3 g
devices {
3 v- [, b" ~; _device {  E/ ^7 G- q2 c+ O9 m( W7 s
vendor "iSCSI-Enterprise"
! j& P) e2 U) ?7 v! a) n+ z- ]product "Virtual disk"
$ s, _8 e; M0 o' l. r% \4 xpath_grouping_policy multibus7 Y  C& Y$ W0 [
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"/ |7 h0 m: O2 N
path_checker readsector0
8 T% D! z+ ^5 e, F6 y- u. x- \/ Spath_selector "round-robin 0"6 |, m$ b- A; }; N; |) |3 p
}2 V: @. l( N3 A' n1 l) F. N
}! O$ q2 R+ }: R+ f) F/ J
获取wwid的方法:' e! I* F% H/ g1 o& I  k5 d
(1)默认情况下,将使用 /var/lib/multipath/bindings 内的配置设定具体每个多路径设备名,如果在/etc/multipath.conf中有设定各wwid 别名,别名会覆盖此设定。0 m8 B5 u) d" A. b# \/ Z
p_w_picpath* ]6 N. E8 e- m2 G
(2)# multipath -v3命令查找( X0 M2 a2 n5 }6 @# i) {1 R
p_w_picpath& s4 g6 ?( I" H$ h) W. N
2 、负载均衡测试) n3 K+ u2 k2 [* q3 ?
使用dd命令来对设备进行写操作,并同时通过iostat来查看I/0状态,命令及输出如下:
# y0 J; j/ ?! f3 D# dd if=/dev/zero of=/dev/mapper/iscsi-dm1p1
. y; A, \2 [- T' y8 ?' O7 v' J4 h开启另外一个终端用以下命令查看IO情况
# z" p) h8 O! M" w1 ]: m* C# iostat 10 10
9 ?4 B& ^9 w( Z: u. k. vp_w_picpath
& I8 F$ Q: O- w: X' A: }3 X; l通过上述输出,我们看到,在对/dev/mapper/iscsi-dm1p1读写时,实际上是通过对/dev/md-1包含的当前active的所有设备,即/dev/sde1,/dev/shl这2条路径来完成对实际的LUN的写过程。
- y6 O1 w+ i; X/ [2 t3 、路径切换测试
, G$ b- i* v8 k8 {6 B0 l+ c( [# t2 F首先,我们拔掉服务器上一根网线,经过不到10秒,我们看到:MPIO成功地从上述“失败”的路径/dev/sel切换到了另外一条路径/dev/sdh1上。
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

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

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

GMT+8, 2026-4-8 23:55 , Processed in 0.068839 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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