Este conteúdo não está disponível no idioma selecionado.
Chapter 15. Troubleshooting Director Issues
An error can occur at certain stages of the director’s processes. This section provides some information for diagnosing common problems.
Note the common logs for the director’s components:
-
The
/var/logdirectory contains logs for many common OpenStack Platform components as well as logs for standard Red Hat Enterprise Linux applications. The
journaldservice provides logs for various components. Note that ironic uses two units:openstack-ironic-apiandopenstack-ironic-conductor. Likewise,ironic-inspectoruses two units as well:openstack-ironic-inspectorandopenstack-ironic-inspector-dnsmasq. Use both units for each respective component. For example:source ~/stackrc
$ source ~/stackrc (undercloud) $ sudo journalctl -u openstack-ironic-inspector -u openstack-ironic-inspector-dnsmasqCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ironic-inspectoralso stores the ramdisk logs in/var/log/ironic-inspector/ramdisk/as gz-compressed tar files. Filenames contain date, time, and the IPMI address of the node. Use these logs for diagnosing introspection issues.
15.1. Troubleshooting Node Registration Copiar o linkLink copiado para a área de transferência!
Issues with node registration usually arise from issues with incorrect node details. In this case, use ironic to fix problems with node data registered. Here are a few examples:
Find out the assigned port UUID:
source ~/stackrc
$ source ~/stackrc
(undercloud) $ openstack baremetal port list --node [NODE UUID]
Update the MAC address:
(undercloud) $ openstack baremetal port set --address=[NEW MAC] [PORT UUID]
(undercloud) $ openstack baremetal port set --address=[NEW MAC] [PORT UUID]
Run the following command:
(undercloud) $ openstack baremetal node set --driver-info ipmi_address=[NEW IPMI ADDRESS] [NODE UUID]
(undercloud) $ openstack baremetal node set --driver-info ipmi_address=[NEW IPMI ADDRESS] [NODE UUID]
15.2. Troubleshooting Hardware Introspection Copiar o linkLink copiado para a área de transferência!
The introspection process must run to completion. However, ironic’s Discovery daemon (ironic-inspector) times out after a default 1 hour period if the discovery ramdisk provides no response. Sometimes this might indicate a bug in the discovery ramdisk but usually it happens due to an environment misconfiguration, particularly BIOS boot settings.
Here are some common scenarios where environment misconfiguration occurs and advice on how to diagnose and resolve them.
Errors with Starting Node Introspection
Normally the introspection process uses the openstack overcloud node introspect command. However, if running the introspection directly with ironic-inspector, it might fail to discover nodes in the AVAILABLE state, which is meant for deployment and not for discovery. Change the node status to the MANAGEABLE state before discovery:
source ~/stackrc
$ source ~/stackrc
(undercloud) $ openstack baremetal node manage [NODE UUID]
Then, when discovery completes, change back to AVAILABLE before provisioning:
(undercloud) $ openstack baremetal node provide [NODE UUID]
(undercloud) $ openstack baremetal node provide [NODE UUID]
Stopping the Discovery Process
Stop the introspection process:
source ~/stackrc
$ source ~/stackrc
(undercloud) $ openstack baremetal introspection abort [NODE UUID]
You can also wait until the process times out. If necessary, change the timeout setting in /etc/ironic-inspector/inspector.conf to another period in seconds.
Accessing the Introspection Ramdisk
The introspection ramdisk uses a dynamic login element. This means you can provide either a temporary password or an SSH key to access the node during introspection debugging. Use the following process to set up ramdisk access:
Provide a temporary password to the
openssl passwd -1command to generate an MD5 hash. For example:openssl passwd -1 mytestpassword
$ openssl passwd -1 mytestpassword $1$enjRSyIw$/fYUpJwr6abFy/d.koRgQ/Copy to Clipboard Copied! Toggle word wrap Toggle overflow Edit the
/httpboot/inspector.ipxefile, find the line starting withkernel, and append therootpwdparameter and the MD5 hash. For example:kernel http://192.2.0.1:8088/agent.kernel ipa-inspection-callback-url=http://192.168.0.1:5050/v1/continue ipa-inspection-collectors=default,extra-hardware,logs systemd.journald.forward_to_console=yes BOOTIF=${mac} ipa-debug=1 ipa-inspection-benchmarks=cpu,mem,disk rootpwd="$1$enjRSyIw$/fYUpJwr6abFy/d.koRgQ/" selinux=0kernel http://192.2.0.1:8088/agent.kernel ipa-inspection-callback-url=http://192.168.0.1:5050/v1/continue ipa-inspection-collectors=default,extra-hardware,logs systemd.journald.forward_to_console=yes BOOTIF=${mac} ipa-debug=1 ipa-inspection-benchmarks=cpu,mem,disk rootpwd="$1$enjRSyIw$/fYUpJwr6abFy/d.koRgQ/" selinux=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow Alternatively, you can append the
sshkeyparameter with your public SSH key.NoteQuotation marks are required for both the
rootpwdandsshkeyparameters.Start the introspection and find the IP address from either the
arpcommand or the DHCP logs:arp sudo journalctl -u openstack-ironic-inspector-dnsmasq
$ arp $ sudo journalctl -u openstack-ironic-inspector-dnsmasqCopy to Clipboard Copied! Toggle word wrap Toggle overflow SSH as a root user with the temporary password or the SSH key.
ssh root@192.168.24.105
$ ssh root@192.168.24.105Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Checking Introspection Storage
The director uses OpenStack Object Storage (swift) to save the hardware data obtained during the introspection process. If this service is not running, the introspection can fail. Check all services related to OpenStack Object Storage to ensure the service is running:
sudo systemctl list-units openstack-swift*
$ sudo systemctl list-units openstack-swift*
15.3. Troubleshooting Workflows and Executions Copiar o linkLink copiado para a área de transferência!
The OpenStack Workflow (mistral) service groups multiple OpenStack tasks into workflows. Red Hat OpenStack Platform uses a set of these workflow to perform common functions across the CLI and web UI. This includes bare metal node control, validations, plan management, and overcloud deployment.
For example, when running the openstack overcloud deploy command, the OpenStack Workflow service executes two workflows. The first one uploads the deployment plan:
Removing the current plan files Uploading new plan files Started Mistral Workflow. Execution ID: aef1e8c6-a862-42de-8bce-073744ed5e6b Plan updated
Removing the current plan files
Uploading new plan files
Started Mistral Workflow. Execution ID: aef1e8c6-a862-42de-8bce-073744ed5e6b
Plan updated
The second one starts the overcloud deployment:
Workflow Objects
OpenStack Workflow uses the following objects to keep track of the workflow:
- Actions
- A particular instruction that OpenStack performs once an associated task runs. Examples include running shell scripts or performing HTTP requests. Some OpenStack components have in-built actions that OpenStack Workflow uses.
- Tasks
- Defines the action to run and the result of running the action. These tasks usually have actions or other workflows associated with them. Once a task completes, the workflow directs to another task, usually depending on whether the task succeeded or failed.
- Workflows
- A set of tasks grouped together and executed in a specific order.
- Executions
- Defines a particular action, task, or workflow running.
Workflow Error Diagnosis
OpenStack Workflow also provides robust logging of executions, which help you identify issues with certain command failures. For example, if a workflow execution fails, you can identify the point of failure. List the workflow executions that have the failed state ERROR:
source ~/stackrc
$ source ~/stackrc
(undercloud) $ openstack workflow execution list | grep "ERROR"
Get the UUID of the failed workflow execution (for example, dffa96b0-f679-4cd2-a490-4769a3825262) and view the execution and its output:
(undercloud) $ openstack workflow execution show dffa96b0-f679-4cd2-a490-4769a3825262 (undercloud) $ openstack workflow execution output show dffa96b0-f679-4cd2-a490-4769a3825262
(undercloud) $ openstack workflow execution show dffa96b0-f679-4cd2-a490-4769a3825262
(undercloud) $ openstack workflow execution output show dffa96b0-f679-4cd2-a490-4769a3825262
This provides information about the failed task in the execution. The openstack workflow execution show also displays the workflow used for the execution (for example, tripleo.plan_management.v1.publish_ui_logs_to_swift). You can view the full workflow definition using the following command:
(undercloud) $ openstack workflow definition show tripleo.plan_management.v1.publish_ui_logs_to_swift
(undercloud) $ openstack workflow definition show tripleo.plan_management.v1.publish_ui_logs_to_swift
This is useful for identifying where in the workflow a particular task occurs.
You can also view action executions and their results using a similar command syntax:
(undercloud) $ openstack action execution list (undercloud) $ openstack action execution show 8a68eba3-0fec-4b2a-adc9-5561b007e886 (undercloud) $ openstack action execution output show 8a68eba3-0fec-4b2a-adc9-5561b007e886
(undercloud) $ openstack action execution list
(undercloud) $ openstack action execution show 8a68eba3-0fec-4b2a-adc9-5561b007e886
(undercloud) $ openstack action execution output show 8a68eba3-0fec-4b2a-adc9-5561b007e886
This is useful for identifying a specific action causing issues.
15.4. Troubleshooting Overcloud Creation Copiar o linkLink copiado para a área de transferência!
There are three layers where the deployment can fail:
- Orchestration (heat and nova services)
- Bare Metal Provisioning (ironic service)
- Post-Deployment Configuration (Puppet)
If an overcloud deployment has failed at any of these levels, use the OpenStack clients and service log files to diagnose the failed deployment. You can also run the following command to display details of the failure:
openstack stack failures list <OVERCLOUD_NAME> --long
$ openstack stack failures list <OVERCLOUD_NAME> --long
Replace <OVERCLOUD_NAME> with the name of your overcloud.
If the initial overcloud creation fails, you can delete the partially deployed overcloud with the openstack stack delete overcloud command and try again. Only run this command if these initial overcloud creation fails. Do not run this command on a fully deployed and operational overcloud or else you will delete the entire overcloud.
15.4.1. Accessing deployment command history Copiar o linkLink copiado para a área de transferência!
Understanding historical director deployment commands and arguments can be useful for troubleshooting and support. You can view this information in /home/stack/.tripleo/history.
15.4.2. Orchestration Copiar o linkLink copiado para a área de transferência!
In most cases, Heat shows the failed overcloud stack after the overcloud creation fails:
If the stack list is empty, this indicates an issue with the initial Heat setup. Check your Heat templates and configuration options, and check for any error messages that presented after running openstack overcloud deploy.
15.4.3. Bare Metal Provisioning Copiar o linkLink copiado para a área de transferência!
Check ironic to see all registered nodes and their current status:
Here are some common issues that arise from the provisioning process.
Review the Provision State and Maintenance columns in the resulting table. Check for the following:
- An empty table, or fewer nodes than you expect
- Maintenance is set to True
-
Provision State is set to
manageable. This usually indicates an issue with the registration or discovery processes. For example, if Maintenance sets itself to True automatically, the nodes are usually using the wrong power management credentials.
-
If Provision State is
available, then the problem occurred before bare metal deployment has even started. -
If Provision State is
activeand Power State ispower on, the bare metal deployment has finished successfully. This means that the problem occurred during the post-deployment configuration step. -
If Provision State is
wait call-backfor a node, the bare metal provisioning process has not yet finished for this node. Wait until this status changes, otherwise, connect to the virtual console of the failed node and check the output. If Provision State is
errorordeploy failed, then bare metal provisioning has failed for this node. Check the bare metal node’s details:(undercloud) $ openstack baremetal node show [NODE UUID]
(undercloud) $ openstack baremetal node show [NODE UUID]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Look for
last_errorfield, which contains error description. If the error message is vague, you can use logs to clarify it:(undercloud) $ sudo journalctl -u openstack-ironic-conductor -u openstack-ironic-api
(undercloud) $ sudo journalctl -u openstack-ironic-conductor -u openstack-ironic-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
If you see
wait timeout errorand the node Power State ispower on, connect to the virtual console of the failed node and check the output.
15.4.4. Post-Deployment Configuration Copiar o linkLink copiado para a área de transferência!
Many things can occur during the configuration stage. For example, a particular Puppet module could fail to complete due to an issue with the setup. This section provides a process to diagnose such issues.
List all the resources from the overcloud stack to see which one failed:
source ~/stackrc
$ source ~/stackrc
(undercloud) $ openstack stack resource list overcloud --filter status=FAILED
This shows a table of all failed resources.
Show the failed resource:
(undercloud) $ openstack stack resource show overcloud [FAILED RESOURCE]
(undercloud) $ openstack stack resource show overcloud [FAILED RESOURCE]
Check for any information in the resource_status_reason field that can help your diagnosis.
Use the nova command to see the IP addresses of the overcloud nodes.
(undercloud) $ openstack server list
(undercloud) $ openstack server list
Log in as the heat-admin user to one of the deployed nodes. For example, if the stack’s resource list shows the error occurred on a Controller node, log in to a Controller node. The heat-admin user has sudo access.
(undercloud) $ ssh heat-admin@192.168.24.14
(undercloud) $ ssh heat-admin@192.168.24.14
Check the os-collect-config log for a possible reason for the failure.
sudo journalctl -u os-collect-config
[heat-admin@overcloud-controller-0 ~]$ sudo journalctl -u os-collect-config
In some cases, nova fails deploying the node in entirety. This situation would be indicated by a failed OS::Heat::ResourceGroup for one of the overcloud role types. Use nova to see the failure in this case.
(undercloud) $ openstack server list (undercloud) $ openstack server show [SERVER ID]
(undercloud) $ openstack server list
(undercloud) $ openstack server show [SERVER ID]
The most common error shown will reference the error message No valid host was found. See Section 15.6, “Troubleshooting "No Valid Host Found" Errors” for details on troubleshooting this error. In other cases, look at the following log files for further troubleshooting:
-
/var/log/nova/* -
/var/log/heat/* -
/var/log/ironic/*
The post-deployment process for Controller nodes uses five main steps for the deployment. This includes:
| Step | Description |
|
| Initial load balancing software configuration, including Pacemaker, RabbitMQ, Memcached, Redis, and Galera. |
|
| Initial cluster configuration, including Pacemaker configuration, HAProxy, MongoDB, Galera, Ceph Monitor, and database initialization for OpenStack Platform services. |
|
|
Initial ring build for OpenStack Object Storage ( |
|
| Configure service start up settings in Pacemaker, including constraints to determine service start up order and service start up parameters. |
|
|
Initial configuration of projects, roles, and users in OpenStack Identity ( |
15.5. Troubleshooting IP Address Conflicts on the Provisioning Network Copiar o linkLink copiado para a área de transferência!
Discovery and deployment tasks will fail if the destination hosts are allocated an IP address which is already in use. To avoid this issue, you can perform a port scan of the Provisioning network to determine whether the discovery IP range and host IP range are free.
Perform the following steps from the undercloud host:
Install nmap:
sudo yum install nmap
$ sudo yum install nmap
Use nmap to scan the IP address range for active addresses. This example scans the 192.168.24.0/24 range, replace this with the IP subnet of the Provisioning network (using CIDR bitmask notation):
sudo nmap -sn 192.168.24.0/24
$ sudo nmap -sn 192.168.24.0/24
Review the output of the nmap scan:
For example, you should see the IP address(es) of the undercloud, and any other hosts that are present on the subnet. If any of the active IP addresses conflict with the IP ranges in undercloud.conf, you will need to either change the IP address ranges or free up the IP addresses before introspecting or deploying the overcloud nodes.
15.6. Troubleshooting "No Valid Host Found" Errors Copiar o linkLink copiado para a área de transferência!
Sometimes the /var/log/nova/nova-conductor.log contains the following error:
NoValidHost: No valid host was found. There are not enough hosts available.
NoValidHost: No valid host was found. There are not enough hosts available.
This means the nova Scheduler could not find a bare metal node suitable for booting the new instance. This in turn usually means a mismatch between resources that nova expects to find and resources that ironic advertised to nova. Check the following in this case:
Make sure introspection succeeds for you. Otherwise check that each node contains the required ironic node properties. For each node:
source ~/stackrc
$ source ~/stackrc (undercloud) $ openstack baremetal node show [NODE UUID]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Check the
propertiesJSON field has valid values for keyscpus,cpu_arch,memory_mbandlocal_gb.Check that the nova flavor used does not exceed the ironic node properties above for a required number of nodes:
(undercloud) $ openstack flavor show [FLAVOR NAME]
(undercloud) $ openstack flavor show [FLAVOR NAME]Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Check that sufficient nodes are in the
availablestate according toopenstack baremetal node list. Nodes inmanageablestate usually mean a failed introspection. Check the nodes are not in maintenance mode. Use
openstack baremetal node listto check. A node automatically changing to maintenance mode usually means incorrect power credentials. Check them and then remove maintenance mode:(undercloud) $ openstack baremetal node maintenance unset [NODE UUID]
(undercloud) $ openstack baremetal node maintenance unset [NODE UUID]Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
If you’re using the Automated Health Check (AHC) tools to perform automatic node tagging, check that you have enough nodes corresponding to each flavor/profile. Check the
capabilitieskey inpropertiesfield foropenstack baremetal node show. For example, a node tagged for the Compute role should containprofile:compute. It takes some time for node information to propagate from ironic to nova after introspection. The director’s tool usually accounts for it. However, if you performed some steps manually, there might be a short period of time when nodes are not available to nova. Use the following command to check the total resources in your system:
(undercloud) $ openstack hypervisor stats show
(undercloud) $ openstack hypervisor stats showCopy to Clipboard Copied! Toggle word wrap Toggle overflow
15.7. Troubleshooting the Overcloud after Creation Copiar o linkLink copiado para a área de transferência!
After creating your overcloud, you might want to perform certain overcloud operations in the future. For example, you might aim to scale your available nodes, or replace faulty nodes. Certain issues might arise when performing these operations. This section provides some advice to diagnose and troubleshoot failed post-creation operations.
15.7.1. Overcloud Stack Modifications Copiar o linkLink copiado para a área de transferência!
Problems can occur when modifying the overcloud stack through the director. Example of stack modifications include:
- Scaling Nodes
- Removing Nodes
- Replacing Nodes
Modifying the stack is similar to the process of creating the stack, in that the director checks the availability of the requested number of nodes, provisions additional or removes existing nodes, and then applies the Puppet configuration. Here are some guidelines to follow in situations when modifying the overcloud stack.
As an initial step, follow the advice set in Section 15.4.4, “Post-Deployment Configuration”. These same steps can help diagnose problems with updating the overcloud heat stack. In particular, use the following command to help identify problematic resources:
openstack stack list --show-nested-
List all stacks. The
--show-nesteddisplays all child stacks and their respective parent stacks. This command helps identify the point where a stack failed. openstack stack resource list overcloud-
List all resources in the
overcloudstack and their current states. This helps identify which resource is causing failures in the stack. You can trace this resource failure to its respective parameters and configuration in the heat template collection and the Puppet modules. openstack stack event list overcloud-
List all events related to the
overcloudstack in chronological order. This includes the initiation, completion, and failure of all resources in the stack. This helps identify points of resource failure.
The next few sections provide advice to diagnose issues on specific node types.
15.7.2. Controller Service Failures Copiar o linkLink copiado para a área de transferência!
The overcloud Controller nodes contain the bulk of Red Hat OpenStack Platform services. Likewise, you might use multiple Controller nodes in a high availability cluster. If a certain service on a node is faulty, the high availability cluster provides a certain level of failover. However, it then becomes necessary to diagnose the faulty service to ensure your overcloud operates at full capacity.
The Controller nodes use Pacemaker to manage the resources and services in the high availability cluster. The Pacemaker Configuration System (pcs) command is a tool that manages a Pacemaker cluster. Run this command on a Controller node in the cluster to perform configuration and monitoring functions. Here are few commands to help troubleshoot overcloud services on a high availability cluster:
pcs status- Provides a status overview of the entire cluster including enabled resources, failed resources, and online nodes.
pcs resource show- Shows a list of resources, and their respective nodes.
pcs resource disable [resource]- Stop a particular resource.
pcs resource enable [resource]- Start a particular resource.
pcs cluster standby [node]- Place a node in standby mode. The node is no longer available in the cluster. This is useful for performing maintenance on a specific node without affecting the cluster.
pcs cluster unstandby [node]- Remove a node from standby mode. The node becomes available in the cluster again.
Use these Pacemaker commands to identify the faulty component and/or node. After identifying the component, view the respective component log file in /var/log/.
15.7.3. Containerized Service Failures Copiar o linkLink copiado para a área de transferência!
If a containerized service fails during or after overcloud deployment, use the following recommendations to determine the root cause for the failure:
Before running these commands, check that you are logged into an overcloud node and not running these commands on the undercloud.
Checking the container logs
Each container retains standard output from its main process. This output acts as a log to help determine what actually occurs during a container run. For example, to view the log for the keystone container, use the following command:
sudo docker logs keystone
$ sudo docker logs keystone
In most cases, this log provides the cause of a container’s failure.
Inspecting the container
In some situations, you might need to verify information about a container. For example, use the following command to view keystone container data:
sudo docker inspect keystone
$ sudo docker inspect keystone
This provides a JSON object containing low-level configuration data. You can pipe the output to the jq command to parse specific data. For example, to view the container mounts for the keystone container, run the following command:
sudo docker inspect keystone | jq .[0].Mounts
$ sudo docker inspect keystone | jq .[0].Mounts
You can also use the --format option to parse data to a single line, which is useful for running commands against sets of container data. For example, to recreate the options used to run the keystone container, use the following inspect command with the --format option:
sudo docker inspect --format='{{range .Config.Env}} -e "{{.}}" {{end}} {{range .Mounts}} -v {{.Source}}:{{.Destination}}{{if .Mode}}:{{.Mode}}{{end}}{{end}} -ti {{.Config.Image}}' keystone
$ sudo docker inspect --format='{{range .Config.Env}} -e "{{.}}" {{end}} {{range .Mounts}} -v {{.Source}}:{{.Destination}}{{if .Mode}}:{{.Mode}}{{end}}{{end}} -ti {{.Config.Image}}' keystone
The --format option uses Go syntax to create queries.
Use these options in conjunction with the docker run command to recreate the container for troubleshooting purposes:
OPTIONS=$( sudo docker inspect --format='{{range .Config.Env}} -e "{{.}}" {{end}} {{range .Mounts}} -v {{.Source}}:{{.Destination}}{{if .Mode}}:{{.Mode}}{{end}}{{end}} -ti {{.Config.Image}}' keystone )
sudo docker run --rm $OPTIONS /bin/bash
$ OPTIONS=$( sudo docker inspect --format='{{range .Config.Env}} -e "{{.}}" {{end}} {{range .Mounts}} -v {{.Source}}:{{.Destination}}{{if .Mode}}:{{.Mode}}{{end}}{{end}} -ti {{.Config.Image}}' keystone )
$ sudo docker run --rm $OPTIONS /bin/bash
Running commands in the container
In some cases, you might need to obtain information from within a container through a specific Bash command. In this situation, use the following docker command to execute commands within a running container. For example, to run a command in the keystone container:
sudo docker exec -ti keystone <COMMAND>
$ sudo docker exec -ti keystone <COMMAND>
The -ti options run the command through an interactive pseudoterminal.
Replace <COMMAND> with your desired command. For example, each container has a health check script to verify the service connection. You can run the health check script for keystone with the following command:
sudo docker exec -ti keystone /openstack/healthcheck
$ sudo docker exec -ti keystone /openstack/healthcheck
To access the container’s shell, run docker exec using /bin/bash as the command:
sudo docker exec -ti keystone /bin/bash
$ sudo docker exec -ti keystone /bin/bash
Exporting a container
When a container fails, you might need to investigate the full contents of the file. In this case, you can export the full file system of a container as a tar archive. For example, to export the keystone container’s file system, run the following command:
sudo docker export keystone -o keystone.tar
$ sudo docker export keystone -o keystone.tar
This command create the keystone.tar archive, which you can extract and explore.
15.7.4. Compute Service Failures Copiar o linkLink copiado para a área de transferência!
Compute nodes use the Compute service to perform hypervisor-based operations. This means the main diagnosis for Compute nodes revolves around this service. For example:
View the status of the container:
sudo docker ps -f name=nova_compute
$ sudo docker ps -f name=nova_computeCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
The primary log file for Compute nodes is
/var/log/containers/nova/nova-compute.log. If issues occur with Compute node communication, this log file is usually a good place to start a diagnosis. - When you perform maintenance on the Compute node, migrate the existing instances from the host to an operational Compute node, then disable the node. For more information, see Migrating virtual machine instances between Compute nodes.
15.7.5. Ceph Storage Service Failures Copiar o linkLink copiado para a área de transferência!
For any issues that occur with Red Hat Ceph Storage clusters, see "Logging Configuration Reference" in the Red Hat Ceph Storage Configuration Guide. This section provides information on diagnosing logs for all Ceph storage services.
15.8. Tuning the Undercloud Copiar o linkLink copiado para a área de transferência!
The advice in this section aims to help increase the performance of your undercloud. Implement the recommendations as necessary.
-
The Identity Service (keystone) uses a token-based system for access control against the other OpenStack services. After a certain period, the database will accumulate a large number of unused tokens; a default cronjob flushes the token table every day. It is recommended that you monitor your environment and adjust the token flush interval as needed. For the undercloud, you can adjust the interval using
crontab -u keystone -e. Note that this is a temporary change and thatopenstack undercloud updatewill reset this cronjob back to its default. Heat stores a copy of all template files in its database’s
raw_templatetable each time you runopenstack overcloud deploy. Theraw_templatetable retains all past templates and grows in size. To remove unused templates in theraw_templatestable, create a daily cronjob that clears unused templates that exist in the database for longer than a day:0 04 * * * /bin/heat-manage purge_deleted -g days 1
0 04 * * * /bin/heat-manage purge_deleted -g days 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow The
openstack-heat-engineandopenstack-heat-apiservices might consume too many resources at times. If so, setmax_resources_per_stack=-1in/etc/heat/heat.confand restart the heat services:sudo systemctl restart openstack-heat-engine openstack-heat-api
$ sudo systemctl restart openstack-heat-engine openstack-heat-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow Sometimes the director might not have enough resources to perform concurrent node provisioning. The default is 10 nodes at the same time. To reduce the number of concurrent nodes, set the
max_concurrent_buildsparameter in/etc/nova/nova.confto a value less than 10 and restart the nova services:sudo systemctl restart openstack-nova-api openstack-nova-scheduler
$ sudo systemctl restart openstack-nova-api openstack-nova-schedulerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Edit the
/etc/my.cnf.d/galera.cnffile. Some recommended values to tune include:- max_connections
- Number of simultaneous connections to the database. The recommended value is 4096.
- innodb_additional_mem_pool_size
- The size in bytes of a memory pool the database uses to store data dictionary information and other internal data structures. The default is usually 8M and an ideal value is 20M for the undercloud.
- innodb_buffer_pool_size
- The size in bytes of the buffer pool, the memory area where the database caches table and index data. The default is usually 128M and an ideal value is 1000M for the undercloud.
- innodb_flush_log_at_trx_commit
- Controls the balance between strict ACID compliance for commit operations, and higher performance that is possible when commit-related I/O operations are rearranged and done in batches. Set to 1.
- innodb_lock_wait_timeout
- The length of time in seconds a database transaction waits for a row lock before giving up. Set to 50.
- innodb_max_purge_lag
- This variable controls how to delay INSERT, UPDATE, and DELETE operations when purge operations are lagging. Set to 10000.
- innodb_thread_concurrency
- The limit of concurrent operating system threads. Ideally, provide at least two threads for each CPU and disk resource. For example, if using a quad-core CPU and a single disk, use 10 threads.
Ensure that heat has enough workers to perform an overcloud creation. Usually, this depends on how many CPUs the undercloud has. To manually set the number of workers, edit the
/etc/heat/heat.conffile, set thenum_engine_workersparameter to the number of workers you need (ideally 4), and restart the heat engine:sudo systemctl restart openstack-heat-engine
$ sudo systemctl restart openstack-heat-engineCopy to Clipboard Copied! Toggle word wrap Toggle overflow
15.9. Creating an sosreport Copiar o linkLink copiado para a área de transferência!
If you need to contact Red Hat for support on OpenStack Platform, you might need to generate an sosreport. See the following knowledgebase article for more information on how to create an sosreport:
15.10. Important Logs for Undercloud and Overcloud Copiar o linkLink copiado para a área de transferência!
Use the following logs to find out information about the undercloud and overcloud when troubleshooting.
| Information | Log Location |
|---|---|
| OpenStack Compute log |
|
| OpenStack Compute API interactions |
|
| OpenStack Compute Conductor log |
|
| OpenStack Orchestration log |
|
| OpenStack Orchestration API interactions |
|
| OpenStack Orchestration CloudFormations log |
|
| OpenStack Bare Metal Conductor log |
|
| OpenStack Bare Metal API interactions |
|
| Introspection |
|
| OpenStack Workflow Engine log |
|
| OpenStack Workflow Executor log |
|
| OpenStack Workflow API interactions |
|
| Information | Log Location |
|---|---|
| Cloud-Init Log |
|
| Overcloud Configuration (Summary of Last Puppet Run) |
|
| Overcloud Configuration (Report from Last Puppet Run) |
|
| Overcloud Configuration (All Puppet Reports) |
|
| Overcloud Configuration (stdout from each Puppet Run) |
|
| Overcloud Configuration (stderr from each Puppet Run) |
|
| High availability log |
|