查看原文
其他

OpenStack虚拟机恢复方案

杨武 新钛云服 2022-07-03

场景:原有OpenStack环境的平台层面的数据库云主机数据被意外删掉,但是ceph上的虚拟机磁盘文件还存在,此时虚拟机上的业务还是可以正常运行,只是在OpenStack 界面无法查看到虚拟机信息。想要恢复原来的所有云主机信息,要求机器信息和原平台保持完全一样,即界面看到的镜像、配置和IP不能改变。

思路:只要ceph存储还在,业务数据就没丢失,只需要重新创建虚拟机,然后把OpenStack平台上的主机UUID和Ceph的volume  uuid重新对应起来即可。


有3种方法:


1)从Ceph上导出虚拟机磁盘文件,然后导入该磁盘文件到OpenStack平台做为镜像,以该镜像重新创建虚拟机。该种方案是不经过大脑思考的方案,一是导出和导入镜像效率极低,二是平台上会产生太多新镜像。


2)在原平台上恢复;(操作不当易产生脏数据)


3)重新部署个新平台,从头恢复。(所有数据都要重新生成)

方案2和方案3各有优劣,下面以方案3(新建OpenStack平台)为例,列举恢复的关键步骤。


单台云主机恢复步骤:


0. 重新部署一套OpenStack环境,导入和原平台相同的基础镜像;


1. 在新平台上创建和原环境同样配置的虚拟机(镜像和flavor一样);


2. 对新建的虚拟机绑定和原环境一样的浮动IP

nova floating-ip-associate4950b904-b0d9-49e4-b7d8-30c51e154bc4 172.17.16.93


3. 在Ceph上,根据新环境虚拟机的uuid查询虚拟机磁盘文件

rbd ls volumes | grep4950b904-b0d9-49e4-b7d8-30c51e154bc4


4. 重命名新环境虚拟机的磁盘文件

rbd mv volumes/4950b904-b0d9-49e4-b7d8-30c51e154bc4_diskvolumes/4950b904-b0d9-49e4-b7d8-30c51e154bc4_disk.bak


5. 在Ceph上,根据老环境虚拟机的uuid查询虚拟机磁盘文件

rbd ls volumes | grep4b37fec6-c32d-493c-ad60-fdd946ed31c8


6. 重命名老环境虚拟机的磁盘文件为新环境虚拟机的磁盘文件

rbd mv volumes/4b37fec6-c32d-493c-ad60-fdd946ed31c8_diskvolumes/4950b904-b0d9-49e4-b7d8-30c51e154bc4_disk


7.   在新平台上硬重启虚拟机,即可完全恢复原来的虚拟机。


8.   确认恢复正常后,在Ceph上删除掉所有老环境虚拟机对应的磁盘文件。(此步要特别慎重!!!)

 

如果要批量恢复所有记录被误删的云主机,只需要把上述步骤封装到一个脚本里,批量执行即可。



 


了解新钛云服

新钛云服与AWS联合举办的“混合云与云治理专家研讨会”圆满结束!

新钛云服正式获批工信部ISP/IDC(含互联网资源协作)牌照

深耕专业,矗立鳌头,新钛云服获千万Pre-A轮融资

原电讯盈科中国区副总裁加入新钛云服「附专访」

新钛云服,打造最专业的Cloud MSP+,做企业业务和云之间的桥梁

新钛云服一周年,完成两轮融资,服务五十多家客户

上海某仓储物流电子商务公司混合云解决方案


新钛云服出品的部分精品技术干货

万字长文:云架构设计原则|附PDF下载

如何将业务迁移到AWS上

AWS S3六项存储类别详解,从成本到访问频率

AWS EC2的价格模型

Ceph OSD故障排除|万字经验总结

七个用于Docker和Kubernetes防护的安全工具

维人的终身成长,从清单管理开始|万字长文!

什么是云原生?

IT混合云战略:是什么、为什么,如何构建?

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存