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
    • 最新
    • 标签
主页 / server / 问题 / 1169600
Accepted
Josh
Josh
Asked: 2024-12-30 00:10:52 +0800 CST2024-12-30 00:10:52 +0800 CST 2024-12-30 00:10:52 +0800 CST

回滚到以前的 proxmox 快照而不丢失当前的 zfs 快照?

  • 772

使用带有 ZFS 存储池的 proxmox,是否可以将 LXC 容器或 QEMU 虚拟机恢复到早期快照(而不是最新快照)而不会丢失或破坏任何快照?

尝试使用 Proxmox GUI 执行此操作会显示一条错误消息:

无法回滚,“snapshotname”不是“storage:vmname”上的最新快照

换个角度问,是否有可能出现非线性快照?例如,快照树看起来像这样,其中有一个带有分支的真正“树”,并且一些快照有多个子节点?

屏幕截图显示根级别“创建”快照有两个子快照:“initial”和“wip-working-qemu”,并且它们都有独立的快照树。

互联网上的多个来源似乎表明不是这样(示例 1或示例 2),但我知道这是不正确的,因为我已经这样做了 :)

zfs
  • 1 1 个回答
  • 24 Views

1 个回答

  • Voted
  1. Best Answer
    Josh
    2024-12-30T00:10:52+08:002024-12-30T00:10:52+08:00

    是的,尽管多个论坛帖子和文档表明这只有通过 qcow2 才有可能,但使用命令行和 ZFS 克隆还是可以相当容易地实现的:

    1. 确定当前 ZFS 快照,这些快照代表您要回滚到的快照。如果您不确定,可以检查/etc/pve/qemu-server/或下的 VM 或 LXC 配置文件。使用(可能根据需要结合使用)来找到它们。/etc/pve/lxc/zfs listgrep

      对于此示例,假设我正在处理 LXC 容器 ID 113,因此我的 ZFS 文件系统rpool/data/lxc/subvol-113-disk-0@creation是rpool/data/lxc/subvol-113-disk-1@creation

    2. 克隆所有相关卷的快照并使用 生成新的 ZFS 数据集zfs clone $dataset@$snapshot $new_dataset。我倾向于将新数据集名称设置为下一个可用的磁盘编号,但您可以选择几乎任何您喜欢的新名称:

      zfs clone rpool/data/lxc/subvol-113-disk-0@creation rpool/data/lxc/subvol-113-disk-2
      zfs clone rpool/data/lxc/subvol-113-disk-1@creation rpool/data/lxc/subvol-113-disk-3
      
    3. 编辑 VM 或 LXC 配置文件(在/etc/pve/qemu-server或 下/etc/pve/lxc)并进行两项更改:更新卷的路径并将 parent属性设置为要回滚到的快照的名称(creation在我的示例中)

      • 对于 LXC 容器,您将编辑rootfs参数以及任何mp$n参数
      • 对于虚拟机,您需要编辑scsi$n行,或者ide$n如果您使用 IDE 磁盘则编辑行
    4. UI 现在应该会显示快照树,并且一切都应按预期工作。您可以照常创建新快照。如果要恢复到之前的树,您需要编辑配置文件并调整parent以及恢复/调整您编辑的存储行。

    • 1

相关问题

  • 从现有目录创建 zfs 的正确方法?

  • 如何将 ZFS ACL 从一个文件克隆到另一个文件?

  • ZFS 在演示期间在舞台上失败。这是正常行为吗?

  • Sneakernet 作为备份策略有意义吗?

  • ZFS 与 XFS

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve