OpenStack Nova evacuate命令--on-shared-storage参数不识别问题求助
问题场景
执行的原始命令:
nova evacuate --on-shared-storage <<Instance_UUID>> <<host_name>>
系统返回报错信息:error: unrecognized arguments: --on-shared-storage Try 'nova help ' for more information.
核心原因
--on-shared-storage是Queens版本之前Nova使用的旧CLI参数。早期Nova没有自动识别跨计算节点共享存储挂载关系的能力,需要用户手动传参告知系统“待迁移实例的磁盘存放在共享存储上,不需要迁移本地卷数据”;从Queens版本开始,Nova重构了evacuate流程的存储检测逻辑,会自动识别共享存储路径完成流程判定,因此直接从CLI参数集中移除了该手动传参选项,传入该参数就会触发“无法识别参数”的报错。
实操解决步骤
- Queens及以上版本的Nova环境:直接移除命令中的
--on-shared-storage参数即可,正确执行命令为:nova evacuate <Instance_UUID> <目标计算节点主机名>
系统会自动通过内置的共享存储识别逻辑匹配evacuate流程,无需手动指定存储类型。 - 移除参数后若出现“未识别到共享存储、尝试迁移本地盘导致失败”的问题,需排查配置层面的识别逻辑:
- 检查所有计算节点
nova.conf中[libvirt]配置段的shared_storage_paths参数,确保实例所在的共享存储挂载路径已被纳入配置范围 - 确认Nova服务运行账号、CLI操作账号对所有计算节点上的共享存储路径具备读写权限
- 检查所有计算节点
- 旧版Nova环境(Mitaka/Newton/Ocata版本)若出现参数识别失败,优先排查nova client版本与服务端的匹配性,将nova client升级到对应服务端的大版本即可兼容参数识别逻辑。
内容的提问来源于stack exchange,提问作者nallapayan 420
相关产品推荐
相关产品推荐

