Linux 在线系统完整备份方案? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dfc643
V2EX    问与答

Linux 在线系统完整备份方案?

  •  
  •   dfc643 2020-12-30 03:15:12 +08:00 3727 次点击
    这是一个创建于 1747 天前的主题,其中的信息可能已经有所发展或是发生改变。

    场景

    • 通过 XRDP 远程登录目标计算机执行备份任务
    • 要求备份系统时,当前系统不能断开、关机、重启
    • 要求备份时支持压缩级别
    • 备份完成后通过 SFTP + FreeFileSync 远程传输到近端计算机
    • 远端计算机是 ext4 分区格式不支持快照

    Windows ?

    Windows 中是有这种操作的,得力于卷影服务和 DISM 磁盘镜像,可以在线备份当前系统并生成 wim 或者 esd 镜像文件。

    为什么需要?

    防止 SSD 某一天暴毙。

    找过哪些?

    • backintime
    • timeshift
    • cherry backup
    • deepin clone

    找到了半夜三点多,实在找不到了,在线求解惑 ……
    是不是我的需求比较少见?

    23 条回复    2021-01-03 18:41:49 +08:00
    xupefei
        1
    xupefei  
       2020-12-30 03:20:50 +08:00 via iPhone   1
    ext4 外面套一个 lvm,然后用 lvm snapshot ?
    reus
        2
    reus  
       2020-12-30 05:56:41 +08:00 via Android   2
    zfs send
    btrfs send
    ext4 洗洗睡吧
    msg7086
        3
    msg7086  
       2020-12-30 05:57:35 +08:00 via Android
    我司快照 Windows 用的是卷影,快照 linux 因为没找到办法所以没做……
    cheng6563
        4
    cheng6563  
       2020-12-30 08:16:09 +08:00 via Android   1
    @msg7086 Linux 要么 zfs 这种原生支持,要么套个 lvm
    loading
        5
    loading  
       2020-12-30 08:22:49 +08:00 via Android   1
    实在不行 tar 打包一份,gentoo 古老技术。
    msg7086
        6
    msg7086  
       2020-12-30 09:08:39 +08:00   3
    @cheng6563 @loading 卷影有一个很重要的功能是创建一致的快照,也就是数据库之类的会暂停写入然后临时进入一个 snapshot safe 的状态,然后底层再快照。如果只是 tar 或者 lvm snapshot 的话,最终拿到的文件可能是 inconsistent 的。
    loading
        7
    loading  
       2020-12-30 09:24:59 +08:00 via Android
    @msg7086 卷影就能把数据库热备下来?我感觉有点不可信。
    dfc643
        8
    dfc643  
    OP
       2020-12-30 10:58:33 +08:00 via Android
    @xupefei @msg7086 @reus @loading 感谢建议,实在不行就只能想办法转 btrfs 可能会好点
    dfc643
        9
    dfc643  
    OP
       2020-12-30 10:59:49 +08:00 via Android
    @msg7086 卷影用了好几年都很靠谱,不知道是怎么工作的。每次卷影的时候都有文件写入,恢复的时候文件完整性正常
    msg7086
        10
    msg7086  
       2020-12-30 11:08:52 +08:00
    @loading @dfc643
    https://docs.microsoft.com/zh-cn/windows-server/storage/file-server/volume-shadow-copy-service
    里面的 VSS Writer 部分。
    这个是需要多个组件协作完成的。
    巨硬自家实现得最好,其他家的有没有实现就要看脸了。
    cheng6563
        11
    cheng6563  
       2020-12-30 11:41:48 +08:00
    @msg7086 lvm 快照是一致性的
    https://tldp.org/HOWTO/LVM-HOWTO/snapshotintro.html


    @loading 卷影可以热备,但还原时对于数据库来说相当于一次强行关机,需要回滚事务修复数据等操作,各个数据库的解决方案不同。
    cheng6563
        12
    cheng6563  
       2020-12-30 11:42:37 +08:00
    @dfc643 btrfs 稳定性问题很大,慎用。
    dfc643
        13
    dfc643  
    OP
       2020-12-30 11:44:58 +08:00
    @cheng6563 谢谢提醒,我试试套个 lvm
    dfc643
        14
    dfc643  
    OP
       2020-12-30 11:46:41 +08:00
    顺带发现一个事情,我的系统是 UOS v20,自带 AB 分区结构
    系统设置中执行系统更新时 ```相当于 apt upgrade``` 会自动将当前系统备份到 ```RootB 分区```

    好奇用 ps 看了一下命令,居然是用的 rsync
    ```
    root 10253 4508 32 11:36 ? 00:00:01 rsync -x -a --delete-after --exclude-from=/tmp/deepin-recovery-136327457 / /deepin-ab-recovery-backup/
    root 10254 10253 12 11:36 ? 00:00:00 rsync -x -a --delete-after --exclude-from=/tmp/deepin-recovery-136327457 / /deepin-ab-recovery-backup/
    root 10280 10254 0 11:36 ? 00:00:00 rsync -x -a --delete-after --exclude-from=/tmp/deepin-recovery-136327457 / /deepin-ab-recovery-backup/
    ```
    greenskinmonster
        15
    greenskinmonster  
       2020-12-30 11:51:10 +08:00   1
    如果不是要求强一致性的话,restic.net 还不错
    jworg
        16
    jworg  
       2020-12-30 11:51:27 +08:00
    loading
        17
    loading  
       2020-12-30 12:34:32 +08:00 via Android
    @cheng6563 知道了,我以为还有什么黑科技能这样把数据库的内存也给整下来。
    dfc643
        18
    dfc643  
    OP
       2020-12-30 19:46:42 +08:00   2
    @xupefei @msg7086 @reus @loading @cheng6563
    发现一个 DKMS 模块,快级 COW,自称对标微软的 VSS
    不知道具体怎么样,打算安装试试 https://github.com/datto/dattobd
    loading
        19
    loading  
       2020-12-30 19:50:09 +08:00 via Android
    @dfc643 论坛就需要你这样的楼主,有反馈有感谢。
    Leone27
        20
    Leone27  
       2020-12-30 20:06:33 +08:00
    btrfs + snapper 非常好用
    dfc643
        21
    dfc643  
    OP
       2020-12-31 01:04:07 +08:00   1
    @xupefei @msg7086 @reus @loading @cheng6563
    顺手造了个轮子: https://gitlab.com/dfc643/datto-backup/
    预览图: https://gitlab.com/dfc643/datto-backup/-/raw/master/sample.gif
    我自己测试了几遍没有问题,有 bug 可以反馈,有空可以修

    @Leone27 btrfs 很多地方都说不稳定,暂时不敢用。
    xupefei
        22
    xupefei  
       2021-01-01 22:46:31 +08:00
    @dfc643 谢谢!我也给我的 NUC 弄了一个,自动传到 B2
    dfc643
        23
    dfc643  
    OP
       2021-01-03 18:41:49 +08:00
    @xupefei 今天把代码更新了,可以试试 git pull 一下,修复了一些问题,添加了 i18n 支持,dattobd 对 5.8 以上内核可能有兼容性问题,5.8 以下没问题
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     979 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 23:17 PVG 07:17 LAX 16:17
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86