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 / 问题 / 812351
Accepted
user19760
user19760
Asked: 2016-11-01 09:56:51 +0800 CST2016-11-01 09:56:51 +0800 CST 2016-11-01 09:56:51 +0800 CST

快速同步 zfs 池

  • 772

我的服务器将增量备份保存在 zfs 卷上。由于数据非常相似,我可以显着减少增长 - 每天大约有 500GB 的“新数据”,但池每天仅增长 5-10GB 左右,其余的存储在重复数据删除/压缩中。

我想将备份复制到加密的 USB 磁盘,因此我也将其设置为 zfs 卷。当我使用 rsync 或 zfs 发送/接收同步备份时,似乎所有数据都再次传输(只是作为重复数据存储在 USB 驱动器上)。因此,备份当前需要超过 24 小时,这使得每日备份变得不可能。

有没有办法更快地备份这个?

backup rsync usb zfs
  • 1 1 个回答
  • 2051 Views

1 个回答

  • Voted
  1. Best Answer
    user121391
    2016-11-03T01:05:47+08:002016-11-03T01:05:47+08:00

    Michael Hampton 的建议很到位,Solaris 手册页也很好,但是对于初学者来说,这个概念并不容易掌握。我将概述我在编写脚本时所经历的要点。


    本质上,你首先照常做一个快照x和一个完整的:send/recv

    # Initial send, destroy all filesystems on the destination
    # pool which are not present on the source pool.
    zfs snapshot pool0@snap0
    zfs send -R pool0@snap0 | zfs recv -Fdu pool1
    

    之后,您进行快照x+1并以增量方式发送。您可以删除源上的旧快照,但您需要保留最后一个(最近的),以便计算差异。如果您丢失/销毁源上的最后一个快照,您将不得不从完整的初始发送重新开始!

    # incremental send, destroy all filesystems on the destination
    # pool which are not present on the source pool. Afterwards, old
    # snapshots can be destroyed.
    zfs snapshot pool0@snap1
    zfs send -R -I pool0@snap0 pool0@snap1 | zfs recv -Fdu pool1
    zfs destroy pool0@snap0
    
    # Afterwards, repeat and replace snap1 with snap2 and snap0 with snap1 etc.
    

    一些我自己的经验的建议:

    • 删除最后一个快照意味着你需要重新开始,所以要小心,首先在你的脚本中检查成功的返回值。
    • 您可以为快照编号或使用date- 编号更容易,但如果您查看日志和/或频繁拍摄快照,日期会更好。
    • 在尝试选项并尝试-nv模拟时,请注意这适用于发送,但会因接收失败而失败,因为没有什么可以接收。这在手册或错误消息中并不明显。
    • 快照将占用空间,直到它们被销毁,并且它们“锁定”您已删除的空间。如果您经常备份,这不是问题。如果您很少使用多个目标磁盘/池和/或备份,您可能会遇到磁盘空间限制。在 illumos/OpenZFS 中存在该bookmarks功能,可以作为规避此问题的一种方法。不幸的是,它目前只支持单个快照而不是递归,所以你必须自己添加递归代码。
    • 如果您不想使用/编写自己的,请使用 Github 上的众多之一。我认为znapzend是其中最成熟的一个。
    • 3

相关问题

  • 总大小(磁盘)与总大小(媒体)

  • 社区对备份解决方案的意见

  • 无法读取不同 LTO-3 驱动器上的 LTO-3 磁带

  • 使用 TSM 备份时跳过硬链接

  • 使用 rsync 维护名称更改的目录的副本

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