openstack 创建实例时错误总结

本文记录了在虚拟机环境中部署OpenStack遇到的问题及解决方案,包括网络配置、实例创建失败与性能瓶颈调整,为新手提供了宝贵的实战经验。

1、网络错误

Management网络,Provider网络,一开始不太理解

一开始按照官网的建议部署了双网卡,网卡一192.168.0.11/24(桥接模式) ,网卡二按官网不配地址(nat模式)

openstack subnet create --network provider \ --allocation-pool start=192.168.0.200,end=192.168.0.230 \ --dns-nameserver 8.8.8.8 --gateway 192.168.0.1 \ --subnet-range 192.168.0.0/24 provider  成功,但无法ping通网络

看了官网拓扑很久,Management其实就是opentstank内部通讯网络,Provider是能提供连接外网的网络。我用的桥接模式,所以Provider 网络部分就是192.168.0.1部分,Management可以直接用我所在的桥接网络,只要能互通就行,像存储网络也可以用同一网络。当然生产环境建议分开部署成内网。 网上说还需要内部隧道网络,我就把网卡二改成了紧主机模式,并配了10.1.1.0网络地址

进入控制台,删除了所有网络,再用以上命令创建subnet 后成功ping通

 2、创建实例后卡住在ipex 引导界面,如图

网上搜了很多都是说qemu 版本太低缘故,可一查我的版本非常高了,我不是这个原因。折腾很久,以为是镜像有问题,去centos官网下了通用云镜像,还是启动不了。想到网上说的qemu问题,想起  egrep -c '(vmx|svm)' /proc/cpuinfo支持硬件虚拟化就没配置

[libvirt]
# ...
virt_type = qemu

在计算节点/etc/nova/nova.conf 增加此参数,终于解决了,哎,我是虚拟机VM中安装openstack,也就是会在虚拟机中运行虚拟机,估计是这个,虽然vm 是支持虚拟机里再运行虚拟机的,但估计openstack不行,官网的文档应该不是针对虚拟机部署的。

加此参数后终于跑起来了

 

 3、 计算节点配置的cpu 、磁盘太小造成创建实例直接失败

一开始不知道为什么,又以为是镜像问题,因为用cirros 测试镜像可以,用centos官网的centos7 镜像死活创建不了,进控制台查看虚拟机,提示” No valid host was found. There are not enough hosts available “ ,调大计算节点cpu ,存储,终于跑起来了。

 

哎,发现这些问题都是采用虚拟机造成的,建议新手部署时还是采用物理机部署吧,可以少走很多弯路。

 

