易陆发现互联网技术论坛

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

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

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

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

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

x
[root@ceph1 ~]# lsblk
  g4 d# `# z+ _4 ~+ _6 i! U" SNAME            MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT6 L1 V+ p/ Y8 T8 s0 I
sda               8:0    0 557.9G  0 disk  / @: k( h) U3 z8 ?5 m8 c+ a- l
├─sda1            8:1    0     1G  0 part  /boot
# r; B4 h. t, J* z9 N: J└─sda2            8:2    0 556.9G  0 part  5 u* O8 k  `+ `" {' h- T
  ├─centos-root 253:0    0 552.9G  0 lvm   /( [% A9 O6 J8 b) \! T/ w
  └─centos-swap 253:1    0     4G  0 lvm   [SWAP]
6 z- L# ~: S+ Z! jsdb               8:16   0 447.1G  0 disk  1 U$ s6 }8 y! X- i* S! b; z. o5 @
└─mpathj        253:9    0 447.1G  0 mpath 4 I4 s" g9 _) Y# Z* l. v& e1 U
sdc               8:32   0 447.1G  0 disk  1 J0 `" Q2 I, w  n3 ~0 h; a' t
└─mpathi        253:10   0 447.1G  0 mpath : a. d- E9 k9 p3 m& ?0 w
sdd               8:48   0   3.7T  0 disk  : @  x* t5 H  z  Z. r+ _) j7 i7 \
└─mpathc        253:8    0   3.7T  0 mpath
* b2 x) q% y4 x; a, v8 isde               8:64   0   3.7T  0 disk  
* j1 @- u/ n$ J* w8 J/ p1 |5 ?, ]└─mpathh        253:2    0   3.7T  0 mpath 1 A. P. G. L5 R: D
sdf               8:80   0   3.7T  0 disk  
( I1 c) W% }; [  i( y* A└─mpathf        253:7    0   3.7T  0 mpath 9 w& O& D: c. C% q
sdg               8:96   0   3.7T  0 disk  * l+ ~$ N( O" ^: d$ e7 X1 }
└─mpathd        253:11   0   3.7T  0 mpath 2 i5 c' Y' {* K; v3 N% @, q
sdh               8:112  0   3.7T  0 disk  - d% {4 X) H# l/ |
└─mpathk        253:6    0   3.7T  0 mpath " y- R2 Y6 }* W; X
sdi               8:128  0   3.7T  0 disk  6 L7 X; [. c' C2 T8 U! G
└─mpathb        253:12   0   3.7T  0 mpath + i8 v! j# Y! j) L$ y) C  I6 t
sdj               8:144  0   3.5T  0 disk  2 ^" p& o) x8 ~7 {6 R1 ~" i4 g
└─mpathe        253:4    0   3.5T  0 mpath
4 w1 E  D- G* f' B/ w) Isdk               8:160  0   3.5T  0 disk  
/ }  T7 U% s" E+ _8 f# U$ ~7 B! d└─mpathg        253:3    0   3.5T  0 mpath 4 A' P$ v  G' F+ H' T8 h
sr0              11:0    1  1024M  0 rom   4 j$ {6 F. J- s  C( L5 W' r
sr1              11:1    1  1024M  0 rom   
6 E" ]7 V+ |2 I1 h4 Q. Unvme0n1         259:0    0 349.3G  0 disk  - e9 m3 b: C& J8 x
└─mpatha        253:5    0 349.3G  0 mpath $ E7 o: \# h4 ?0 P2 C2 O% K' U, _! f
[root@ceph1 ~]# multipath -F4 L, ~6 _4 I, r5 H1 s( ~' n
Aug 12 11:31:24 | /etc/multipath.conf line 3, invalid keyword: udev_dir

0 Q7 [( X9 |- S( F: u
) s( S# u% y1 ^7 c. Q8 \9 H

5 d& S5 c/ [/ ^
: B$ D6 `6 U2 W. |: `! [  {

3 H# I/ r. i4 Z4 @; ]" Mmultipath操作命令5 ~8 {3 D( D; h% p  J
# /etc/init.d/multipathd start #开启mulitipath服务+ Q. v$ m  Z1 g$ B
# multipath -F #删除现有路径9 {1 l  w2 n: b  ?
# multipath -v2 #格式化路径; F6 `5 r: p# ?
# multipath -ll #查看多路径* ^# J9 |  {4 O
; \6 u) e3 W$ y! ~* _  h
6 K4 v( t  m. `! W

% w* S9 j. K/ {% j2 x

2 B$ g# s, v& I8 Q[root@ceph1 dev]# multipath5 d) `, m- D+ V+ A, @' j
multipath   multipathd  
1 C2 V4 ^$ y1 A: _& Q# R& h9 n[root@ceph1 dev]# multipath -ll$ M3 d  C3 F) H4 K4 F  Q4 `6 R1 z
Aug 12 11:33:33 | /etc/multipath.conf line 3, invalid keyword: udev_dir
0 @) Z' P) c* l% r4 f& h& t: Y[root@ceph1 dev]# multipath -l$ \6 N8 u$ m  r$ d, p: \
Aug 12 11:33:37 | /etc/multipath.conf line 3, invalid keyword: udev_dir' m8 @/ d! K; v$ c# m9 T2 \
[root@ceph1 dev]# multipath -ll4 a( ?1 [8 X0 J1 Q1 H/ g
Aug 12 11:33:39 | /etc/multipath.conf line 3, invalid keyword: udev_dir
" y  b$ `  q1 P3 U8 ]: |
0 H) m( Z; O$ ~$ R2 p; X
: Z- I: o3 \/ m3 Z  c% x6 C! R

9 e; k9 I# z8 Q( l/ K; ~
( A# D4 ]& S- o# @- Y; F1 f
[root@ceph1 dev]# multipath -F8 S- R' d; @9 y% [
Aug 12 11:34:33 | /etc/multipath.conf does not exist, blacklisting all devices.
  q2 l: q9 Q" S6 U% k% d" }Aug 12 11:34:33 | A default multipath.conf file is located at
; J8 L4 I" Y& N1 h5 S, yAug 12 11:34:33 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf* i$ i6 M3 z6 F3 P4 f$ V
Aug 12 11:34:33 | You can run /sbin/mpathconf --enable to create
; R4 Z, U7 a/ }, `% ^4 @Aug 12 11:34:33 | /etc/multipath.conf. See man mpathconf(8) for more details
$ l" d4 \6 l& D; ]' Z: p
 楼主| 发表于 2021-8-12 12:00:20 | 显示全部楼层
[root@ceph1 ~]# lsblk
( {% _, I/ F5 N2 {NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/ w5 P' h% `3 |8 N: g* I8 p9 }: vsda               8:0    0 557.9G  0 disk / A. A0 ?* X. U2 P& O
├─sda1            8:1    0     1G  0 part /boot
; J( Z: [( c& l2 r! l. ^6 I% C% T└─sda2            8:2    0 556.9G  0 part # ^: L& P) V; p1 q7 f
  ├─centos-root 253:0    0 552.9G  0 lvm  /3 z$ ]7 X# Q$ K8 J/ K
  └─centos-swap 253:1    0     4G  0 lvm  [SWAP]5 Y, w& b7 A4 N
sdb               8:16   0 447.1G  0 disk
( a) K# {: M( l! q8 x% }) O& tsdc               8:32   0 447.1G  0 disk + g7 j( I, v0 m# S2 J; t6 T6 D
sdd               8:48   0   3.7T  0 disk
( y0 H+ c1 u/ Z( R! ]5 K; Ysde               8:64   0   3.7T  0 disk 5 e% B3 K5 n* A2 W
sdf               8:80   0   3.7T  0 disk - j, V" f7 f- S: w" J9 _# T* t
sdg               8:96   0   3.7T  0 disk / d" {( X/ l, U0 ^& i6 G/ X* @
sdh               8:112  0   3.7T  0 disk
$ r) \, z* d9 P% a! Usdi               8:128  0   3.7T  0 disk
8 b$ A9 j4 X: A  S: V1 V. Wsdj               8:144  0   3.5T  0 disk 5 }+ Y2 @  r) {: V0 g
sdk               8:160  0   3.5T  0 disk
, t5 S, ]- G2 M8 B& d  ]sr0              11:0    1  1024M  0 rom  9 |3 m# U% e6 _& N  x" r+ ~
sr1              11:1    1  1024M  0 rom  2 R7 l& i9 m' u, p% O( Y& E
nvme0n1         259:0    0 349.3G  0 disk 4 I2 J* @8 O0 q! w! X- R
8 T0 I) S6 P5 R: v/ L4 m* W: X
重启系统之后,看见问题视乎解决了。
 楼主| 发表于 2021-8-12 12:00:21 | 显示全部楼层
