@@ -39,23 +39,30 @@ import (
39
39
40
40
var (
41
41
MIGRATE_ETCD_STEPS = []int {
42
- playbook .STOP_SERVICE ,
43
- playbook .CLEAN_SERVICE , // only container
42
+ playbook .ADD_ETCD_MEMBER ,
44
43
playbook .PULL_IMAGE ,
45
44
playbook .CREATE_CONTAINER ,
46
45
playbook .SYNC_CONFIG ,
46
+ playbook .AMEND_ETCD_CONFIG ,
47
47
playbook .START_ETCD ,
48
+ playbook .REMOVE_ETCD_MEMBER ,
49
+ playbook .AMEND_SERVER_CONFIG , // modify the etcd endpoint in mds.conf
50
+ playbook .RESTART_SERVICE , // restart all mds then modify the etcd endpoint
51
+ playbook .STOP_SERVICE ,
52
+ playbook .CLEAN_SERVICE , // only container
48
53
playbook .UPDATE_TOPOLOGY ,
49
54
}
50
55
51
56
// mds
52
57
MIGRATE_MDS_STEPS = []int {
53
- playbook .STOP_SERVICE ,
54
- playbook .CLEAN_SERVICE , // only container
55
58
playbook .PULL_IMAGE ,
56
59
playbook .CREATE_CONTAINER ,
57
60
playbook .SYNC_CONFIG ,
58
61
playbook .START_MDS ,
62
+ playbook .AMEND_SERVER_CONFIG , // modify the mds.listen.addr in metaserver.conf
63
+ playbook .RESTART_SERVICE , // restart all metaserver then modify the mds.listen.addr
64
+ playbook .STOP_SERVICE ,
65
+ playbook .CLEAN_SERVICE , // only container
59
66
playbook .UPDATE_TOPOLOGY ,
60
67
}
61
68
67
74
playbook .CREATE_CONTAINER ,
68
75
playbook .SYNC_CONFIG ,
69
76
playbook .START_SNAPSHOTCLONE ,
77
+ playbook .AMEND_SERVER_CONFIG , // modify the mds.listen.addr in metaserver.conf
78
+ playbook .RESTART_SERVICE , // restart all metaserver then modify the mds.listen.addr
70
79
playbook .UPDATE_TOPOLOGY ,
71
80
}
72
81
@@ -157,7 +166,7 @@ func checkMigrateTopology(curveadm *cli.CurveAdm, data string) error {
157
166
} else if len (dcs2add ) < len (dcs2del ) {
158
167
return errno .ERR_DELETE_SERVICE_WHILE_MIGRATING_IS_DENIED
159
168
}
160
- // len(dcs2add) == len(dcs2del)
169
+
161
170
if len (dcs2add ) == 0 {
162
171
return errno .ERR_NO_SERVICES_FOR_MIGRATING
163
172
}
@@ -199,6 +208,7 @@ func genMigratePlaybook(curveadm *cli.CurveAdm,
199
208
migrates := getMigrates (curveadm , data )
200
209
role := migrates [0 ].From .GetRole ()
201
210
steps := MIGRATE_ROLE_STEPS [role ]
211
+ etcdDCs := curveadm .FilterDeployConfigByRole (dcs , topology .ROLE_ETCD )
202
212
203
213
// post clean
204
214
if options .clean {
@@ -221,10 +231,25 @@ func genMigratePlaybook(curveadm *cli.CurveAdm,
221
231
config := dcs2add
222
232
switch step {
223
233
case playbook .STOP_SERVICE ,
224
- playbook .CLEAN_SERVICE :
234
+ playbook .CLEAN_SERVICE ,
235
+ playbook .ADD_ETCD_MEMBER ,
236
+ playbook .REMOVE_ETCD_MEMBER :
225
237
config = dcs2del
226
238
case playbook .BACKUP_ETCD_DATA :
227
239
config = curveadm .FilterDeployConfigByRole (dcs , topology .ROLE_ETCD )
240
+ // 1. migrate etcd, need to override mds config and restart all mds
241
+ // 2. (FS)migrate mds, need to override metaserver config and restart all metaservers
242
+ // 3. (BS)migrate mds, need to override chunkserver and snapshot config and restart all chunkservers and snapshotclones
243
+ case playbook .AMEND_SERVER_CONFIG ,
244
+ playbook .RESTART_SERVICE :
245
+ if role == topology .ROLE_ETCD {
246
+ config = curveadm .FilterDeployConfigByRole (dcs , topology .ROLE_MDS )
247
+ } else if role == topology .ROLE_MDS && dcs [0 ].GetKind () == topology .KIND_CURVEFS {
248
+ config = curveadm .FilterDeployConfigByRole (dcs , topology .ROLE_METASERVER )
249
+ } else if role == topology .ROLE_MDS && dcs [0 ].GetKind () == topology .KIND_CURVEBS {
250
+ config = curveadm .FilterDeployConfigByRole (dcs , topology .ROLE_CHUNKSERVER )
251
+ config = append (config , curveadm .FilterDeployConfigByRole (dcs , topology .ROLE_SNAPSHOTCLONE )... )
252
+ }
228
253
case
229
254
playbook .CREATE_PHYSICAL_POOL ,
230
255
playbook .CREATE_LOGICAL_POOL ,
@@ -251,6 +276,11 @@ func genMigratePlaybook(curveadm *cli.CurveAdm,
251
276
optionsKV [comm .KEY_POOLSET ] = poolset
252
277
case playbook .UPDATE_TOPOLOGY :
253
278
optionsKV [comm .KEY_NEW_TOPOLOGY_DATA ] = data
279
+ case playbook .ADD_ETCD_MEMBER ,
280
+ playbook .AMEND_ETCD_CONFIG ,
281
+ playbook .AMEND_SERVER_CONFIG :
282
+ optionsKV [comm .KEY_MIGRATE_SERVERS ] = migrates
283
+ optionsKV [comm .KEY_CLUSTER_DCS ] = etcdDCs
254
284
}
255
285
256
286
pb .AddStep (& playbook.PlaybookStep {
0 commit comments