02168888812
云终端系列报道第九十五期 - Openstack Nova 排错 2016-11-10

炙伦云终端分享:



Compute Service Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源。OpenStack作为IaaS的云操作系统,虚拟机生命周期管理也就是通过Nova来实现的。Nova要与其它的openstack服务相互配合才能完成任务,因此,Nova的排错也很有挑战性,我们在本文中介绍相应的步骤来准确定位错误并处理:

  • 检查服务状态

  • 检查数据库

  • 检查身份验证

  • 检查Glance集成

  • 检查Neutron 集成


1 检查服务状态

Nova 的架构比较复杂,包含很多组件。这些组件以子服务(后台 deamon 进程)的形式运行,使用以下命令检查服务状态

   ps -aux | grep nova-

确保以下进程正常运行:

  • nova-api

  • nova-scheduler

  • nova-conductor

  • nova-compute

下面我们分别讲述如何检查每个子服务的工作:

1.1 nova-api:接收和响应客户的 API 调用。 除了提供 OpenStack 自己的API,nova-api 还支持 Amazon EC2 API。

Nova api 一般部署在控制节点。Compute (nova) endpoints默认端口8774,nova-api 的默认端口是8773, 8775 。使用命令检查服务状态

ps -aux | grep nova-api

如果发现服务没有启动,可以使用以下命令启动(Ubuntu 下):

start nova-api

或者手工指定启动配置文件:

 sudo -u nova nova-api --config-file = /etc/nova/nova.conf

1.1.1  常见错误1: Address already in use

类似信息:

你要检查端口的情况,确认是否被占用,使用如下命令:

lsof –i :8774

如果你查询到的不是图中那样,就证明端口被占用,在清除占用端口的进程后,再次检查。

1.1.2   常见错误2: permission error

这个错误最常见的原因就是/etc/nova/nova.conf的权限不对,可以按照以下实例修改:

  • chmod 644 /etc/nova/nova.conf

  •  chown nova:nova /etc/nova/nova.conf

重新设置权限后,再次启动服务,如果仍然有权限错误,就要检查日志文件,查询是否有其它原因。

1.2 nova-scheduler:虚机调度服务,负责决定在哪个计算节点上运行虚机实例。

检查nova-scheduler服务是否正在运行,我们可以使用以下命令:

ps-aus|grep nova-scheduler

如果nova-scheduler进程未启动,可以通过运行以下命令来执行此操作:

sudo-u nova /usr/bin/python /usr/local/bin/nova-scheduler --config-file=etc/nova/nova.conf

如果启动过程中发生permission error,就参考前面的解决方法。在服务启动后,如果还有错误信息,就要去看日志,通常日志在/var/log/nova/下,命令如下:

less /var/log/nova/nova-scheduler.log | grep \\\'ERROR\\\'

某些时候,也有可能RabbitMQ出现问题,使用如下命令查看:

      rabbitmqctl status

1.3 nova-compute:管理虚机的核心服务,通过调用 Hypervisor API 实现虚机生命周期管理。

首先还是要检查nova-scheduler服务是否正在运行,我们可以使用以下命令:

ps -aux | grep nova-compute

如果需要启动服务,可以执行:

start nova-compute

或者:

   sudo -u nova nova-compute --config-file = /etc/nova/nova.conf --config-file = /etc/nova/nova-compute.log

当你发现实例状态有“ERROR”,在服务进程正常的前提下,需要在日志文件里查找相关信息:

  •  /var/1og/nova/nova-compute.log

  • /var/1og/nova/nova-scheduler.log

  • /var/1og/nova/nova-conductor.log

1.4 nova-conductor:介于nova-computer和database之间,设计目的在于消除直接nova-computer直接访问云数据库,保证数据库安全。

首先还是要检查nova-conductor服务是否正在运行,我们可以使用以下命令:

ps -aux | grep nova-conductor

如果需要启动服务:

start nova-conductor

或者指定配置文件:

sudo-u nova nova-conductor --config-file=/etc/nova/nova.conf

如果遇到权限问题,参考前面的解决方法。


转自:云技术实践

上一页:云终端系列报道第九十四期 - 云计算领域中国领先美国 下一页:云终端系列报道第九十六期 - 一款国内没有竞争对手的产品
推荐新闻 Recommended news

帮助中心
6509367