@@ -84,162 +84,53 @@ the monitoring service rather than the host being monitored).
8484Control Plane Shutdown Procedure
8585================================
8686
87- Overview
88- --------
87+ For a shutdown of the whole cloud, see :doc: `shutdown-and-startup `.
8988
90- * Verify integrity of clustered components (RabbitMQ, Galera, Keepalived). They
91- should all report a healthy status.
92- * Put node into maintenance mode in bifrost to prevent it from automatically
93- powering back on
94- * Shutdown down nodes one at a time gracefully using systemctl poweroff
89+ Single-node maintenance
90+ -----------------------
9591
96- Controllers
97- -----------
98-
99- If you are restarting the controllers, it is best to do this one controller at
100- a time to avoid the clustered components losing quorum.
92+ Before shutting down a compute node, migrate its instances to another node.
93+ See :doc: `migrating-vm `.
10194
102- Checking Galera state
103- +++++++++++++++++++++
95+ Before shutting down a controller, repeat the cluster checks from
96+ :ref: ` shutdown-pre-flight `. Shut down only one controller at a time.
10497
105- On each controller perform the following:
98+ For a Bifrost-managed compute, controller, network or monitoring node, run on
99+ the seed VM:
106100
107101.. code-block :: console
108102
109- [stack@controller0 ~]$ docker exec -i mariadb mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_local_state_comment'"
110- Variable_name Value
111- wsrep_local_state_comment Synced
103+ docker exec bifrost_deploy baremetal --os-cloud bifrost \
104+ node maintenance set --reason maintenance <node>
105+ docker exec bifrost_deploy baremetal --os-cloud bifrost \
106+ node power off --soft <node>
112107
113- The password can be found using :
108+ Wait for the node to reach `` power off ``. To start it again :
114109
115110.. code-block :: console
116111
117- ansible-vault view $KAYOBE_CONFIG_PATH/kolla/passwords.yml \
118- --vault-password-file <Vault password file path> | grep ^database
112+ docker exec bifrost_deploy baremetal --os-cloud bifrost \
113+ node power on <node>
119114
120- Checking RabbitMQ
121- +++++++++++++++++
122-
123- RabbitMQ health is determined using the command ``rabbitmqctl cluster_status ``:
115+ After the node is healthy, remove maintenance mode:
124116
125117.. code-block :: console
126118
127- [stack@controller0 ~]$ docker exec rabbitmq rabbitmqctl cluster_status
128-
129- Cluster status of node rabbit@controller0 ...
130- [{nodes,[{disc,['rabbit@controller0','rabbit@controller1',
131- 'rabbit@controller2']}]},
132- {running_nodes,['rabbit@controller1','rabbit@controller2',
133- 'rabbit@controller0']},
134- {cluster_name,<<"rabbit@controller2">>},
135- {partitions,[]},
136- {alarms,[{'rabbit@controller1',[]},
137- {'rabbit@controller2',[]},
138- {'rabbit@controller0',[]}]}]
139-
140- Checking Keepalived
141- +++++++++++++++++++
119+ docker exec bifrost_deploy baremetal --os-cloud bifrost \
120+ node maintenance unset <node>
142121
143- On (for example) three controllers:
122+ For a seed VM hosted on the seed hypervisor, run on the seed hypervisor to stop
123+ it:
144124
145125.. code-block :: console
146126
147- [stack@controller0 ~]$ docker logs keepalived
127+ virsh shutdown <seed VM>
148128
149- Two instances should show :
129+ To start it again :
150130
151131.. code-block :: console
152132
153- VRRP_Instance(kolla_internal_vip_51) Entering BACKUP STATE
154-
155- and the other:
156-
157- .. code-block :: console
158-
159- VRRP_Instance(kolla_internal_vip_51) Entering MASTER STATE
160-
161- Ansible Control Host
162- --------------------
163-
164- The Ansible control host is not enrolled in bifrost. This node may run services
165- such as the seed virtual machine which will need to be gracefully powered down.
166-
167- Compute
168- -------
169-
170- If you are shutting down a single hypervisor, to avoid down time to tenants it
171- is advisable to migrate all of the instances to another machine. See
172- :ref: `evacuating-all-instances `.
173-
174- Ceph
175- ----
176-
177- #. Check that the cluster is healthy (i.e. ``ceph -s ``). Where possible, solve
178- or isolate any issues before the shutdown e.g. by marking unhealthy OSDs as
179- 'out' in the cluster.
180-
181- #. Stop all clients. This includes
182-
183- * **All ** OpenStack VMs (if their storage is RBD-backed).
184-
185- * CephFS mounts.
186-
187- * Ceph-backed OpenStack services such as Glance, Cinder, Manila, and RGW/S3/Swift.
188-
189- #. Set the ``noout `` flag, so that the cluster does not attempt to redistribute
190- data when OSDs go down. Use the following command on a MON node:
191-
192- .. code-block :: console
193-
194- sudo cephadm shell -- ceph osd set noout
195-
196- #. Shut down all the nodes, with those holding MON services last.
197-
198- Note that if it is not desired for Ceph services to automatically start later
199- with the operating system, extra steps need to be taken and are not described
200- here.
201-
202- Shutting down the seed VM
203- -------------------------
204-
205- .. code-block :: console
206-
207- virsh shutdown <Seed hostname>
208-
209- .. _full-shutdown :
210-
211- Full shutdown
212- -------------
213-
214- In case a full shutdown of the system is required, we advise to use the
215- following order:
216-
217- * Perform a graceful shutdown of all virtual machine instances
218- * Shut down compute nodes
219- * Shut down monitoring node (if separate from controllers)
220- * Shut down network nodes (if separate from controllers)
221- * Shut down controllers
222- * Shut down Ceph nodes (if applicable)
223- * Shut down seed VM
224- * Shut down Ansible control host
225-
226- Full startup
227- -------------
228-
229- If the entire control plane is powered down, it is best to bring the nodes up
230- in the reverse order of shutdown:
231-
232- * Power on Ansible control host
233- * Power on seed VM (and other service VMs)
234- * Power on Ceph nodes (if applicable)
235- * Where possible, start the nodes running MON services first.
236- * Make sure that all OSD services are back up and running. At this point
237- it is safe to unset the ``noout `` cluster flag.
238- * Power on controllers
239- * Power on network nodes (if separate from controllers)
240- * Power on monitoring node (if separate from controllers)
241- * Power on compute nodes
242- * Power on virtual machines
133+ virsh start <seed VM>
243134
244135 Rebooting a node
245136----------------
@@ -251,84 +142,6 @@ Example: Reboot all compute hosts apart from compute0:
251142
252143 kayobe playbook run $KAYOBE_CONFIG_PATH/ansible/maintenance/reboot.yml --limit 'compute:!compute0'
253144
254- References
255- ----------
256-
257- * https://galeracluster.com/library/training/tutorials/restarting-cluster.html
258-
259- Control Plane Power on Procedure
260- ================================
261-
262- Overview
263- --------
264-
265- * Remove the node from maintenance mode in bifrost
266- * Bifrost should automatically power on the node via IPMI
267- * Check that all docker containers are running
268- * Check OpenSearch Dashboards for any messages with log level ERROR or equivalent
269-
270- Controllers
271- -----------
272-
273- If all of the servers were shut down at the same time, it is necessary to run a
274- script to recover the database once they have all started up. This can be done
275- with the following command:
276-
277- .. code-block :: console
278-
279- kayobe overcloud database recover
280-
281- Ansible Control Host
282- --------------------
283-
284- The Ansible control host is not enrolled in Bifrost and will have to be powered
285- on manually.
286-
287- Seed VM
288- -------
289-
290- The seed VM (and any other service VM) should start automatically when the seed
291- hypervisor is powered on. If it does not, it can be started with:
292-
293- .. code-block :: console
294-
295- virsh start <Seed hostname>
296-
297- Full power on
298- -------------
299-
300- Follow the order in :ref: `full-shutdown `, but in reverse order.
301-
302- Shutting Down / Restarting Monitoring Services
303- ----------------------------------------------
304-
305- Shutting down
306- +++++++++++++
307-
308- Log into the monitoring host(s):
309-
310- .. code-block :: console
311-
312- ssh stack@monitoring0
313-
314- Stop all Docker containers:
315-
316- .. code-block :: console
317-
318- monitoring0# for i in `docker ps -a`; do systemctl stop kolla-$i-container; done
319-
320- Shut down the node:
321-
322- .. code-block :: console
323-
324- monitoring0# sudo shutdown -h
325-
326- Starting up
327- +++++++++++
328-
329- The monitoring services containers will automatically start when the monitoring
330- node is powered back on.
331-
332145 Software Updates
333146================
334147
0 commit comments