找回密码
 注册
查看: 532|回复: 1

Ceph修改mon ip地址操作

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-10-18 13:58:08 | 显示全部楼层 |阅读模式
背景
9 f& G4 X0 d& s最近公司服务器搬迁至外地机房,服务器中包含ceph存储集群,迁移到新机房需要整体修改服务器ip,因此mon节点的ip也将被修改,发现官网有修改ip的文档,正好参考官网记录一下。官网提供了只更改同一网络里的mon节点ip以及ceph集群更改到不同网络的情况下修改所有mon ip的方法。
! t* u% |3 _# x' G& |" q8 l% W/ B, E, I. z4 F: G1 B0 N) d% L3 q( j
修改同一网络里的mon ip
! T1 `$ V$ [( u5 `* s1 a这被官网称为是一种正确的方法。仅更改监视器的 IP 地址ceph.conf不足以确保集群中的其他mon收到更新。要更改监mon的 IP 地址,必须添加一个具有要使用的 IP 地址的新mon节点(如添加监视器(手动)中所述),确保新mon成功加入仲裁;然后移除旧 IP 地址的mon。最后更新ceph.conf文件以确保客户端和其他守护程序知道新mon的 IP 地址。
- a. m$ a- ]5 J' u& T
6 y' w# X) q+ P+ a: ?" P/ @手动添加mon节点2 G# }5 X/ X2 t# {, e
在目标节点上,新建 mon 的数据目录。{mon-id} 名称自己定义 。8 ~- O+ N( n6 R7 A, h
% S) `( t" Y- R; d; m1 M
复制& Q- _) X1 e0 n  q
mkdir /var/lib/ceph/mon/ceph-{mon-id}
$ f/ R! F9 L7 N$ V! P) ?mkdir -p /var/lib/ceph/mon/ceph-`hostname -s`! k; _" [+ l( ?; D( a' N2 c9 w; p
获取 mon 的 keyring 文件,保存在临时目录下。
( C. s( T* Q# b$ i9 i0 B! F. o8 S
) p0 x6 W7 E4 y7 v& U; _' e- w! R复制
$ o6 f' P2 C$ m  x% S5 n" U' B  }* Bceph auth get mon. -o /tmp/ceph.mon.keyring
1 X: r8 [' ?. u2 X[root@ceph1 ~]# ceph auth get mon. -o /tmp/ceph.mon.keyring 0 E" ]0 {. ]; N
获取集群的 mon map 并保存到临时目录下。' ]$ ]: \! _9 w

0 p- |5 |/ d* D4 ^7 Y5 F复制
& G5 i" t- d1 h( }( H. ~ceph mon getmap -o /tmp/monmap
  p) c( w1 |% `! d[root@ceph1 ~]# ceph mon getmap -o /tmp/monmap
! [$ N& p* K8 M$ \1 P; qgot monmap epoch 3
4 x% N9 r/ `& D0 F7 r3 r8 L9 M" m5 k. G格式化mon的数据目录并指定上面两步创建的monmap和ceph.mon.keyring文件路径& a" `0 o/ c7 S1 X$ e' D% s( Z
[root@ceph1 ~]# ceph mon dump
4 ?: ?+ d. L8 ]- q6 Ydumped monmap epoch 3
$ D6 K+ ?) Y. N: D1 Lepoch 3
+ l: U* W2 v7 l# |8 t" z$ Cfsid 9c7a1c4a-e1e9-4ebb-9254-c7dbaf30a23f) d2 ]3 A  d1 d+ d* R. t
last_changed 2022-10-17 10:51:14.554172& ^0 [, {, [# a) j2 J
created 2022-10-17 10:46:00.900267
6 s3 B: B& D* ]1 fmin_mon_release 14 (nautilus)
3 C6 I2 X4 ]- F' d. \0: [v2:192.168.120.26:3300/0,v1:192.168.120.26:6789/0] mon.ceph1
. H( C$ F' Z& \$ N) p! D1: [v2:192.168.120.27:3300/0,v1:192.168.120.27:6789/0] mon.ceph20 l/ l) A5 l) w7 c% s4 `
2: [v2:192.168.120.28:3300/0,v1:192.168.120.28:6789/0] mon.ceph3/ d# B; ~# z+ p  g
复制) S/ `/ f! ]* `2 a! @
ceph-mon -i {mon-id} --mkfs --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
" ~4 v8 `6 L- ]) G6 }5 M) a7 f- v, U$ l3 I  @
启动节点上的 mon 进程,它会自动加入集群。守护进程需要知道绑定到哪个 IP 地址,可以通过 --public-addr {ip:port} 选择指定
( I) o. k1 |+ K% ~6 _5 J! x$ y: u" }1 U) T* O# T  X; q
复制
$ \3 ]" n9 |* J: ysystemctl start ceph-mon@{mon-id}8 }: \7 l: s) b2 {: _/ ?6 ~
ceph-mon -i {mon-id} --public-addr {ip:port}
2 L4 v4 v9 V9 G+ ]' d( c7 Y[root@ceph1 ~]# ceph-mon -i ceph1 --public-addr 192.168.120.267 [! H9 e* k$ k

