openstack宿主机故障,虚拟实例恢复
前言:  因为机房服务器运行不稳定的原因导致计算节点挂掉,然后上面的Centos7虚拟机在迁移之后开机报错。这个解决方法同样适用于其它操作系统的虚拟机。基于镜像创建的虚拟机实例。
I/O error, can't read device /dev/vda 的报错信息
首先做疏散先把虚拟实例从宿主机上面疏散到其它主机,关闭云主机。
1.找到虚拟机的ID可以通过dashboard界面或者使用openstack server list命令,找到虚拟机的ID;然后查看虚拟机的详细信息。
比如:

nova show 8fa3d2eb-2401-48a9-850a-f800314c6950
# 与这个命令相同功能的命令还有
openstack server show ID

连接到所在的计算节点,实例名称确定是哪台主机。
注意要主机是开机状态才能看到

通过ID可以确定该虚拟机实例的数据目录,如果openstack没有对接存储的话那么在这个目录下就会存在数据文件,因为对接了ceph所以信息在libvirt.xml的文件里面。

cat /var/lib/nova/instances/8fa3d2eb-2401-48a9-850a-f800314c6950/libvirt.xml 里面就是它的vda的ID。

2.当找到这个磁盘的ID之后,在ceph集群里面去查看这个设备
rbd ls volumes | grep 8fa3d2eb-2401-48a9-850a-f800314c6950

3.取消它原来有的一些属性
# 查看卷
rbd info volumes/0859147d-27aa-49a5-8373-7c515c4f3a02_disk
#取消它原来有的一些属性;根据ceph的提示操作,因为有的属性linux不支持。
rbd feature disable exclusive-lock object-map fast-diff  deep-flatten --image 8fa3d2eb-2401-48a9-850a-f800314c6950_disk -p volumes
4.把它映射到本地
rbd map 8fa3d2eb-2401-48a9-850a-f800314c6950_disk -p volumes
# 如果映射不了执行下这个命令。
rbd flatten volumes/8fa3d2eb-2401-48a9-850a-f800314c6950_disk
5.使用命令修复
# 有的可能修复不了就只能做好丢失数据的准备了
xfs_repair -L /dev/rbd0p1
可以ls /dev/rbd* 查看一下,rbd0p1表示的事一个启动分区。
6.取消映射
rbd unmap 8fa3d2eb-2401-48a9-850a-f800314c6950_disk -p volumes
这个时候再重新启动就正常了。
感谢网上上传资料分享的博客,我搜集并处理了故障,终结了出来,希望更多的人看到早日跳出坑!
openstack宿主机故障,虚拟实例恢复的更多相关文章
- VMware14 安装CentOS7 实现宿主机ping通虚拟机、虚拟机ping通宿主机、虚拟机能上网且能ping通百度
		
本文旨在通过通过虚拟机VMware14来安装CentOS7 系统,并配置固定IP来实现在Windows系统中使用Linux环境. 本文目录: 0.本机环境 1.VMware14 初始化 1.1.安装V ...
 - Openstack虚机实例状态错误手工恢复vm_state:error
		
Openstack虚机实例状态错误手工恢复vm_state:error 1.找到状态为出错状态的VM.在数据库里面表现Status为ERROR而非ACTIVE. 2.找到出错状态VM的UUID. 3. ...
 - (为容器分配独立IP方法二)通过虚拟IP实现docker宿主机增加对外IP接口
		
虚拟IP.何为虚拟IP,就是一个未分配给真实主机的IP,也就是说对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的任意一个都可以连接到这台主机,所有项目中数据库链接一项配 ...
 - 通过桥接虚拟网卡使VMWare和宿主机实现双向通讯
		
0.为什么选择虚拟网卡和桥接模式 首先虚拟机网络设置为NAT,虚拟机实现上网是很方便的,但是宿主机访问虚拟机就比较麻烦了(需要单独配置端口转发),桥接就能很好的解决这个问题,桥接模式会把虚拟机当做宿主 ...
 - quartz2.3.0(十三)数据库持久化定时器job任务和trigger触发器,在多个调度器实例情况下,由其它调度器实例恢复执行调度器宕机的job任务
		
