@@ -41,7 +41,11 @@ Ironic nodes can be managed. In many environments the loss of the Ironic
41
41
API for short periods is acceptable, providing that it can be easily
42
42
resurrected. The purpose of this document is to faciliate that.
43
43
44
- TODO: Add caveats about new sharding mode (not covered here).
44
+ .. note ::
45
+
46
+ The new sharding mode is not covered here and it is assumed that you are
47
+ not using it. See [1] for further information. This will be updated in
48
+ the future.
45
49
46
50
Optimal configuration of Nova Compute Ironic
47
51
============================================
@@ -208,5 +212,90 @@ See [1] for further details.
208
212
209
213
TODO: Investigate KA bug with assumption about host field.
210
214
215
+ Re-deploying Nova Compute Ironic
216
+ --------------------------------
217
+
218
+ The decision to re-deploy Nova Compute Ironic to another host should only be
219
+ taken if there is a strong reason to do so. The objective is to minimise
220
+ the chance of the old instance starting up alongside the new one. If the
221
+ original host has been re-imaged, or physically replaced there is no risk.
222
+ However, if the original host has been taken down for non-destructive
223
+ maintenance, it is better to avoid re-deploying the service if the end users
224
+ can tolerate the wait. If you are forced to re-deploy the service, knowing
225
+ that the original instance may start when the host comes back online, you
226
+ must plan accordingly. For example, by booting the original host in maintenance
227
+ mode and removing the old service before it can start, or by stopping the
228
+ new instance before the original one comes back up, and then reverting the
229
+ config to move it to the new host.
230
+
231
+ There are essentially two scenarios for re-deploying Nova Compute Ironic.
232
+ These are described in the following sub-sections:
233
+
234
+ Current host is accessible
235
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
236
+
237
+ Adjust the ``kolla_nova_compute_ironic_host `` variable to point to the
238
+ new host, eg.
239
+
240
+ .. code-block :: diff
241
+
242
+ +kolla_nova_compute_ironic_host: controller2
243
+ -kolla_nova_compute_ironic_host: controller1
244
+
245
+ Remove the old container:
246
+
247
+ .. code-block :: console
248
+
249
+ $ ssh controller1 sudo docker rm -f nova_compute_ironic
250
+
251
+ Deploy the new service:
252
+
253
+ .. code-block :: console
254
+
255
+ $ kayobe overcloud service deploy -kl controller2 -l controller2 -kt nova
256
+
257
+ Verify that the new service appears as 'up' and 'enabled':
258
+
259
+ .. code-block :: console
260
+
261
+ $ openstack compute service list
262
+
263
+ Current host is not accessible
264
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
265
+
266
+ In this case you will need to remove the inaccessible host from the inventory.
267
+ For example, in ``etc/kayobe/inventory/hosts ``, remove ``controller1 `` from
268
+ the ``controllers `` group.
269
+
270
+ Adjust the ``kolla_nova_compute_ironic_host `` variable to point to the
271
+ new host, eg.
272
+
273
+ .. code-block :: diff
274
+
275
+ +kolla_nova_compute_ironic_host: controller2
276
+ -kolla_nova_compute_ironic_host: controller1
277
+
278
+ Deploy the new service:
279
+
280
+ .. code-block :: console
281
+
282
+ $ kayobe overcloud service reconfigure -kl controller2 -l controller2 -kt nova
283
+
284
+ Verify that the new service appears as 'up' and 'enabled':
285
+
286
+ .. code-block :: console
287
+
288
+ $ openstack compute service list
289
+
290
+ .. note ::
291
+
292
+ It is important to stop the original service from starting up again. It is
293
+ up to you to prevent this.
294
+
295
+ .. note ::
296
+
297
+ Once merged, the work on 'Kayobe reliability' may allow this step to run
298
+ without modifying the inventory to remove the broken host.
299
+
211
300
[1] https://specs.openstack.org/openstack/nova-specs/specs/2024.1/approved/ironic-shards.html#migrate-from-peer-list-to-shard-key
212
301
[2] https://www.cloudfest.com/world-server-throwing-championship
0 commit comments