<think> 首先,用户的问题是:“我想查找在OpenStack创建实例状态显示错误的解决办法”,意思是用户遇到了在OpenStack创建实例实例状态显示为“错误”的问题,需要解决办法。 系统指令要求: - 所有行内数学表达式使用 `$...$` 格式。 - 独立公式使用 `$$...$$` 格式。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识,例如 `[^1]`。 用户提供的引用有四个: - [^1]: 关于OpenStack创建实例报错的一般性文章,提到分析报错原因和解决方案。 - [^2]: 描述了一些具体的报错情况,如“Build of instance…note rescheduling”和“No valid host was found”,并提供了一些处理步骤。 - [^3]: 提到启动实例状态为错误错误消息如“No valid host was found”,建议检查资源不足或CPU虚拟化。 - [^4]: 简短提到source openrc文件,但不直接相关。 我需要整合这些引用信息,提供解决OpenStack创建实例状态错误的方法。既然引用是用户提供的,我应该基于这些信息构建回答。 关键点从引用中提取: - 常见错误:状态错误,如“Build of instance…note rescheduling”或“No valid host was found”。 - 原因: - 资源不足(如CPU、内存不足)。 - CPU虚拟化未启用(检查 `/proc/cpuinfo`)。 - 服务问题(如nova-compute服务未正常运行)。 - 解决方案: - 引用[^2]:重启计算节点上的服务(如 `systemctl restart openstack-nova-compute.service` 和 `libvirtd.service`)。 - 引用[^3]:尝试创建更小的实例;检查CPU虚拟化;如果 `egrep -c '(vmx|svm)' /proc/cpuinfo` 返回0,则修改 `/etc/nova/nova.conf` 设置 `virt_type = qemu`。 - 引用[^4]:source openrc文件,但可能不直接相关。 回答结构: - 系统指令要求回答结构清晰,帮助用户逐步解决问题。 - 我应该分步骤解释解决方法。 - 最后生成相关问题。 回答内容: - 引言:简述问题。 - 步骤:列出常见的解决方法。 - 结尾:总结。 - 添加引用标识:在相关部分末尾添加 `[^1]`、`[^2]` 等。 - 生成相关问题。 数学表达式:用户的问题不涉及数学,但系统指令要求所有行内数学表达式使用 `$...$`。可能没有数学内容,但如果有变量或命令,我会用 `$...$`。例如,命令如 `egrep -c '(vmx|svm)' /proc/cpuinfo` 可以用 `$...$` 包裹。 使用中文:整个回答必须用中文。 生成相关问题:在回答结束后,添加“相关问题”部分,类似示例。 最终回答结构: 1. 开头:回应问题。 2. 主体:分步骤解释解决方法,引用来源。 3. 结尾:建议进一步排查。 4. §§相关问题§§:列出3-5个相关问题。 现在,整合引用信息: - 常见错误:状态显示错误- 原因:资源不足、CPU虚拟化未启用、服务问题。 - 解决步骤: a. 检查错误详情:通过OpenStack dashboard查看错误消息。 b. 验证资源可用性:如有必要,创建更小的实例。 c. 检查CPU虚拟化:使用命令 `$egrep -c '(vmx|svm)' /proc/cpuinfo$`,如果返回0,则修改配置文件 `/etc/nova/nova.conf`,设置 `$[libvirt]$` 部分 `$virt_type = qemu$`。 d. 重启相关服务:如重启 `$openstack-nova-compute.service$` 和 `$libvirtd.service$`。 e. 其他:如source openrc文件(引用[^4],但可能次要)。 添加引用: - 在描述错误引用 [^2] 和 [^3]。 - 在具体解决方案步骤引用来源。 相关问题: 1. 如何检查OpenStack计算节点的资源使用情况? 2. 在OpenStack中如何启用CPU虚拟化? 3. 常见的OpenStack创建实例错误有哪些? 4. 如何调试OpenStack服务问题? </think> ### OpenStack创建实例状态显示错误的解决办法 在OpenStack创建实例,状态显示“错误”通常由资源不足、CPU虚拟化未启用或服务异常引起。以下基于引用内容,提供分步解决方法。确保操作前备份配置,并以管理员权限执行命令。 #### 步骤1: **检查错误详情** - 登录OpenStack dashboard(如Horizon),点击实例名称,在“概况”标签页查看具体错误消息。例如: - 若显示“`No valid host was found`”,可能是资源不足或计算节点未正确配置[^3]。 - 若显示“`Build of instance…note rescheduling`”,可能涉及计算服务故障[^2]。 通过错误消息锁定问题根源。 #### 步骤2: **验证并解决资源不足问题** - 原因:计算节点CPU、内存或存储不足。 - **解决方法**: 1. 创建更小的实例类型(如1核CPU、1GB内存、20GB磁盘),测试资源配置是否合理[^3]。 2. 检查计算节点资源利用率: - 使用命令 `$openstack hypervisor stats show$` 查看资源分配情况。 3. 如资源不足,扩展计算节点或调整实例规格。 #### 步骤3: **检查并修复CPU虚拟化问题** - 原因:计算节点未启用硬件辅助虚拟化(如Intel VT-x 或 AMD-V)。 - **解决方法**: 1. 在计算节点执行命令检查CPU虚拟化支持: ```bash $egrep -c '(vmx|svm)' /proc/cpuinfo$ ``` 返回值非0表示支持;若返回0,需进一步配置[^3]。 2. 若返回0,修改Nova配置文件: - 编辑 `/etc/nova/nova.conf`,在 `$[libvirt]$` 部分添加: ```ini virt_type = qemu ``` 3. 重启服务: ```bash $systemctl restart libvirtd.service$ $systemctl restart openstack-nova-compute.service$ ``` #### 步骤4: **重启相关服务** - 原因:Nova计算服务或Libvirtd服务异常导致状态错误- **解决方法**: 1. 在受影响的计算节点重启服务(项目所属计算节点): ```bash $systemctl restart openstack-nova-compute.service$ $systemctl restart libvirtd.service$ ``` 验证状态: `$systemctl status libvirtd.service$`[^2]。 2. 如重启后仍有问题,检查日志: ```bash $journalctl -u openstack-nova-compute.service$ ``` #### 步骤5: **其他通用排查** - **环境配置**:确保source管理员凭证(如 `$source /opt/stack/devstack/openrc admin$`),避免权限问题导致错误[^4]。 - **网络或存储问题**:验证网络连通性(如 `$openstack network list$`)和存储后端(如Ceph或LVM)是否正常。 - **服务整体状态**:运行 `$openstack compute service list$` 检查所有服务状态是否为 `up`。 #### 总结 通过以上步骤,多数“状态错误”问题可解决:优先检查错误消息和资源,再处理CPU虚拟化或服务重启。如问题持续,需审查日志并确保底层虚拟化环境稳定[^1][^2][^3]。定期维护计算节点可减少此类故障。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值