一.初始化数据库11张quartz表:qrtz_* 先从官网下载好quartz2.3.0包:http://www.quartz-scheduler.org/downloads/ 解压后进入目录:q ...
 - Centos7系统kvm虚机忘记密码进不去, 通过宿主机修改/etc/shadow文件改密码,重启后系统起不来故障排错
		
问题描述 某天, 因为其他项目组交接问题, kvm里面的堡垒机系统用户root密码登录不上,然后他通过宿主机修改/etc/shadow文件修改密码,但是修改完后重启系统后发现kvm宿主机连接不上虚机了 ...
 - 在虚拟机上利用宿主机共享目录编译linux程序
		
#前提条件: 宿主机:windows7 虚拟机:REDHAT 开发环境 qt4.7.4 +vs2010 . 代码在windows7 上编译成功 ,运行正常 在linux下编译需要的第三方库已经编译成功 ...
 - 【docker】centOS7上部署的mysql和spring boot服务,要求,mysql的时间、java程序服务的时间和宿主机的时间完全保持一致【修改mysql时区,临时和永久】【修改spring boot配置文件时区】【修改docker启动spring boot实例程序时区】
		
要求:centOS7上部署的mysql和spring boot服务,要求,mysql的时间.java程序服务的时间和宿主机的时间完全保持一致: ============================ ...
 - nova 宿主机重启自动恢复虚拟机运行状态
		
1. 宿主机重启自动恢复虚拟机运行状态 1.1 参数描述与默认值 # Whether to start guests that were running before the host reboote ...
 
随机推荐
- 解决跨域问题chrome浏览器插件
			
https://www.crx4chrome.com/crx/53489/ 解决chrome浏览器跨域的问题
 - 后续来啦:Winform/WPF中快速搭建日志面板
			
后续来啦:Winform/WPF中快速搭建日志面板 继昨天发文ASP.NET Core 可视化日志组件使用(阅读文章,查看视频)后,视频下有朋友留言 "Winform客户端的程序能用它不?& ...
 - JWT 介绍 - Step by Step
			
翻译自 Mohamad Lawand 2021年3月11日的文章 <Intro to JWT - Step by Step> [1] 在本文中,我将向您介绍 JWT[2]. 我们今天要讲的 ...
 - Centos6无法使用yum解决办法
			
12月后Centos 6 系统无法使用yum出现错误(文章底部看) 相信已经有一部分朋友今天连接到CentOS 6的服务器后执行yum后发现报错,那么发生了什么? CentOS 6已经随着2020年1 ...
 - Mysql之Mycat读写分离及分库分表
			
## 什么是mycat ```basic 1.一个彻底开源的,面向企业应用开发的大数据库集群 2.支持事务.ACID.可以替代MySQL的加强版数据库 3.一个可以视为MySQL集群的企业级数据库,用 ...
 - 群晖 创建nfs 共享文件夹 k8s 使用
			
1) 打开控制面板 2) 打开共享文件夹 3) 新增共享文件夹 4) 基本信息配置 2) 3) 4) 5) 点完确定,应该会退出,继续选中刚才创建的,点编辑 2) 3) 5)返回主页面,点击file ...
 - xPath,beautifulsoup和pyquery
			
一.XPath from lxml import etree html = etree.parse('html源代码',etree.HTMLPaser()) 1.节点的获取 a.html.xpath( ...
 - 解决mysql You can't specify target table for update in FROM clause错误
			
mysql中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表( ...
 - thinkphp5的extend怎么用?
			
http://www.newthink.cc/2017/09/13/thinkphp5%E7%9A%84extend%E6%80%8E%E4%B9%88%E7%94%A8%EF%BC%9F/#i-2
 - hdu4267线段树段更新,点查找,55棵线段树.
			
题意: 给你N个数,q组操作,操作有两种,查询和改变,查询就是查询当前的这个数上有多少,更改是给你a b k c,每次从a到b,每隔k的数更改一次,之间的数不更改,就相当于跳着更新. 思路: ...