|
|
5.配置ceph状态标志位1 {. q a5 ]8 ~% r
目标主机:存储控制节点) B1 U1 ~' _2 Q, I
执行以下操作命令:0 Q8 S- K/ R u( }
ceph osd set norebalance: p8 e( u* a7 B! M1 r7 ~
ceph osd set nobackfill
]& P) z- A+ l/ Hceph osd set noout
/ g" C4 u/ ~% y1 ~, `8 ]% H2 wceph osd set noscrub
* T& K0 S& S* n( Kceph osd set nodeep-scrub
& Z# ^! j! F6 B, V; i, h6.移除损坏的osd7 g ^* G; x& n! O
目标主机:存储控制节点
0 ], x' V1 F# v7 g4 S0 J替换 [id] 为需要移除的故障 osd id,此处应为osd.207
& }$ ~) F' j! N. }+ f) Wceph osd crush reweight osd.[id] 0
& t c6 _* E; S8 Aceph osd crush rm osd.[id]
$ \% B* q. y& w( N& n! iceph osd rm osd.[id]
4 n$ t& P7 g) C3 I" uceph auth del osd.[id]
* }+ O' Y+ \9 I5 j" h& {, B1 Fceph osd crush reweight osd.207 0, k: f0 C% J5 X7 ?$ J1 `
ceph osd crush rm osd.207
' W3 @ O$ U5 M1 U) ?8 [ceph osd rm osd.2072 o& A5 f1 K0 K5 P8 O! Y
ceph auth del osd.2073 W) b& t" }! @% z
7.卸载该OSD对应的磁盘, L" W4 P2 [7 ~. k
目标主机:需要处理的存储节点
* ^: B# Z6 T2 Eumount /dev/sdj1
! Q! W; U9 ?/ k7 M$ g0 f0 @如果该磁盘已无法识别,则检查目录有没有异常挂载(目录信息为“???”),存在则执行卸载目录操作。5 W" m& _( F- K9 l+ `
ll /var/lib/ceph/osd/5 [+ R( j1 X+ E i p& k1 \5 h
umount -l /var/lib/ceph/osd/ceph-207
7 v3 R. J- v8 }# \4 S d如步骤3图所示,该盘已经无挂载信息,则不需要操作。
3 I, P1 v4 p1 o8 s8.更换损坏硬盘
) p0 E& [- U7 q3 b( v" M; u此步骤可以直接更换硬盘,不需要对存储节点(服务器)进行关机;如果需要进入raid卡配置,则需要关机重启,不会影响现有集群,更换完成后启动服务器。
" b% y; O6 G8 m5 |) k: n- b9.检查日志盘分区权限. d2 m: s X$ c$ M
ls -l /dev/sdb33 R6 @2 [5 n3 o7 a2 }2 o/ \ K- w. R
此处日志盘分区为步骤3查到的对应分区,权限应为ceph:ceph,若不是,则需要手动修改权限,否则osd服务启动不成功。
) z. y6 R* \, N* e! ^chown ceph:ceph /dev/sdb3! _* A- x# d) X V, Q. h f" F
7chown.png" U: a9 |$ f, p6 H6 N' A
10.重新添加osd节点新硬盘至集群
! Y# p1 l; h i: C. n. r( u. a方法一:在mon节点使用工具添加。- p* q! Z8 }& T. o# H
目标主机:mon节点
3 Z+ k9 Y# w$ t8 Y% L3 q3 e. Vceph-deploy --overwrite-conf osd prepare [hostname]:[数据盘]:[日志盘分区] --zap-disk
) t! P) g6 \) F( K. Lceph-deploy osd activate [hostname]:[数据盘分区]
5 _# _* s8 F- L( F. ^; G本文应执行如下命令; }1 _/ L5 V; a! x
cd /root/ceph-cluster 0 N8 l) z# `# k8 m" o
ceph-deploy --overwrite-conf osd prepare hdzwy1-osd-172-16-0-63:/dev/sdj:/dev/sdb3 --zap-disk
. D1 E' w9 H: N3 h3 a/ Q, Rceph-deploy osd activate hdzwy1-osd-172-16-0-63:/dev/sdj1
* r; n3 H, H3 R& A+ M方法二:在需要处理的存储节点直接添加
+ ? L7 u% J% R8 Hceph‐disk prepare [数据盘] [日志分区] ‐‐zap‐disk ‐‐filestore
: l( ]- ?7 E% nceph‐disk activate [数据盘分区]
t( s1 k* ]; ~ o3 e本文应执行如下命令:& a3 d7 l6 ~1 {
ceph‐disk prepare /dev/sdj /dev/sdb3 ‐‐zap‐disk ‐‐filestore/ I9 Q" ~3 P& d& }" `7 w
ceph‐disk activate /dev/sdj1+ D$ |2 Y& r; `3 b
11.检查ceph集群状态
+ q/ _1 J& V! I- p! m目标主机:存储控制节点
9 R F% @ X" ]/ D3 } f tceph -s
9 M% [; }6 W* x$ j7 z加入OSD的2分钟内,会进行PG的remap操作,remap到新OSD上的PG会处于 peering状态,无法对外IO,故会对部分虚拟机造成慢请求。
% s" `$ x# M/ c1 `如果处于peering状态的pg数量未减少,且慢请求一直持续,请执行回滚操作# g, v: b1 y0 _+ G0 {6 D" x
12.移除 ceph 状态标志位 K9 l1 i. g( Z* K, f& X% d$ E
目标主机:存储控制节点( a" ~6 O4 w- h7 Q3 \
确认需要添加的 osd 添加完成且 pg peering 全部完成之后,执行以下操作
" M- K; z4 i6 y1 Jceph osd unset norebalance! e g1 {6 B' m3 Z2 b' o4 b
ceph osd unset nobackfill" Y- z0 S9 X- x8 U8 w4 j
13.移除剩余ceph状态标志位8 X, T: U$ y8 B8 Y+ v& P( q9 t
待集群所有 pg 状态恢复为 active + clean 之后,执行以下操作
2 Q9 Q9 {4 j: A6 Nceph osd unset noout" G) _9 @' j2 f9 V
ceph osd unset noscrub% f3 S, ~* p) a3 l" s- p" O
ceph osd unset nodeep-scrub
j0 |8 M7 l8 t) l k' M至此,ceph集群更换osd结束。: w" {9 _) O% S8 R8 w5 [/ `& ?
|
|