- v: V9 l. G" ~8 k删除mon节点
' a2 v: }$ p. Z& G* o1.停止mon节点6 k5 G/ e* V1 C' D- o
3 u' }- w# S; K$ L0 q& u6 {/ L: r
复制
& Y, W0 \& s' Z% [& W. Wsystemctl stop ceph-mon@{mon-id}7 ~8 C* E3 C+ X6 |
systemctl stop ceph-mon@`hostname -s`.service
) m3 ?( [! f/ A; d& ]& N2 q$ x2.从ceph集群移除mon节点2 Y# u- y, N0 U

2 k- y" s/ T# N* A+ S复制8 M, c; X9 L* p" K
ceph mon remove {mon-id}
2 z/ L: K. j$ R# R% h2 a" W2 L[root@ceph1 ~]# ceph mon  remove ceph10 a, O- U+ L# N3 i/ v

* a) I2 E8 p8 z6 n% g" j3 J3.在ceph.conf配置文件中移除mon部分& z! G' W1 ^2 j6 H% Z. ^
. m/ i& c! n8 F, q
修改所有mon节点ip
; @* ]' L: _1 |9 A如背景所说,我们刚迁移了ceph集群的服务器到其他地市的机房。这需要改变mon节点的所有网络。在这种情况下,解决方案是为集群中的所有mon生成具有更新 IP 地址的新 monmap,并将新映射注入每个单独的mon。我这里是将192.168.28.0/24网段变更为192.168.244.0/24网段。9 P  F/ m" o' G/ ~
7 J( ~5 Y1 p; f1 A+ p& k; P
获取monmap,如果此时已经连接不上集群了可以在mon节点上使用第二条命令,并指定{mon-id}
. I1 h) K4 J# Y6 L' h  B% c" o6 S0 Y! Z! m; b) i7 x- O- T
复制
  @2 S/ }7 |7 A: C' c! ^ceph mon getmap -o /tmp/monmap7 n+ T9 O* F4 c! L2 R
ceph-mon -i node3  --extract-monmap /tmp/monmap
1 X& F0 s9 Y+ u) W) y
1 ]  b$ M1 N' s  x  j+ s9 _& m, [monmap内容如下:
* Y- j' t3 q; S4 E  ~- U, M1 j
/ L5 M+ Z6 @+ h2 v复制7 t3 T/ l5 y  q6 M8 ~
monmaptool: monmap file /tmp/monmap, _6 C5 G+ n" w
epoch 7" G# ^/ b$ H5 \$ g' r
fsid 9c079a1f-6fc2-4c59-bd4d-e8bc232d33a42 \) @% }  F2 t! q/ u1 l
last_changed 2022-10-08T10:00:04.055141+0000
# f7 q  m9 c6 F) Kcreated 2022-10-08T03:45:47.301186+0000' a8 w& f9 {6 b) `5 o; u# C9 [
min_mon_release 16 (pacific)
: N; @% e3 t. k: {0 j2 x' Xelection_strategy: 1
2 A9 a2 @3 W% y5 J+ m0: [v2:192.168.28.159:3300/0,v1:192.168.28.159:6789/0] mon.node1! l: Z6 Y) n$ C
1: [v2:192.168.248.160:3300/0,v1:192.168.28.160:6789/0] mon.node2
  L! z2 m. ~/ x. ^4 B2: [v2:192.168.28.161:3300/0,v1:192.168.28.161:6789/0] mon.node3$ J; H  c; Q# I# V; L: I, Z
