OpenStack创建实例控制台显示starting up...

在配置好OpenStack后,尝试创建并进入cirros实例时,发现控制台仅显示'starting up...'并长时间无响应。通过社区查找,发现与libvirt 2有关,并在nova.conf中添加'[libvirt] cpu_mode = none'解决了问题。重启计算节点并重新创建实例后,问题得到解决,但具体原因仍需进一步研究。

问题简述

今天刚刚配置好自己的OpenStack,然后跟着教程也是做到了创建实例,好不容易创建好了,用例子的cirros进入console,只有黑屏加上:starting up…,挂了一个小时还是这样,然后网上竟然完全查不到,后来终于查到了一个问这个问题的人。

Hi all,
I installed openstack Newton on CentOS 7 the 2 node architecture with self-service network, I followed this link http://docs.openstack.org/newton/inst
I’m using CirrOS as an OS. However when I create a server and access it via VNC url, it gives that it’s “starting up” and >it takes forever.
These warnings from nova-compute.log might be related

大概就是这个人和我一样,用的centos创建了两个节点,然后通过vnc来进入呢,发现了问题,就是一直挂在starting up这个地方进不去

然后下面找到了个回复:

If using libvirt 2 (guess yes by the error). Add the following in libvirt section of nova.conf and restart nova-compute service
[libvirt]
cpu_mode = none

然后回去一看,果然自己用的是libvirt 2,然后决定去试一下
在计算节点中:

<think>好的,我现在需要处理用户关于OpenStack从硬盘启动的配置或故障排除的问题。首先,我需要回忆一下OpenStack的基本架构,特别是与实例启动相关的组件,比如Nova、Glance和Cinder。用户可能希望将实例直接从一个硬盘镜像启动,而不是传统的从镜像启动再挂载卷的方式。 首先,我应该考虑OpenStack中配置从硬盘启动的常见方法。通常,这涉及到修改实例的启动源,可能需要使用Cinder卷作为根磁盘。我记得在OpenStack中,可以通过指定block_device_mapping参数来引导实例从卷启动。需要确认用户使用的OpenStack版本,因为不同版本的配置可能有所不同。 接下来,用户可能需要具体的配置步骤。例如,使用命令行工具创建卷并从镜像中启动实例。步骤可能包括:创建卷、从Glance镜像复制到卷,然后使用该卷作为启动源。此外,需要确保Nova和Cinder的配置正确,比如允许从卷启动,以及相关的策略设置。 关于故障排除,常见的问题可能包括卷无法正确附加、启动时找不到引导设备、权限问题或配置错误。例如,检查nova.conf中的配置,确认scheduler_default_filters是否包含BlockDeviceFilter,以及是否启用了正确的驱动程序。另外,查看日志文件,如Nova和Cinder的日志,可以帮助定位问题。 还需要考虑用户是否遇到了特定的错误信息。例如,如果实例启动时进入救援模式,可能是因为根文件系统未被正确挂载或内核参数不正确。这时候可能需要检查实例的元数据或检查卷的引导记录是否完好。 此外,用户可能没有提到但需要注意的点包括:安全组设置是否正确、网络配置是否允许实例访问必要的服务(如Metadata服务),以及存储后端是否支持从卷启动。例如,某些存储驱动可能有不同的要求。 最后,根据用户提供的引用内容,虽然大部分是关于其他服务(如Kubernetes observability、容器注册表等),但需要确保在回答时不混淆这些信息,专注于OpenStack相关的配置和问题解决。可能需要参考官方文档或社区最佳实践来确保答案的准确性。</think>### OpenStack从硬盘启动配置与故障排查 #### 一、配置从硬盘启动 1. **使用Cinder卷作为启动源** OpenStack支持通过Cinder卷直接启动实例,需通过`block_device_mapping`参数指定卷配置: ```bash openstack server create --flavor <flavor-id> \ --block-device source=image,id=<glance-image-id>,dest=volume,size=<volume-size>,bootindex=0 \ --network <network-id> <instance-name> ``` 此命令会从Glance镜像创建卷,并将其作为实例的根磁盘[^1]。 2. **手动创建并挂载卷** - 创建空卷: ```bash openstack volume create --size <size> <volume-name> ``` - 将Glance镜像写入卷: ```bash openstack image save --file <image-file> <glance-image-id> openstack volume upload --image <glance-image-id> <volume-id> ``` - 启动实例时直接挂载该卷为根磁盘。 3. **验证Nova配置** 检查`/etc/nova/nova.conf`是否允许卷启动: ```ini [scheduler] enabled_filters = RetryFilter, AvailabilityZoneFilter, ComputeFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter, BlockDeviceFilter ``` #### 二、常见故障排查 1. **实例启动失败:卷无法附加** - 检查Cinder服务状态: ```bash systemctl status cinder-volume ``` - 查看卷状态是否为`available`或`in-use`: ```bash openstack volume show <volume-id> ``` - 日志分析:检查`/var/log/cinder/volume.log`中是否有权限或驱动错误[^1]。 2. **实例在启动界面(GRUB Rescue)** - **原因**:引导分区损坏或内核参数未正确传递。 - **修复步骤**: 1. 挂载卷到临时实例: ```bash openstack volume set --state available <volume-id> openstack server add volume <temp-instance> <volume-id> ``` 2 修复引导: ```bash mount /dev/vdb1 /mnt chroot /mnt grub-install /dev/vdb update-grub ``` 3. **卷启动后网络配置丢失** - 检查镜像是否包含Cloud-Init,并验证`/etc/cloud/cloud.cfg`中是否启用网络配置: ```yaml network: config: enabled ``` - 手动注入元数据: ```bash openstack server meta set <instance> --property admin_pass=<password> ``` #### 三、高级配置:直接使用物理硬盘 在**裸机部署(Ironic)**场景中,可通过以下方式直接写入硬盘: 1. 使用`dd`命令将镜像写入物理设备: ```bash dd if=<image-file> of=/dev/sdX bs=4M status=progress ``` 2. 在Ironic节点配置中指定启动设备: ```json { "capabilities": "boot_device:hd" } ``` #### 四、性能优化建议 - 启用Cinder卷缓存:在`cinder.conf`中配置: ```ini [backend] volume_dd_blocksize = 1M ``` - 使用SSD后端存储提升IOPS。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值