使用libvirtAPI打快照原理
参考:
https://blog.51cto.com/3646344/2096347
https://blog.51cto.com/3646344/2096351(磁盘外部快照)
API接口:
http://www.cnblogs.com/sammyliu/p/4558638.html
qemu-guest-agent冻结文件系统保证数据的一致性:
https://blog.csdn.net/zouyee/article/details/49103077
公司项目虚拟机打快照流程:
关机状态下打快照:
在给虚拟机打快照的时候,如果是给关闭状态下的虚拟机打快照,如果是从磁盘启动的虚拟机快照就调用qemu命令打快照,如果是从云硬盘启动的快照,需要创建云硬盘快照,用ceph打快照。最后如果虚拟机挂载有云硬盘,则尝试对所有的云硬盘创建快照,如果有一块创建失败则整个任务失败。
开机状态下打快照:
在给虚拟机打快照的时候,如果是给开机状态下的虚拟机打快照,如果是从磁盘启动的快照就直接打快照,先判断该虚拟机有没有内存,如果有内存我们需要用qemu-ga对虚拟机文件系统进行短暂的冻结,agent冻结文件系统时会进行flush操作,保证了数据的一致性,然后再用libvirt命令打快照,如果没有内存就用qemu打快照。如果是从云硬盘启动的快照,需要创建云硬盘快照。最后如果虚拟机挂载有云硬盘,则尝试对所有的云硬盘创建快照,如果有一块创建失败则整个任务失败。
对从磁盘启动的虚拟机用qemu(冷快照,内部快照)和libvirt(热快照,外部快照)工具打快照,从云硬盘启动的虚拟机用ceph打快照
qemu-kvm1.5.3版本不支持在虚拟机开机的情况下创建外部快照,只有在虚拟机关闭的情况下创建外部快照,创建快照的时间在1s以内,并且创建出来的快照文件大小递增且在10M以上
qemu2.5版本中支持在虚拟机开机的情况下创建外部快照,在创建第一个外部快照时用时在10~20S,往后创建外部快照时均为1s以内;并且创建的快照大小为第一个快照较大,往后的快照大小均不足1M。
回滚虚拟机流程:
使用libvirtAPI打快照原理的更多相关文章
- qcow2快照原理
关键术语:cluster 一个Qcow2 img文件由固定大小的单元组成,该单元称为cluster,默认大小为65536bytes/64Ksector 数据块读写的最小单元,大小为512字节host ...
- 基于LVM(逻辑卷管理)的快照原理
一.为甚么不管多大的逻辑卷进行备份,快照都会在几秒之内完成? 快照在拍摄的一瞬间,系统会记录那个时间点逻辑卷的状态.数据等,此时拍下的快照相当于一张白纸.如图所示 快照做好后,随着时间的推移,源卷里的 ...
- mysql备份时的快照原理
实际上实验的结果表明,这里的 the first such read指的是:对同一个表或者不同表进行的第一次select语句建立了该事务中一致性读的snapshot. 其它update, delete ...
- Redis快照原理详解
本文对Redis快照的实现过程进行介绍,了解Redis快照实现过程对Redis管理很有帮助. Redis默认会将快照文件存储在Redis当前进程的工作目录中的dump.rdb文件中,可以通过配置dir ...
- lvm之创建/扩容/缩容/快照及关闭的全部流程操作记录
基本介绍Linux用户安装Linux 操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间.随着 Linux的逻辑盘卷管理功能的出现,这些问题都迎刃而解, l ...
- hadoop之快照
在hadoop第前几个版本中是没有快照功能的,2.x中是有这个特性的 Hadoop 2.x HDFS新特性 HDFS快照 HDFS快照 在2.x终于实现了快照 设置一个目录为可快照 ...
- sqlserver 关于快照
数据库快照:是数据库某一时间点的视图,快照涉及最初目的是为了报表服务,快照还可以和镜像结合来达到读写分离的目的 数据库快照:是sqlserver数据库的只读静态视图快照的作用:1 提供了一个静态的视图 ...
- Redis的两种持久化方式-快照持久化和AOF持久化
Redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)的里边,数据保存到硬盘的过程就称为"持久化"效 ...
- LVM常规操作记录梳理(扩容/缩容/快照等)
基本介绍Linux用户安装Linux 操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间.随着 Linux的逻辑盘卷管理功能的出现,这些问题都迎刃而解, l ...
随机推荐
- Beta 冲刺 (2/7)
Beta 冲刺 (2/7) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务 文字/口头描述 为utils_wxpy.py添加注释 ...
- 唤醒实验(java
package sy;import java.util.Random; public class random { public static void main(String[] args) { / ...
- 剑指Offer 15. 反转链表 (链表)
题目描述 输入一个链表,反转链表后,输出新链表的表头. 题目地址 https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca? ...
- 1458 Common Subsequence
最简单的LIS; 设字符串为 a = acc b = cc 则dp数组为 0 0 1 1 1 2 b[0] = a[1], b[1] = a[1] 防止这里算两个 要清楚的是 怎么不重复计算 也就是 ...
- lettuce行为驱动总结
1. pip install lettuce 在Python2.7下安装的 2. py -3 –m pip install lettuce 在Python3下安装的 3. 执行:进到featur ...
- jQuery-1.样式篇---选择器
jQuery选择器之id选择器 页面的任何操作都需要节点的支撑,开发者如何快速高效的找到指定的节点也是前端开发中的一个重点.jQuery提供了一系列的选择器帮助开发者达到这一目的,让开发者可以更少的处 ...
- 重启HA集群NameNode无缘无故挂掉
重启HA集群后,两个NameNode无缘无故挂掉,查看日志时显示错误如下: 原因:journalnode的端口是8485,默认情况下是先NameNode启动后再启动journalnode,如果在Nam ...
- 条件分支语句(SWICH语句)
语法 swich(条件表达式){ Case 表达式: 语句……. Break; Case 表达式: 语句……. Break; Case 表达式: 语句……. Break; default: 语句……. ...
- mysql数据库-定义函数-存储过程写法
------------- mysql 定义自定义函数写法 DELIMITER $$ USE `iwmsdb`$$ DROP FUNCTION IF EXISTS `F_WM_DBNAME`$$ C ...
- 百度前端代码规范:CSS
1.代码风格 1.1 文件 [建议] CSS 文件使用无 BOM 的 UTF-8 编码. 1.2 缩进 [强制] 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符. 1.3 ...