使用openstack中遇到的报错和使用笔记

OpenStack故障排除指南
本文提供了一系列OpenStack常见问题的解决方案,包括keystone配置错误、登录问题、Dashboard访问失败、命令执行错误等,并介绍了如何检查日志、重启服务、设置环境变量及调整配置文件。

学习的时候可以参考:https://www.cnblogs.com/CloudMan6/p/5393376.html 这一系列文章。
在Pike版本中,keystone 命令已经被openstack命令代替,如显示用户列表:

openstack user list

登录(登录命令要在devstack目录下运行,当报告:WARNING: setting legacy OS_TENANT_NAME to support cli tools.时即表示可以正常使用):

source openrc admin admin

在dashboard的界面上无法登录的时候:

1. 使用openstack user list报错如下:

Failed to discover available identity versions when contacting http://你的IP/identity. Attempting to parse version from URL.
Could not determine a suitable URL for the plugin

错误原因是keystone方面的,可能是某些操作修改了它的配置文件: /etc/keystone/keystone.conf ,使用以下命令可以查看keystone的日志。

 journalctl -u  devstack@keystone.service -f

这个命令可以查看keystone服务的状态,将status改为restart可以重启:systemctl status devstack@keystone.service

还有可能是Apache服务没有启动,通过以下命令查看

systemctl status apache2

如果显示如下,则可以看到红色部分,服务没有启动
在这里插入图片描述通过以下命令启动:

systemctl start apache2

如果启动时候报错:

Job for apache2.service failed because the control process exited with
error code.

可以卸载重装Apache2:

sudo apt-get purge apache2
sudo apt-get install apache2
2.无法使用openstack CIL时:

方法:
①在devstack目录下 新建 openrc.ch

vim openrc.sh

②在openrc.sh文件中写入:

export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://127.0.0.1/identity#这个ULR 和本机环境有关;从/etc/keystone/keystone.conf文件中搜索admin_endopint后面的值。
export OS_IDENTITY_API_VERSION=3

③然后运行它:

source openrc.sh
3.如果报错:Missing value auth-url required for auth plugin password

2中的步骤重新做一遍,再执行openstack命令;可以使用 env | grep OS查看设置的环境变量是否正确。

4.运行mysql报错:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

参考:https://www.cnblogs.com/qmfsun/p/6298010.html
要在root环境下进行,否则会导致dashboard无法登录。
4.如果devstack是安装在/opt/stack目录下的话,设置openstack环境变量的命令就应该是(在根目录下运行,后面两个是用户名和密码):
source opt/stack/devstack/openrc admin admin

5.nova list命令报错:
No handlers could be found for logger "keystoneauth.identity.generic.base"

解决办法:
先运行
nova --debug list
然后再运行
nova list

6.命令行执行openstack的命令报错:
The request you have made requires authentication. (HTTP 401) (Request-ID:

如果你没有在openstack界面更改过密码的话,那么很大可能你当前的命令行窗口距离上次执行source openrc admin admin已经过了很长时间(我是12小时左右),因为在openstack中用户登录以后keystone会给当前用户一个Token(令牌),但这个令牌是有时间限制的,过期后就不能操作了,所以重开一个命令行窗口就好了。

7.通过openstack endpoint show nova查看nova的端口报告:
More than one endpoint exists with the name 'nova'.

是因为有超过1个端口信息,可以使用:

openstack endpoint list --service nova

查看端口的列表。

8.镜像文件存储目录:
 /opt/stack/data/glance/images/

PS:在计算节点建立虚拟机并不需要将镜像文件传到计算节点上,只需要在控制节点将文件传上传到Glance,然后通过scheduler自动调用计算节点去下载安装。

9.关闭neutron的服务:
systemctl stop devstack@q-svc.service
10.在openstack命令行中传递参数以空格隔开(test set为自己设置的命令):

(openstack)test set “2” “c1” “32” “4857805c-b9ac-11e9-9787-93dbd52e6d42” “242”

11.登录dashboard报错:

修改文件: /opt/stack/horizon/openstack_dashboard/settings.py

将:

    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',

修改为:

    'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
### OpenStack冷迁移报错的原因分析与解决方案 #### 一、错误原因 OpenStack冷迁移过程中可能出现多种类型的错误,这些错误通常涉及计算节点之间的资源协调以及底层硬件兼容性等问题。以下是常见的几种可能引发冷迁移失败的情况及其潜在原因: 1. **目标节点资源配置不足** 如果目标节点缺乏足够的内存、磁盘空间或其他必要资源,则可能导致冷迁移失败。Nova调度器会尝试验证目标节点是否有足够的容量来接收迁入的实例[^1]。 2. **网络配置不一致** 冷迁移要求源节点目标节点具有相同的网络环境设置。如果两者的Neutron网络配置存在差异(例如VLAN ID冲突),则可能会导致通信中断或IP地址分配失败[^2]。 3. **存储后端不匹配** 当使用共享存储作为虚拟机镜像存放位置时,需确保所有参与迁移过程的计算节点都能访问同一份数据副本;否则容易造成文件权限变更或者丢失现象发生,比如`console.log`, `disk` 文件属主变为 root/root 的情况就是典型例子之一. 4. **CPU架构不兼容** 对于某些特定场景下的热迁移而言 (尽管这里是讨论冷迁移),仍然需要注意源主机与目标主机之间是否存在 CPU 特性的差别。假如采用了过于严格的 cpu_mode 设置(如 'host-passthrough') ,那么即使是在冷迁移期间也有可能因为新旧服务器间处理器型号不符而遭到拒绝执行请求的结果出现[^3]. 5. **身份认证失效** 另外还有可能是由于 token 过期等原因引起的身份验证异常问题,在日志里表现为 unauthorized 类型的信息提示[^2]. #### 二、解决方案 针对以上提到的各种可能性提供相应的处理措施如下: 1. 验证并调整目标节点上的可用资源状态, 确认满足待转移工作负载需求. 2. 审查整个集群范围内关于 Neutron 所定义的各项参数设定是否统一无误. 3. 检查存储子系统的连接状况, 并修复任何妨碍正常运作的因素; 同时考虑实施自动化脚本来定期纠正因迁移动作所引起的意外更改行为. 4. 根据实际业务需要合理选择合适的 cpu_mode 方式 ('host-model' 或者 'custom'), 尤其当涉及到异构物理设备部署的时候更要谨慎权衡利弊得失. 5. 更新 Keystone service 来延长 tokens 生命周期或是重新获取新的有效凭证后再试运行命令操作. ```bash # Example of checking available resources on destination node nova hypervisor-stats --detail | grep free_ram_mb ``` ```python from keystoneauth1 import session as ks_session from keystoneauth1.identity import v3 def get_new_token(): auth = v3.Password(auth_url="http://keystone.example.com/v3", username='admin', password='password', project_name='service') sess = ks_session.Session(auth=auth) return sess.get_token() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值