4、 multipath磁盘的基本操作4 T/ R0 ]: F6 v7 `
要对多路径软件生成的磁盘进行操作直接操作/dev/mapper/目录下的磁盘就行.( }) N' _; Y& c! @' C+ t% I
在对多路径软件生成的磁盘进行分区之前最好运行一下pvcreate命令:% x2 y) Z1 W; |+ I* E# r' A
# pvcreate /dev/mapper/mpath0
' W1 M# a! Z# g$ K* m# fdisk /dev/mapper/mpath0- ^6 p( R$ ^" _
p_w_picpath6 N- k# j6 H- h0 U1 W, d
用fdisk对多路径软件生成的磁盘进行分区保存时会有一个报错,此报错不用理会。
; Y( l$ A7 [# `; C4 u2 wfdisk对多路径软件生成的磁盘进行分区之后,所生成的磁盘分区并没有马上添加到/dev/目录下,此时我们要重启IPSAN或者FCSAN的驱动,如果是用iscsi-initiator来连接IPSAN的重启ISCSI服务就可以发现所生成的磁盘分区了
( i" W2 e6 W) E0 c1 g& B4 {0 B# service iscsi restart
) J( X1 m( {& k3 y1 z* j# ls -l /dev/mapper/
" w! S2 s4 `1 V( z0 G! sp_w_picpath
5 k0 r. {* {1 r* f5 h% }9 C4 C如上图中的mpath0p1和mpath1p1就是我们对multipath磁盘进行的分区- V% W7 B0 ~. _% K2 G
# mkfs.ext3 /dev/mapper/mpath0p1 #对mpath1p1分区格式化成ext3文件系统% v& e* b: B  [* {
# mount /dev/mapper/mpath0p1 /ipsan/ #挂载mpath1p1分区" C/ U; X2 C/ H. P$ A; G
p_w_picpath! H1 ]2 j/ a. \0 W
$ {" y0 O8 c0 Q# k+ p
# [. ~& ]6 c& E
6 c/ E% f/ u/ q$ r7 ?9 d
四、multipath的高有配置
4 q# R1 a+ {: @$ b! }以上都是用multipath的默认配置来完成multipath的配置,比如映射设备的名称,multipath负载均衡的方法都是默认设置。那有没有按照我们自己定义的方法来配置multipath呢,当可以。
1 D$ o; J" t" b! ]8 B; z$ ]$ I1 、multipath.conf 文件的配置
1 {% L9 o) @, J6 l接下来的工作就是要编辑/etc/multipath.conf的配置文件
5 Z1 K, Z. Y2 o6 p$ K6 k1 nmultipath.conf主要包括blacklist、multipaths、devices三部份的配置, K* l8 p* s: X- p/ F1 k* s
blacklist 配置
& D5 U; J" w& l7 \blacklist {
$ h7 o* ]0 _% m7 Udevnode "^sda", \! k  r( |6 [
}) u2 `- K& J; D% B
Multipaths 部分配置multipaths和devices两部份的配置。
3 j( T) s1 |7 A' a" U+ m3 M& a6 imultipaths {
' l- Q. k! k+ R: g1 `multipath {, U2 q7 ]9 H' z: F
wwid **************** #此值multipath -v3可以看到* t# M! q) C) N- P# \' e
alias iscsi-dm0 #映射后的别名,可以随便取* H$ b$ X- g8 K) `
path_grouping_policy multibus #路径组策略
$ D% N  s. [) T: F# h& r3 d6 spath_checker tur #决定路径状态的方法
+ f' ], o1 \0 S( N/ a. opath_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法" x: ?( ]5 M; j% @/ {
}6 y6 A" j, R# P" i
}
& A+ ?  [& e- g7 {; B% yDevices 部分配置
3 s6 f+ i$ `5 T! L, R8 `& Y/ fdevices {# @) N" A; y1 H- L$ l
device {
0 X1 M2 v, p& T( U2 ovendor "iSCSI-Enterprise" #厂商名称+ \' s! g) J2 I0 C: c
product "Virtual disk" #产品型号$ q3 ^+ ?& ^. T1 q
path_grouping_policy multibus #默认的路径组策略
( A* P0 K) I- |, F6 j( ?4 bgetuid_callout "/sbin/scsi_id -g -u -s /block/%n" #获得唯一设备号使用的默认程序
6 u+ N8 R: C. i& Sprio_callout      "/sbin/acs_prio_alua %d" #获取有限级数值使用的默认程序: S, a) P) `( x  j
path_checker readsector0 #决定路径状态的方法
& b" i7 x) ?  Hpath_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法
, }6 j: h- o# g5 sfailback        immediate #故障恢复的模式5 y8 C3 r2 I0 l" Q. [( q* s. w
   no_path_retry      queue #在disable queue之前系统尝试使用失效路径的次数的数值. u4 v, R( ?9 C0 A2 G
  rr_min_io       100 #在当前的用户组中,在切换到另外一条路径之前的IO请求的数目8 Z/ s# `* P! N" Q- \
}# Y) ]( U' h* L, {; _% ~) Y! X3 i
}  _- m6 \. {* p+ q) W) F, S
如下是一个完整的配置文件
; ]# R6 m" J1 q  dblacklist {, v) H2 N" m$ \2 F
devnode "^sda"% o7 L$ D' [/ {- M8 ]* D7 q
}
% H9 j& G9 E+ Q2 `; @defaults {0 }) b/ C% a* J- O
user_friendly_names no
5 `8 ]9 w1 d. m% |* s( V}
6 O- [) W" ^' o% E3 pmultipaths {
' G  Q- G* s! ]5 N% ymultipath {
  |7 e* Z& @) C: Y0 fwwid 14945540000000000a67854c6270b4359c66c272e2f356321
