virsh list --all

查看虚拟机列表

virsh list

virsh domblklist centos6.5

qemu-img snapshot -l /var/lib/libvirt/images/centos6.5.qcow2

备份:

virsh qemu-monitor-command DOMAIN --pretty '{ "execute": "transaction", "arguments": { "actions": [ { "type": "block-dirty-bitmap-add", "data": {"node":"drive-virtio-disk0", "name":"bitmap0"}}, { "type": "drive-backup", "data": {"device": "drive-virtio-disk0", "target": "/opt/backup/top.img","sync":"top" }} ]} }'

# ...运行一段时间... virsh qemu-monitor-command DOMAIN --pretty '{ "execute" : "drive-backup" , "arguments" : { "device" : "drive-virtio-disk0" , "sync" : "incremental" , "bitmap" : "bitmap0" , "target" : "/opt/backup/inc.0.qcow2" } }'

# ...又运行一段时间... virsh qemu-monitor-command DOMAIN --pretty '{ "execute" : "drive-backup" , "arguments" : { "device" : "drive-virtio-disk0" , "sync" : "incremental" , "bitmap" : "bitmap0" , "target" : "/opt/backup/inc.1.qcow2" } }'

如果之前已经创建过bitmap,此刻想忽略bitmap,重新做一次完整备份,并重置bitmap(用于接下来的增量备份),则可以

{ "execute": "transaction", "arguments": { "actions": [ {"type": "block-dirty-bitmap-clear", "data": {"node": "drive-virtio-disk0", "name": "bitmap0"} }, {"type": "drive-backup", "data": {"device": "drive-virtio-disk0", "target": "/path/to/new_full_backup.img", "sync": "top"} } ] } }

# 查询虚拟机的所有磁盘的bitmap

virsh qemu-monitor-command DOMAIN --pretty '{ "execute": "query-block" }'

查看备份任务

# 通过qmp查看

virsh qemu-monitor-command DOMAIN --pretty '{ "execute": "query-block-jobs" }'

全量:

virsh qemu-monitor-command DOMAIN '{ "execute" : "drive-backup" , "arguments" : { "device" : "drive-virtio-disk0" , "sync" : "top" , "target" : "/opt/backup/top.img" } }'

解决qemu-img commit   的差异

1.xp xp_snap1 xp_snap2 xp_snap3 xp_new

镜像xp_new与xp的关系如上,左依次为右的backing file

如要删除xp_snap2时,(即关系变为xp xp_snap1 xp_snap3 xp_new)

先用qemu-img commit xp_snap2 命令将xp_snap2的内容commit到xp_snap1

再将xp_snap3的backing file指向xp_snap1

qemu-img rebase -f qcow2 -b xp_snap1 -F qcow2 xp_snap3 (将会比较xp_snap1与xp_snap2是否一致)

qemu-img commit xp_snap3

永久bitmap

virsh qemu-monitor-command DOMAIN --pretty '{ "execute": "transaction", "arguments": { "actions": [ { "type": "block-dirty-bitmap-add", "data": {"node":"drive-virtio-disk0", "name":"bitmap0","persistent": true}}, { "type": "drive-backup", "data": {"device": "drive-virtio-disk0", "target": "/opt/backup/top.img","sync":"top" }} ]} }'

删除bitmaps

virsh qemu-monitor-command DOMAIN --pretty '{ "execute": "block-dirty-bitmap-remove","arguments":{"node":"drive-virtio-disk0","name":"bitmap0"} }'

清空bitmaps

virsh qemu-monitor-command DOMAIN --pretty '{ "execute": "block-dirty-bitmap-clear","arguments":{"node":"drive-virtio-disk0","name":"bitmap0"} }'

增加bitmaps

virsh qemu-monitor-command DOMAIN --pretty '{ "execute": "block-dirty-bitmap-add","arguments":{"node":"drive-virtio-disk0","name":"bitmap0"} }'

永久增加bitmaps

