#backup #solution #modern #engine

bin+lib bakare

现代且简单,但高效的备份解决方案

1 个不稳定版本

0.1.0 2021年1月16日

#1665 in 文件系统

AGPL-3.0

40KB
939

Bakare:现代且简单,但高效的备份解决方案

这是预alpha版本,欢迎贡献

它还没有独立的二进制文件,但引擎看起来很有希望。欢迎贡献 :)

bakare 的目标

  • 简单去重文件数据 - 不存储完全相同的文件数据两次
  • 高级去重 - 更高效地存储仅略有变化的文件
  • 能够恢复索引损坏
  • 快速
  • 使用最大带宽
  • 使用最大CPU
  • 使用最大磁盘I/O
  • 内存使用限制
  • 默认加密 - 非对称加密,为您创建密钥对
  • 在存储文件中按文件名模糊搜索
  • 处理一个文件失败不应影响其他文件
  • 间歇性网络故障不应导致整个流程失败(使用随机数据包丢弃进行测试)
  • 系统挂起/恢复不应使存储库损坏,即使有其他计算机上运行的其他活动备份进程,针对同一存储库 - 这正是 restic 失败的地方

期望的功能

  • 守护进程侦听文件事件,并在下一次备份运行时更新要备份的文件列表 - 或 continous backup 模式 - 守护进程在看到更改时上传文件
  • 对等模式 - 为彼此存储加密备份的人
  • 中继模式,其中守护进程在一个或多个中心点(例如NAS)上工作,并带有本地存储,各种计算机与该中心位置同步。然后通过中心位置上传所有内容到其他位置,通常是云

实现说明

  • 自动节点发现 - 两个角色:数据发布者和数据持久化者 - 应该能够自动确定哪个节点是哪个
  • 使用基于属性的测试和模糊器测试随机创建的目录和文件
  • 看看我们是否可以使用 salsa 进行重新计算
  • 索引损坏测试 - 改变随机字节并查看是否可读
  • 网络数据包丢弃测试
  • 使用 bevy 进行解耦?
  • 删除所有 unwraps

动机:我尝试的所有备份系统对我来说要么很慢,要么崩溃,要么两者都有

  • duply:工作,但非常慢
--------------[ Backup Statistics ]--------------
StartTime 1547198362.85 (Fri Jan 11 09:19:22 2019)
EndTime 1547209509.04 (Fri Jan 11 12:25:09 2019)
ElapsedTime 11146.19 (3 hours 5 minutes 46.19 seconds)
SourceFiles 3065438
SourceFileSize 585041709586 (545 GB)
NewFiles 0
NewFileSize 0 (0 bytes)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 0
RawDeltaSize 0 (0 bytes)
TotalDestinationSizeChange 111 (111 bytes)
Errors 0
-------------------------------------------------

--- Finished state OK at 12:25:15.000 - Runtime 03:06:43.000 ---
  • restic

    • 内存不足崩溃
    • 如果您在另一台计算机上挂起一个备份进程并启动另一个进程,则会损坏存储库

依赖关系

~11-23MB
~324K SLoC