Error de cálculo de OpenStack: Aunque los hosts informáticos tenían nova-compute escuchando el servicio, esos nodos no se mostraban cuando 'nova hypervisor-list Se ejecutó el comando.
# nova hypervisor-list +----+----------------------------+-------+---------+ | ID | Hypervisor hostname | State | Status | +----+----------------------------+-------+---------+
Pero el comando nova service-list no tuvo ningún problema al mostrar los hosts de cómputo. Bueno, el problema puede parecer un poco extraño, pero si tiene un problema similar en OpenStack, esta es la solución.
Cómo solucionar el error de cómputo de OpenStack: ¿No hay registro de nodo de cómputo para el host?
[compute-node]# cd /var/log/nova
[compute-node]# tailf nova-compute.log
Salida de muestra:
ERROR nova.compute.manager [req-1d2c4e83-a57d-4e66-b8b4-81da4772b0d2 - - - - -] No compute node record for host cloudsecurity5 INFO nova.compute.resource_tracker [req-1d2c4e83-a57d-4e66-b8b4-81da4772b0d2 - - - - -] Auditing locally available compute resources for node cloudsecurity5 ERROR nova.compute.manager [req-1d2c4e83-a57d-4e66-b8b4-81da4772b0d2 - - - - -] Error updating resources for node cloudsecurity5
El error anterior indica que el programador de OpenStack no puede encontrar un host informático adecuado, probablemente debido a un hipervisor no válido o nova-compute. el servicio no está activo u otro problema de configuración.
[compute-node]# vim /etc/nova-compute.conf
y busque las siguientes entradas en [DEFAULT] sección.
[DEFAULT] compute_driver=libvirt.LibvirtDriver [libvirt] virt_type=kvm
Asegúrese también de /etc/nova/nova.conf tiene todas las configuraciones necesarias para ejecutar un host de cómputo.
La parte central de nova-compute El servicio es el controlador de virtualización que interactúa con el hipervisor. OpenStack es compatible con muchos controladores informáticos como libvirt.LibvirtDriver para KVM, xenapi.XenAPIDriver para Xen, vmwareapi.VMwareVCDriver para VMware y hyperv.HyperVDrive para HyperV. En mi caso, estaba usando libvirt controlador de cómputo (busque compute_driver atributo en la instantánea anterior).
Paso 3 :Asegúrese de libvirt el demonio se está ejecutando.
[compute-node]# /etc/init.d/libvirt-bin status
Afortunadamente, el servicio libvirt-bin estaba activo, pero vi algunos errores al final de la salida de estado como se muestra a continuación:
cloudsecurity5 libvirtd[58988]: hostname: cloudsecurity5.test.in cloudsecurity5 libvirtd[58988]: End of file while reading data: Input/output error
Aunque libvirt-bin el daemon se estaba ejecutando, aún indica un problema al realizar operaciones de entrada/salida.
Por lo tanto, decidí reiniciar libvirt-bin y su demonio relacionado llamado libvirt-guests .
[compute-node]# /etc/init.d/libvirt-guests restart
[compute-node]# /etc/init.d/libvirt-bin restart
Una vez hecho esto, confirme si el demonio se está ejecutando sin ningún error.
[compute-node]# /etc/init.d/libvirt-bin status
Salida de muestra al final del mensaje de estado del servicio:
cloudsecurity2 systemd[1]: Starting Virtualization daemon... cloudsecurity2 systemd[1]: Started Virtualization daemon. cloudsecurity2 dnsmasq[2960]: read /etc/hosts - 9 addresses cloudsecurity2 dnsmasq[2960]: read /var/lib/libvirt/dnsmasq/def cloudsecurity2 dnsmasq-dhcp[2960]: read /var/lib/libvirt/dnsmas
[compute-node]# /etc/init.d/nova-compute restart
En mi caso, el error de entrada/salida del demonio libvirt fue el culpable. El problema está resuelto y ahora los nodos de cómputo están registrados correctamente como se muestra a continuación:
# nova hypervisor-list +----+----------------------------+-------+---------+ | ID | Hypervisor hostname | State | Status | +----+----------------------------+-------+---------+ | 1 | cloudsecurity5.test.in | up | enabled | +----+----------------------------+-------+---------+