virsh qemu-monitor-command DOMAIN --pretty '{ "execute": "block-dirty-bitmap-add","arguments":{"node":"drive-virtio-disk0","name":"bitmap0","":true} }'

问题:

https://www.mail-archive.com/qemu-devel@nongnu.org/msg592973.html

1

{"id":"libvirt-42","error":{"class":"GenericError","desc":"Can't make
bitmap 'bitmap0' persistent in 'drive-virtio-disk1': Bitmap with the
same name is already stored"}}
In other word, when qemu crash, the qcow2 image remain the incomplete
persistent bitmap.
persistent bitmap will be inconsistent when qemu  crash,
crash will genrerate this question。问题2:Cannot store dirty bitmaps in qcow2 v2 files参考:
https://www.lizi.tw/soft/16760.html      QEMU/KVM磁盘的在线完整及增量备份

mount -t nfs 192.168.10.161:/mnt/vg /home/kvm -o rw

 一键接管

virsh domblklist demo

virsh dumpxml demo > demo.xml

qemu-img rebase -u

qemu-img commit inc2.qcow2

 qemu-img rebase -u -b base.img commit.img

qemu-img commit  commit.img

外置快照的删除(qemu-img commit/rebase)

1.方法

我们需要删除快照sn2 当前: [centosbase] <– centos2 <– centos2_sn1 <– centos2_sn2 <– centos2_sn3 <– centos2_sn4(当前使用磁盘) 目标: [centosbase] <– centos2 <– centos2_sn1 <—————— centos2_sn3 <– centos2_sn4(当前使用磁盘) 现在删除第二个快照(sn2).有两种方式: (1): 复制sn2数据到后端sn1,将会commit所有sn2中的数据到sn2的backing file(sn1),和virsh blockcommit类似 (2): 复制sn2数据到前段sn3,将会commit所有sn2中的数据到sn2的overlays,和virsh blockpull类似 注意: 必须保证sn1没有被其他快照作为后端(即centos2_sn1只被当前链使用)

2.(1): 复制sn2数据到后端sn1

qemu-img commit centos2_sn2.qcow2
qemu-img rebase -u -b centos2_sn1.qcow2 centos2_sn3.qcow2     #让sn3指向sn1

#现在sn1中包含了之前的sn1/sn2中的数据,所以此时不再需要sn2中的数据,直接让sn3指向sn1即可,可以直接删除sn2 注意: -u代表’Unsafe mode’ – 此模式下仅仅修改了指向到的backing file名字(不复制数据)

修改网卡

修改img  路径

virsh define  /mnt/102.xml

virsh start name_102

qemu-img -V

查看

qemu-img version 4.1.0

qemu >=2.10  才能  永久bitmaps

qemu >= 2.10

(免费订阅,永久学习)学习地址: Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化/高性能专家-学习视频教程-腾讯课堂

更多DPDK相关学习资料有需要的可以自行报名学习,免费订阅,永久学习,或点击这里加qun免费
领取,关注我持续更新哦! !

原文链接:https://www.cnblogs.com/rebrobot/p/15533530.html
参考:https://opengers.github.io/virtualization/kvm-libvirt-qemu-5/
https://qemu-project.gitlab.io/qemu/interop/dbus-vmstate.html
https://qemu-project.gitlab.io/qemu/system/index.html

virsh 保护命令 virtual protect rebase相关推荐

  1. git rebase 命令 常用_git命令之 git rebase 常用

    git rebase 命令的功能很强大, 在<git 权威指南>一书里,改变提交(commit)的顺序,书中教了一种很复杂的方法,运用了git reset ... git cherry-p ...

  2. virsh 关机_kvm虚拟机不能使用virsh shutdownw命令关闭虚拟机的解决方法

    今天笔者在对kvm虚拟机进行管理时,使用virsh shutdown命令关闭指定的虚拟机时,发现虽然有如下的提示,但其实虚拟机却一直不会真正的关闭. 经过查看virsh命令帮助和上网查询,才得知vir ...

  3. linux 桌面显示 kvm,Linux的桌面虚拟化技术KVM(五)——virsh常用命令

    (1).virsh常用命令 virsh list 查看已打开虚拟机列表 virsh list --all 查看所有虚拟机列表 virsh version 查看 virsh 版本号 virsh star ...

  4. libvirt virsh domain命令解析(一)

    virsh是libvirt提供的命令行工具, 了解virsh命令的功能,可以快速了解libvirt的主要功能及功能特性 这里首先介绍domain domain 域, 可以看做是一个虚拟机实例 通过 v ...

  5. git命令之git rebase 的用法

     rebase 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支. $ git checkout -b mywork origin ...

  6. virsh 关机_KVM virsh常用命令篇

    1.查看运行的虚拟机 virsh list 2.查看所有的虚拟机(关闭和运行的虚拟机) virsh list --all 3.连接虚拟机 virsh console +域名(虚拟机的名称) 4.退出虚 ...

  7. linux 关闭虚拟化,虚拟化之KVM virsh常用命令篇

    1,查看运行的虚拟机 virsh list 2,查看所有的虚拟机(关闭和运行的虚拟机) virsh list --all 3,连接虚拟机 virsh console +域名(虚拟机的名称) 4,退出虚 ...

  8. KVM虚拟化下使用virsh shutdown命令无法关闭windows

    一般我们认为,windows系统下的acpi是默认开启的,但是本次我测试win2003虚拟机,发现默认情况下通过"virsh shutdown 虚拟机名称"无法正常关闭虚拟机 解决 ...

  9. virsh的详细命令解析

    virsh的详细命令解析 virsh 有命令模式和交互模式如果直接在vrish后面添加参数是命令模式,如果直接写virsh,就会进入交互模式 virsh list 列出所有的虚拟机,虚拟机的状态有(8 ...

最新文章

  1. Nautilus-Open-Terminal : 可随处打开终端的 Nautilus 插件
  2. vb.net2019-打开外部程序发送键盘信号(4)
  3. java象棋人机代码_中国象棋人机对弈Java版源码
  4. jQuery-DOM操作之children()、next()、prev()、siblings()
  5. JSP/Servlet中的汉字编码问题
  6. VHDL其他顺序语句
  7. SAP License:SAP系统的优点和功能
  8. 用jQuery实现.net 2.0 treeview客户端无刷新操作的实例
  9. 【181012】VC++ 中国象棋人机对弈程序源代码
  10. 什么是搜索引擎优化及其重要性
  11. 如何实现类似淘宝商城的七天自动确认收货???
  12. highcharts特殊定制:x轴文字竖直显示(兼容各浏览器)
  13. 百度地图SDK导航(路径规划+实时导航)
  14. Android WebRtc 桌面投屏、视频源码
  15. Linux下使用aMsn详解(转)
  16. 记2013移动开发者大会之行
  17. 「SQL数据分析系列」4.过滤操作
  18. 稀疏矩阵 c语言,C语言数据结构 稀疏矩阵
  19. k30pro杀进程严重怎么解决_狗狗总是不吃饭,严重挑食怎么办?学会这三招,快速解决不吃饭...
  20. 选择 Delphi 2007 ( CodeGear Delphi 2007 for Win32 Version 11.0.2837.9583 ) 的理由

热门文章

  1. C语言中字符数组的初始化与赋值,字符串相关函数
  2. 炼丹心得|追求极致的比赛冠军什么样?
  3. [linux] SFTP文件传输基本命令
  4. 【Linux】syscall系统调用原理及实现
  5. Qt的基本控件——显示控件
  6. java抽象类中的变量修饰符_菜鸟整理的三个权限修饰符与接口、抽象类的总结...
  7. js计算两个时间戳之间的时间差(多少天、时、分、秒)
  8. 图片格式导致的报错:Attribute Error: ‘NoneType‘ object has no attribute ‘astype‘ 解决方案
  9. 计算机cfd教学,CFD数值模拟过程
  10. MySQL数据库基本管理