AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 570414
Accepted
Weezy
Weezy
Asked: 2020-03-01 08:50:02 +0800 CST2020-03-01 08:50:02 +0800 CST 2020-03-01 08:50:02 +0800 CST

了解 libvirt 快照的存储方式

  • 772

起初我以为它会被存储,/var/lib/libvirt/images/但是当我为域创建快照时centos7,这个目录中没有任何变化:

drwx--x--x 2 root         root       4096 Feb 29 21:28 .
drwxr-xr-x 7 root         root       4096 Feb 28 23:47 ..
-rw------- 1 libvirt-qemu kvm  5370216574 Feb 29 22:09 centos7-1.qcow2
-rw------- 2 libvirt-qemu kvm  5931597824 Feb 29 22:12 centos7.qcow2
-rw------- 1 root         root 1499267135 Feb 28 21:07 centos7-server.qcow2

接下来我检查了/var/lib/libvirt/qemu/snapshot/centos7哪些显示了这些 xml 文件:

client2.xml client.xml disks.xml

这是我给我的快照起的名字。

有人可以告诉我为什么快照是 xml 文件而不是磁盘映像吗?这些 xml 文件存储的是什么,我猜他们需要我images目录中的原始 qcow2 图像才能工作,并且不能与任何图像一起工作 - 对吗?

virtual-machine libvirt
  • 1 1 个回答
  • 6333 Views

1 个回答

  • Voted
  1. Best Answer
    Jorge Núñez
    2020-04-23T14:52:52+08:002020-04-23T14:52:52+08:00

    xml 文件代表快照元数据,如果您打开它,您会看到类似这样的内容(为简洁起见,域定义被缩短):

    你的快照.xml

    <!--
    WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
    OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
      virsh snapshot-edit
    or other application using the libvirt API.
    -->
    
    <domainsnapshot>
      <name>your-snapshot</name>
      <state>shutoff</state>
      <creationTime>1567455358</creationTime>
      <memory snapshot='no'/>
      <disks>
        <disk name='hda' snapshot='internal'/>
      </disks>
      <domain type='kvm'>
        <name>centos76-client</name>
        [...]
      </domain>
      <active>1</active>
    </domainsnapshot>
    

    该文件记录了快照的名称、域创建时的状态、创建时间、内存是否也是快照、磁盘以及当时的域定义。

    此域定义相当于您将获得的相同信息virsh dumpxml your-domain。这是快照时您的设备、CPU、内存等的配置。例如,如果在快照之后您更改了某些设备、内存大小等,这允许您返回到拍摄快照时的确切设置。

    现在在该disks部分中,您可以看到实际快照的磁盘设备。您希望创建一个磁盘映像,但对于qcow2文件,它的工作方式略有不同。

    qcow2实现写时复制图像。在像这样的其他写时复制文件系统上,btrfs这意味着文件不会在原地更改,而是在修改时将它们的副本与更改一起存储在磁盘上的其他位置。

    对于qcow2快照,图像始终在原地修改,但如果已创建快照,则在该qcow2文件中,每当在快照之后修改文件时,将保存应用修改之前的副本以用于快照。这意味着图像和快照都在qcow2文件中。qcow2(可以在此处找到有关文件格式和快照如何工作的更深入的说明。

    qemu-img您可以使用该命令列出这些磁盘快照并与之交互(列出、恢复、创建、删除) 。例如,您可以像这样列出快照:

    # qemu-img snapshot -l /var/lib/libvirt/qemu/centos7-server.qcow2
    Snapshot list:
    ID        TAG                 VM SIZE                DATE       VM CLOCK
    1         your-snapshot             0 2019-09-02 22:15:58   00:00:00.000
    

    这里的 TAG 应该与您的快照 XML 文件的名称和nameXML 本身内部的条目相匹配,这就是知道它应该恢复到图像libvirt中的哪个快照的方式。qcow2

    • 8

相关问题

  • 尝试编译 libvirt 时出现错误“getopt.h:85:29:致命错误:getopt-pfx-core.h:没有这样的文件或目录”[关闭]

  • Debian 9:如何在 QEMU-Host 和 QEMU-Guest (Windows) 之间设置 Samba-Exchange?

  • 如何手动触发来宾上的 virtio 气球驱动程序?

  • 如何在运行时从命令行更改 KVM VNC 端口?

  • LXC 容器内部从零开始的 Linux

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve