drbd虚拟机宕机恢复方法
问题现象
云南计算节点YN-ec-compute-19因系统盘损坏宕机且操作系统无法恢复,其上本地虚拟机无法疏散且无法迁移

拟采用drbd备份的数据对compute19上的虚拟机进行恢复
恢复方法
1、确认compute19的drbd主备节点,一般是相邻的节点compute18或compute20,确认方法如下
登录compute20 lsblk显示有/dev/drbd0和/dev/drbd1两个设备,其中/dev/drbd1已挂载到目录/one_images

查看/etc/drbd.d/drbd0.res或者/etc/drbd.d/drbd1.res可以确认compute20节点是否compute19节点的备份数据存放节点

通过以上可以判断出drbd数据备份的逻辑:
(1)compute19和compute20互为主备节点
(2)compute20的drbd1为primary,/dev/drbd1挂载至/one_image目录,凡是compute20写入/dev/drbd1中的数据都会同步至compute19节点的/dev/drbd0设备中去
(3)同理,compute19上的/dev/drbd1也是挂载至/one_image目录,凡是compute19写入/dev/drbd1中的书都会同步至compute20节点的/dev/drbd0设备中去
2、因compute19节点已经宕机且系统无法恢复,故设法将compute20节点中的/dev/drbd0设备中的虚拟机数据取出,再挑选资源足够的计算节点恢复该虚拟机。
3、将compute20节点的drbd0提为primary,然后挂载至/com19_recovery目录
修改/etc/drbd.d/drbd0.res,将YN-ec-compute-19修改为YN-ec-compute-20

drbdadm primary drbd0将drdb0提为primary后挂载至/com19_recovery目录,验证其中是否有compute19同步的虚拟机目录