4 U; |/ x: E* F/ L, C9 p
删除现有的mon:1 u  u/ r$ r# E+ K

' @/ V. ]5 Q5 P+ G7 O& [0 m复制! a, B/ a* f5 J7 D( @4 p
monmaptool: monmap file /tmp/monmap
9 \% g1 t, a8 b- S! m( l% i/ ymonmaptool: removing node1& t2 ~2 M* d) c7 V' @. b
monmaptool: removing node2
# r8 [$ c5 d: v6 Hmonmaptool: removing node3
1 o0 d1 p6 b( @0 Y$ w, O" {monmaptool: writing epoch 1 to  /tmp/monmap (0 monitors)
6 L( \) R7 ]8 Y. ]4 D" |( C5 F$ z* f6 P
添加新的mon:
. {( }4 u) w. t7 n+ j4 ^$ w' F$ u0 {. \7 M. d; B6 O" \6 p
复制
0 E; h& F( O, |* a/ n0 f3 R4 r$ x9 lmonmaptool: monmap file  /tmp/monmap
: ]% T. d" W3 ^" J7 b$ Nmonmaptool: writing epoch 1 to  /tmp/monmap (3 monitors)4 l6 v1 P* Y! u. _9 E
! o- n6 Z' Q4 f  ^5 h
停止所有mon服务并注入monmap,,每个mon节点都要执行;
2 k, J5 V( A, Q9 p4 _( x
2 U7 E* {- Z; m  H复制5 W" I! g  g9 U) }5 ^" a+ ^! S* _/ N
ceph-mon -i {mon-id} --inject-monmap /tmp/monmap/ i' {9 Q" e6 Z, C
[root@ceph1 ~]# ceph-mon -i ceph1 --inject-monmap /tmp/monmap
5 o! q7 z& E6 @: N执行完成后需要重启mon8 M+ c7 Y6 d3 c

4 ~& U' X% ^7 R) j9 E复制# `0 R( A) v6 v* b3 n+ f
systemctl start ceph-mon@{mon-id}
# ^, k/ `; D) N4 u% ]6 M& [" `
' `9 E) r! S8 S* l! X: c3 ~[root@ceph1 ~]# ceph daemon mon.ceph1 mon_status8 J' [" D% k6 e- G
{
% G0 E/ E# u/ r$ ^    "name": "ceph1",5 }4 o7 f4 g1 ^1 l8 A1 W
    "rank": 0,
# K, J  k6 M/ {7 W( q0 w1 @    "state": "leader",; N, i& E1 L* [
    "election_epoch": 30,
/ O+ t$ g+ W( L3 o! t' t4 G- B    "quorum": [
- r) X; U1 l) @% p, y        0,) }$ Q$ _" ^6 S8 E
        1,- {7 c3 y. k. Y: Z: N
        2
: g4 o) p; ^; s, `    ],
$ w+ @0 w9 H% K8 D* N    "quorum_age": 79151,! z: ~) R) D1 y% D
    "features": {
7 F3 S! b2 i/ K        "required_con": "2449958747315912708",1 O$ }) n: I; Y$ l
        "required_mon": [% [$ E+ i' {$ c' L- J; N1 }
            "kraken",
  S$ @& l; T: \3 l0 e            "luminous",
2 J& G: ~% ~# t( p# u1 D) @4 R            "mimic",* V5 B- V5 p; r
            "osdmap-prune",
6 Q; ~* B; @% v9 U9 c7 d4 g0 M5 F, \            "nautilus"
) \2 x" I" }7 |* D. U        ],0 n; S- l. i, z9 e3 Y+ z
        "quorum_con": "4611087854031667199",
8 W: R8 M' F' R        "quorum_mon": [
2 i/ q% v4 ^& E4 z' R. T            "kraken",
+ [6 @& p# [( H4 Z$ r            "luminous",7 Y5 ~( B; Z0 ], f* n3 v( Y+ \
            "mimic",; u0 |% q! {% z: [. e. n
            "osdmap-prune",  ^/ y. ~; k; L$ i8 W
            "nautilus"
1 }1 g) F7 G$ C' u  W* S2 M        ]
1 M$ R; f8 H9 Q; D3 k    },
) d1 J* M  J, N7 n    "outside_quorum": [],7 {+ [. }8 t$ `0 l9 ^
    "extra_probe_peers": [],
" t! o4 \& V( f% H    "sync_provider": [],# p0 h, [6 i8 P6 _0 w
    "monmap": {  x; |5 A  r6 l5 n. L: U
        "epoch": 3,
1 U1 L& p/ p3 b        "fsid": "9c7a1c4a-e1e9-4ebb-9254-c7dbaf30a23f",+ X; h7 _2 t; m. b" @
        "modified": "2022-10-17 10:51:14.554172",3 c# P: h% ^8 K( Q3 A
        "created": "2022-10-17 10:46:00.900267",
8 B, p* b% w! p, [: H. a8 K        "min_mon_release": 14,
/ ]- n% q( |1 q4 o        "min_mon_release_name": "nautilus",( f' z* u2 f" i5 j# l4 l1 ?) |
        "features": {7 D4 Y; R, v7 S) F. l. b( V( N
            "persistent": [
$ \  r/ Y9 t* u, E0 N                "kraken",
9 @/ e% E6 L0 Q2 L0 p' \: d                "luminous",
! C+ p0 N7 M6 b6 y# B  H                "mimic",: D2 [, f8 A+ I7 s0 I- m! ^9 M: W
                "osdmap-prune",% b2 ~* A. y$ K. T% U4 x8 i
                "nautilus"/ f5 z: m# E+ V. e4 E1 m- q
            ],1 V: k! k/ `0 ~& m: X+ W) s
            "optional": []( U% J  D7 w% A9 q9 n. Y) |
        },1 V0 B# }9 J- T6 ?' h5 c/ Y, R2 F6 v
        "mons": [) N5 J6 h* [3 ~& [3 Z
            {
' {5 _* ]) L. g' z( M                "rank": 0,3 N- i5 h+ U3 X% j, E% f
                "name": "ceph1",
9 s7 u1 P6 V! X1 K" b/ k$ [& N                "public_addrs": {
( o# V. i% {" f+ @+ Z! z                    "addrvec": [3 h5 s- y+ V# @: N- p
                        {! i; E) A# L" ^+ s: H8 ?( H
                            "type": "v2",
# C1 z  ?. A: _5 d- f0 L* m                            "addr": "192.168.120.26:3300",
8 O1 Z7 T! _/ N$ E7 p2 @% M" a  s                            "nonce": 0  \2 g9 h" \1 @# @
                        },* O& |& C' n7 [, q
                        {9 _9 ~: p5 u7 p  c, }
                            "type": "v1",8 c# S3 C( Y9 O. T* C" ]7 G* g
                            "addr": "192.168.120.26:6789",7 r1 t# S7 l' u: j# w
                            "nonce": 0
2 a" _( J* Z! M2 o" q                        }# S6 \7 Q2 i2 ]$ h: M, `, d
                    ]
6 Z, F9 R1 ~$ p! c' `* D                },0 c" T; g( d# Z8 n3 j
                "addr": "192.168.120.26:6789/0",# P& b# ?. U% I
                "public_addr": "192.168.120.26:6789/0"
& p; B0 ~) x5 N: B            },* D8 l: H" K' w
            {
+ b: K) I2 w1 l; H$ j! T                "rank": 1,
7 I9 u- U" F/ @% B/ S                "name": "ceph2",0 L/ T: z9 @" Z) v: y$ x
                "public_addrs": {
$ ]2 g0 p0 D2 F- t- a                    "addrvec": [
4 h  E- ^, }: s/ Z; C! F1 a                        {% r0 h) `1 Q( P2 w5 r
                            "type": "v2",
9 Y7 F  x. \/ c6 S* u                            "addr": "192.168.120.27:3300",: C- G( x1 `; ~6 a" q
                            "nonce": 0
, F' y% Z9 F  ?* ~3 L! ~3 N                        },. \% s8 h0 H7 Q
                        {* z! A  G& e7 n+ w, c, }( x
                            "type": "v1",4 l/ [6 k) T8 P; Q2 F
                            "addr": "192.168.120.27:6789",; Q# s0 v/ s. ~! J/ h0 E
                            "nonce": 0
1 h" o. K$ Q! ?$ @                        }% t: _% n  o7 g/ g' X: u; J
                    ]
. W: F+ i' b' R) U                },0 P( u, R" c; C9 ]$ M, q
                "addr": "192.168.120.27:6789/0",2 X" J9 A; c; g1 l7 s7 p; X4 ~
                "public_addr": "192.168.120.27:6789/0"
2 }5 K$ e7 _& y* @9 R. t" h            },; [1 c7 K# d. K* E" _
            {
4 r  [, `% a1 N, o. p  R                "rank": 2,
  c/ a. ]1 K6 P' i, S                "name": "ceph3",$ K2 D( i. w/ ]8 ?; H2 ^
                "public_addrs": {( e4 p7 v( p; n9 N6 A5 }
                    "addrvec": [7 F# j# a( g" V+ o
                        {
3 K+ S" P  [) ~% q) K: X' Y0 W/ t                            "type": "v2",% w0 y6 u1 I3 S0 z8 `* F8 ?0 {
                            "addr": "192.168.120.28:3300",
6 `" o8 l6 z, }. h- j8 V0 G  b                            "nonce": 0
; e( i8 F. V* B1 h" _                        },
$ X1 b5 S. v! {                        {  _: `  z" a* W9 o8 {
                            "type": "v1",
7 F1 M$ W' H& Z: r                            "addr": "192.168.120.28:6789"," f& l3 U2 H, v! G2 D6 {6 R
                            "nonce": 05 x1 G# R3 C# m2 Z! l' H  `
                        }
6 u8 S( K& v% k$ _3 S: \# S                    ]% l+ s4 Z+ R5 e( k
                },
: O9 z. Y2 @# y( C7 @# v7 I4 _2 U                "addr": "192.168.120.28:6789/0",
/ i6 u6 E9 G' d  W7 Q+ q' e" B2 k+ D                "public_addr": "192.168.120.28:6789/0"
4 R9 `0 Z. J: Q3 }5 d            }
) U' V+ h* S& S2 ]4 V        ]
" I* n# v  g+ F. Y' y    },' O% ^6 c2 P8 m) a
    "feature_map": {7 O" q2 A* u9 Z# k. N* `( N
        "mon": [  V; D. a  i/ o0 d0 f; I1 |  b5 H" N
            {
1 ]) u3 G: C$ @- }9 H- z                "features": "0x3ffddff8ffacffff",
% ]- M$ x& M* F0 v* Q8 ]3 B                "release": "luminous",
: L/ }; p) `; N3 ?: ?4 l' x* J                "num": 1' D) y3 l: q0 t
            }' x% g  {% S, ?5 G) {$ x
        ],8 l8 u+ N6 W4 x2 A) U
        "osd": [
3 ]1 N$ K+ b; R" ]            {, u3 j) A* T' F% w" Y
                "features": "0x3ffddff8ffacffff",
4 Z* Q+ r$ \- S/ E                "release": "luminous",
8 K& T1 N% h# E  z                "num": 6& U; n3 [! O* X* T% H  S' c2 T
            }/ l9 m- t+ Q+ Y! v2 A5 C# j
        ],
3 L1 `: U  p; B' F        "client": [
7 h3 O$ h6 ~( F            {
$ r5 Q) U' P! w) V: p/ R$ y2 e                "features": "0x3ffddff8ffacffff",
- d: d  z4 H# Q8 O  l" W                "release": "luminous",
! Y) n/ o! X- x8 j1 x' f                "num": 77 O% P4 q8 E/ W* p/ `- A+ W
            }" Z! p+ i5 v5 @, M
        ],
8 b1 V' v! f# l7 H' K/ R, r4 S        "mgr": [* i5 Q4 i) ?3 p% ~* n0 p; M4 h8 N
            {
9 p  ?0 `/ L! Z! a4 Y                "features": "0x3ffddff8ffacffff",
+ U7 f/ j6 M+ h$ E                "release": "luminous",
5 K& E( ~0 g: K                "num": 3/ h$ y% Q, K7 p
            }! Q; z9 q7 N. B* E3 G. f: e
        ]9 _1 \# i+ R  V; I7 T- i; R
    }
) y5 z* b' \- \7 E" k+ r}1 Q8 O- D) k0 }& ^6 Z3 E/ c- v3 j3 @
. |% Y* o: d: x6 q/ H
+ d6 @9 G$ v- ~# k8 F- d

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-10-18 14:19:16 | 显示全部楼层
[root@ceph1 ~]# ceph mon add `hostname -s` 192.168.120.26:6789
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-11 23:59 , Processed in 0.016668 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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