7 _: k3 w" M1 a: e) Oalias iscsi-dm02 `" p/ V- i! ?  \+ F) v
path_grouping_policy multibus
! A1 Z( g  Q5 i# M( Fpath_checker tur
) e; |# A# b" E2 p+ p; M% b! ppath_selector "round-robin 0"$ }. k1 R2 E& r1 ^* D, A
}1 X: _% Y' N) _1 R( V
multipath {
, u+ D: j- l9 p7 f4 ~$ Hwwid 14945540000000000dcca2eda91d70b81edbcfce2357f99ee
( K, F' H. ]1 Q: K$ ~alias iscsi-dm1$ J: D0 s: d5 X$ s, O0 U7 i! c
path_grouping_policy multibus! |2 \5 C! }( G% P: v3 K* i
path_checker tur3 P& F& y8 }4 W" Z
path_selector "round-robin 0"# V; p# ^, g$ }0 J$ l; m
}7 D9 ]; _: b+ l& v  A: ?3 X! D, \% g
multipath {
3 {4 ~9 r2 i( h. o, xwwid 1494554000000000020f763489c165561101813333957ed96
0 M* l6 N8 c# N+ @( Salias iscsi-dm28 s( l5 ]! d0 [
path_grouping_policy multibus
; r" v7 M/ ^: R; A4 N/ @9 D9 rpath_checker tur
- b7 G# S3 {  u. e* U+ Gpath_selector "round-robin 0"3 n  Z! ]2 P4 N& @0 R
}
0 L. I5 X/ r0 D' Rmultipath {2 m! N, k! q# u- M* N2 v" Z
wwid 14945540000000000919ca813020a195422ba3663e1f03cc3
4 w9 J) y/ M, d5 P0 a2 m1 `alias iscsi-dm3
& D8 l) R0 z$ Qpath_grouping_policy multibus+ v# n  ~: |+ t& ]0 X
path_checker tur; \. R! e) N& W0 [/ t4 v
path_selector "round-robin 0": m. H; l/ M- X. _$ O: ?! t! t6 \
}. C" D4 s+ f4 Z
}0 G( v  i( ~" t2 C
devices {2 D5 X6 b4 l; k
device {  O' j/ a0 J4 x
vendor "iSCSI-Enterprise"
; i7 a2 E5 q1 e$ O! Nproduct "Virtual disk"" t8 x, Z- g& u3 W! o9 u5 S
path_grouping_policy multibus8 M$ g9 |; i$ A  A
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"% k% Y, q- b! T* K2 b
path_checker readsector0! k+ p  Z9 J7 i9 S* W/ k
path_selector "round-robin 0"& l; Z7 H- r7 V$ _( x/ L
}
) V: m! t! q  @& h! p}' c# k0 ^* S5 v' g, N$ J5 W% ?8 N9 ]
获取wwid的方法:
& H, z. F$ ?- T(1)默认情况下,将使用 /var/lib/multipath/bindings 内的配置设定具体每个多路径设备名,如果在/etc/multipath.conf中有设定各wwid 别名,别名会覆盖此设定。
0 ]; |3 ]* {6 d, m5 [p_w_picpath+ k' z! @" u* z- h
(2)# multipath -v3命令查找) ~' Z4 V% I: F* N
p_w_picpath
* V& C' P% g& ?5 N# N2 、负载均衡测试
( d- M+ j1 R  t; q; i使用dd命令来对设备进行写操作,并同时通过iostat来查看I/0状态,命令及输出如下:
0 Q* i' v: S4 }7 b: U# dd if=/dev/zero of=/dev/mapper/iscsi-dm1p1
4 [$ L" D* O' D开启另外一个终端用以下命令查看IO情况. [/ \+ }- k( i& f2 K1 `9 w; [
# iostat 10 10
/ n# Z, y6 J* t7 Np_w_picpath* s. }3 f: D/ {/ g$ f3 f  W$ \. U
通过上述输出,我们看到,在对/dev/mapper/iscsi-dm1p1读写时,实际上是通过对/dev/md-1包含的当前active的所有设备,即/dev/sde1,/dev/shl这2条路径来完成对实际的LUN的写过程。. H/ E3 x& Z7 g5 a
3 、路径切换测试/ V& q0 W% F5 V/ m$ e+ C
首先,我们拔掉服务器上一根网线,经过不到10秒,我们看到:MPIO成功地从上述“失败”的路径/dev/sel切换到了另外一条路径/dev/sdh1上。
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

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

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

GMT+8, 2026-4-9 01:11 , Processed in 0.050583 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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