openstack中有很多虚机在物理机重启或服务重启,资源不足,被人误删等原因导致在计算节点运行好好的虚机变成了

ERROR状态或者shutoff 更可悲的是无法重启,那样如果机器中跑着业务,损失就大了。

现基于卷虚机跟大家分享一个解决方案 

1. 为了测试对比,现在已有的卷虚机上写东西,证明数据完整性

 

可以看到,写了个111.txt的文件,内容为12345 

从kvm上将虚机文件删掉,

 

 

可以看到这台虚机000379 被我手动删除,也就是多数环境中 虚机丢失的现象

 

而此时,虚机也变为shutoff的状态

尝试手动重启,请求被接受但是没有反应,虚机依旧是shutoff状态。

查看compute日志,报错为

OSError: [Errno 2] No such file or directory: ‘/var/lib/nova/instances/2c0e4c9c-257e-48c1-9b61-13d9ca4bb441/disk.config’ 

 

到此,虚机丢失,业务中断 

 

恢复方法 

由于是卷虚机,先从open stack 中查看此虚机所用的卷

# cinder list –all |grep $vm_id 

# cinder show $volume_id 

找到如图用的image id 

最后一步进行虚机重建,此种重建相当于将云硬盘重新挂给一个虚机 因为存储都用的是cinder 所以重建nova虚机不会影响数据 

# nova rebuild –image $image_id $vm_id

 

 

 

 至此,虚机又变回了active 验证业务和数据完整性

 

 

虚机完美恢复,并且数据未丢失。注意:此种方案只能用于卷虚机,也就是虚机存储不在本地才可以如此恢复。 

版权声明:本文为jimmyyang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jimmyyang/p/11364325.html