为防止/dev/drbd0设备同步机制再次运行,建议可以将/com19_recovery/目录下的问题件拷贝至compute20上的其他设备中去,比如新建/com19_bak目录,cp -r /com19_recovery/* /com19_bak。本例中compute19节点已停止运行,故设备中不存在drbd同步机制再次运行的风险了,不做上述拷贝也可以。
4、挑选一台计算节点YN-ec-compute-20恢复compute19上的一台虚拟机6fcb4f2f-e001-4965-b93a-f2d9c751609c,本例中直接挑选了com19的备份节点com20作为恢复虚拟机的节点,也可以挑选其他资源更加充足的节点,无论挑选哪个计算节点,操作方法均相同。
5、在YN-ec-compute-20上执行文件拷贝,并确认目录和文件属主以及权限如下,如果不相符需要和正常运行的虚拟机目录文件权限属主作对照修改一致
cp -r /com19_bak/6fcb4f2f-e001-4965-b93a-f2d9c751609c /var/lib/nova/instances/

6、nova show确认openstack记录该虚拟机在已宕机计算节点compute19上;
执行nova evacuate [instance uuid] [目的计算节点] --on-shared-storage,其中目的计算节点即为步骤5中手动操作恢复虚拟机目录的节点,本例中为YN-ec-compute-20

虚拟机由rebuild状态转换为Active,并且计算节点更换为YN-ec-compute-19


vnc验证可以访问虚拟机

7、compute19上的其他虚拟机参照步骤4-6操作依次恢复。
drbd虚拟机宕机恢复方法的更多相关文章
- Vertica集群单节点宕机恢复方法
Vertica集群单节点宕机恢复方法 第一种方法: 直接通过admintools -> 5 Restart Vertica on Host 第二种方法: 若第一种方法无法恢复,则清空宕机节点的c ...
- mysql group replication 主节点宕机恢复
一.mysql group replication 生来就要面对两个问题: 一.主节点宕机如何恢复. 二.多数节点离线的情况下.余下节点如何继续承载业务. 在这里我们只讨论第一个问题.也就是说当主结点 ...
- 存在单点故障的namenode宕机恢复测试
前提:如果namenode没有做HA,那么至少应该启用secondarynamenode,以便namenode宕机之后手动恢复数据 实验环境:3个节点(cenos 6.10) 测试前数据: 1.为了确 ...
- HBase–RegionServer宕机恢复原理
Region Server宕机总述 HBase一个很大的特色是扩展性极其友好,可以通过简单地加机器实现集群规模的线性扩展,而且机器的配置并不需要太好,通过大量廉价机器代替价格昂贵的高性能机器.但也正因 ...
- CDH集群主节点宕机恢复
1 情况概述 公司的开发集群在周末莫名其妙的主节点Hadoop-1的启动固态盘挂了,由于CM.HDFS的NameNode.HBase的Master都安装在Hadoop-1,导致了整个集群都 ...
- JVM虚拟机宕机_java.lang.OutOfMemoryError: unable to create new native thread
原因:当前用户的系统最最大程序数数已达到最大值,使用ulimit -u可以看到是1024 解决办法:在当前用户下使用ulimit -u 65535 然后再执行jsp,一切ok 功能说明:控 ...
- MikroTik RouterOS虚拟机/实体机安装方法
一.设置光驱 二.安装RouerOS 按a全选,按i安装,q退出,空格可以选取或取消选取.这里是选择你要安装的组件. 是否要保存原有配置:是否要提交.一路y. 安装好之后按回车重启:之后为这个界面,安 ...
- C#判断网站是否能访问或者宕机的方法
最近有位朋友说他有很多网址,可能有些已经过期或者不能访问了.自己去一个一个点可以,但又很麻烦! 再过一段时间又要去检查一次,每次都这样就不方便了! 于是就做了个小程序给帮他检测一下. 以下做了一个例子 ...
- MySQL - 高可用性:少宕机即高可用?
我们之前了解了复制.扩展性,接下来就让我们来了解可用性.归根到底,高可用性就意味着 "更少的宕机时间". 老规矩,讨论一个名词,首先要给它下个定义,那么什么是可用性? 1 什么是可 ...
随机推荐
- Java高并发编程基础三大利器之CountDownLatch
引言 上一篇文章我们介绍了AQS的信号量Semaphore<Java高并发编程基础三大利器之Semaphore>,接下来应该轮到CountDownLatch了. 什么是CountDownL ...
- Hibernate在oracle中ID增长的方式(续)
引用链接:http://blog.csdn.net/w183705952/article/details/7367272 第二种:设置ID的增长策略是native,但是需要创建一个名字为hiberna ...
- JS获取时间日期常用方法
1 当前时间: new Date() 2 当前周: function getCurrentWeek() { var date = new Date() var beginDate = new Date ...
- C指针与二维数组
先贴上完整的代码: #include<stdio.h> int main(int argc, char *argv[]){ int a[3] [5]={1,2,3,4,5,6,7,8,9, ...
- 记一次scrapy-redis爬取小说网的分布式搭建过程
scrapy-redis简介 scrapy-redis是scrapy框架基于redis数据库的组件,用于scrapy项目的分布式开发和部署. 有如下特征: 分布式爬取 可以启动多个spider工程,相 ...
- .NetCore 导出Execl
/* Nuget - NPOI.2.5.1 */ using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using NPOI.XSSF.UserMode ...
- Linux 切换用户提示Permission denied
在使用 su - hdfs 切换到 hdfs 用户时提示 su: Permission denied,但是密码确认是没错的. 找到文件 /etc/pam.d/su,注释掉 auth required ...
- GCD and LCM HDU - 4497
题目链接:https://vjudge.net/problem/HDU-4497 题意:求有多少组(x,y,z)满足gcd(x,y,z)=a,lcm(x,y,z)=b. 思路:对于x,y,z都可以写成 ...
- 依赖反转原则DIP 与使用了Repository模式的asp.net core项目结构
DIP 依赖反转原则 Dependency Inversion Principle 的定义如下: 高级别的模块不应该依赖于低级别的模块, 他们都应该依赖于抽象. 假设Controller依赖于Repo ...
- html+css写出响应式侧边导航栏
html部分:先写用div画好六个导航的卡片,再利用css添加响应效果 <div class='card-holder'> <div class='card-wrapper'> ...