Chapter 11. Configuring manual node reboot to define KernelArgs
Overcloud nodes are automatically rebooted when the overcloud deployment includes setting the KernelArgs for the first time. Rebooting nodes can be an issue for existing workloads if you are adding KernelArgs to a deployment that is already in production. You can disable the automatic rebooting of nodes when updating a deployment, and instead perform node reboots manually after each overcloud deployment.
If you disable automatic reboot and then add new Compute nodes to your deployment, the new nodes will not be rebooted during their initial provisioning. This might cause deployment errors because the configuration of KernelArgs is applied only after a reboot.
11.1. Configuring manual node reboot to define KernelArgs Copy linkLink copied to clipboard!
You can disable the automatic rebooting of nodes when you configure KernelArgs for the first time, and instead reboot the nodes manually.
Procedure
-
Log in to the undercloud as the
stackuser. Source the
stackrcfile:source ~/stackrc
[stack@director ~]$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow Enable the
KernelArgsDeferRebootrole parameter in a custom environment file, for example,kernelargs_manual_reboot.yaml:parameter_defaults: <Role>Parameters: KernelArgsDeferReboot: Trueparameter_defaults: <Role>Parameters: KernelArgsDeferReboot: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow Add your custom environment file to the stack with your other environment files and deploy the overcloud:
openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/kernelargs_manual_reboot.yaml
(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/kernelargs_manual_reboot.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Retrieve a list of your Compute nodes to identify the host name of the node that you want to reboot:
source ~/overcloudrc openstack compute service list
(undercloud)$ source ~/overcloudrc (overcloud)$ openstack compute service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow Disable the Compute service on the Compute node you want to reboot, to prevent the Compute scheduler from assigning new instances to the node:
openstack compute service set <node> nova-compute --disable
(overcloud)$ openstack compute service set <node> nova-compute --disableCopy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
<node>with the host name of the node you want to disable the Compute service on.Retrieve a list of the instances hosted on the Compute node that you want to migrate:
openstack server list --host <node_UUID> --all-projects
(overcloud)$ openstack server list --host <node_UUID> --all-projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Migrate the instances to another Compute node. For information on migrating instances, see Migrating virtual machine instances between Compute nodes.
- Log in to the node that you want to reboot.
Reboot the node:
sudo reboot
[heat-admin@overcloud-compute-0 ~]$ sudo rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Wait until the node boots.
Re-enable the Compute node:
openstack compute service set <node_UUID> nova-compute --enable
(overcloud)$ openstack compute service set <node_UUID> nova-compute --enableCopy to Clipboard Copied! Toggle word wrap Toggle overflow Check that the Compute node is enabled:
openstack compute service list
(overcloud)$ openstack compute service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow