Plakar 社区版 1.1.8 介绍与选型指南

Plakar 社区版(开源 Kloset 加密去重备份引擎)介绍与选型:项目沿革、Kloset 架构与快照模型、数据管道、功能特性、快速开始与 restic/Borg 等同类备份工具对比,基于 Ubuntu 22.04 + v1.1.8 实测(2026-10-30)。

Plakar 社区版备份恢复数据备份自托管Go2026/10/30

Plakar 社区版 1.1.8 介绍与选型指南

目标:全面认识 Plakar 社区版(开源版)这款「加密、去重、可校验」的备份引擎——理解 Kloset 存储库架构与快照模型,并在十分钟内跑通「建库 → 备份 → 浏览 → 恢复」最小闭环。文中全部命令与输出均在 Ubuntu 22.04.5 LTS(x86_64)+ Plakar v1.1.8 环境实测通过,实测日期 2026-10-30。

一、环境信息

本章列出实测环境的关键可复现信息,正文所有命令与回显均来自该环境:

  • 操作系统:Ubuntu 22.04.5 LTS
  • 系统架构:x86_64
  • 软件版本:Plakar v1.1.8(社区版,plakar version 回显 plakar/v1.1.8;官方 deb 包版本号 1.1.8-1)
  • 开发语言:Go(官方安装文档注明:自 v1.1.8 起从源码构建需要 Go 1.26.10 及以上)
  • Kloset 仓库目录:/srv/backups(本地文件系统后端)
  • 备份源目录:/srv/demo-docs(含 configs/、docs/、photos/ 三个子目录,覆盖符号链接与二进制样本文件,逻辑总量约 792 KiB)
  • 服务端口:plakar server 默认监听 9876;plakar ui 实测监听 8146
  • 实测日期:2026-10-30

二、软件概述

2.1 一句话定位

Plakar 是 PlakarKorp 公司开源的备份引擎,官方仓库的一句话描述是「plakar is a backup solution powered by Kloset and ptar」:由 Kloset 不可变存储库与 ptar 归档格式两大自研底座驱动,主打「Encrypted, deduplicated, verifiable, and scalable」(加密、去重、可校验、可扩展),以零信任加密与无厂商锁定为卖点。它可以对任意目录做快照,把数据放进一个加密、去重的存储库,之后随时浏览、校验、按需恢复,而不必整包还原。

它主要回应传统备份方案的三个痛点:

  1. 快照是黑盒:很多工具的备份产物只能整体还原,想确认某个文件是否备好、想对比两个时间点的差异都很麻烦。Plakar 的快照是「可浏览」的——可以像文件系统一样查看内容、逐字节对比两个快照、只恢复其中一个文件,还可以在完全不还原的前提下校验快照完整性。
  2. 多版本存储成本线性膨胀:Plakar 基于内容定义分块做去重,配合压缩,保存大量历史快照不会等比例占用磁盘。
  3. 加密不彻底:Plakar 的加密同时覆盖数据与元数据,其密码学实现经过了第三方审计(官方 2025-02-28 发布审计报告,见参考链接)。

2.2 项目沿革与社区活跃度

以下数据于 2026-10-30 实查 GitHub 仓库 PlakarKorp/plakar:

项目数据
仓库地址https://github.com/PlakarKorp/plakar
创建时间2021-03-19
开发语言Go
开源许可ISC License
Stars2101
Forks103
开放 Issues84
官网https://www.plakar.io

社区渠道包括 Discord、Reddit(r/plakar)与 YouTube 频道,文档与版本发布节奏较快,属于年轻但高速迭代的项目:截至 2026-10-30,官网下载页在售版本从 v1.0.4 一路排到 v1.1.8,Ubuntu 官方 deb 仓库的候选版本即为 1.1.8-1。

2.3 社区版与 Control Plane(企业版)的分野

Plakar 官网下载页明确写着:「Plakar Control Plane is the enterprise version of Plakar. It is delivered as a virtual appliance and provides a web-based management interface for centralized backup management for your infrastructure.」 也就是说,Plakar 存在社区版(开源 CLI 引擎)与 Control Plane(集中控制面,企业版)两条产品线,社区文档独立挂在 docs/community/ 路径下。本文及本系列文档均以社区版 v1.1.8 为对象,对比如下:

维度Plakar 社区版(本文对象)Plakar Control Plane(企业版)
定位开源备份引擎(CLI + 内置 Web UI)企业级集中备份管理平台
交付形态单一静态二进制 / deb / rpm / apk / tar.gz虚拟设备(AWS AMI、QCOW2、OVA、ISO)
管理界面plakar ui 单仓库视角Web 集中管理控制面
许可ISC 开源商业授权
适用对象单机或少量服务器的技术团队自维护需要集中管控大量备份任务的企业

2.4 官方能力画像

官方仓库对 Plakar 能力差异化的概括是:快照可浏览(inspect、diff、单文件 restore);每个快照可独立校验而无需还原;去重与压缩使多快照的存储成本不再线性增长;加密覆盖数据与元数据且经过审计;通过集成(integrations)扩展备份源与存储后端。使用形态上「Plakar can be used from the command line or through its built-in web UI」——CLI 是第一公民,Web UI 是内置附属。这些画像在下文架构与功能章节中均能对应到实测证据。

三、核心架构

3.1 总体形态:CLI 引擎 + Kloset 存储库

Plakar 是纯客户端形态的备份引擎:没有服务端依赖、不需要数据库,所有状态收敛在一个 Kloset 存储库(repository)里。仓库可以放在本地目录,也可以是远程 HTTP 端点(由 plakar server 暴露)、S3 兼容对象存储、SFTP 等(后两者等集成包经 plakar pkg 安装后可用)。命令行用 plakar at <location> 前缀显式指定仓库;省略 at 时使用默认仓库目录(当前用户主目录下的 .plakar)或环境变量 PLAKAR_REPOSITORY 指向的位置。

💡 技术拓展:备份工具的存储后端(location)常见形态对比——

后端形式适用场景
本地目录直接路径(如 /srv/backups)单机备份、NAS/NFS 挂载点
远程服务端http://host:9876(plakar server)多客户端共用一个仓库、细粒度授权
对象存储S3 兼容桶(plakar pkg add s3 后可用)异地容灾、海量数据、按量付费
SSH 远端sftp://host/path(plakar pkg add sftp 后可用)复用已有 SSH 通道与主机

本文实测采用「本地目录」与「http 远端」两种形态;S3/SFTP 属集成包能力,需先安装对应 pkg。

3.2 Kloset 存储库的目录结构

初始化完成后的仓库目录实测如下(ls /srv/backups):

CONFIG
locks
packfiles
states
条目作用
CONFIG仓库配置(二进制格式),记录分块/哈希/压缩/加密全套参数与 RepositoryID
locks/仓库级排他锁文件,防止并发写入损坏(实测见 4.5 节维护与锁)
packfiles/数据包文件,加密去重后的实际数据存放处(单包上限 64 MiB)
states/快照状态数据(snapshot state)

对 CONFIG 文件做十六进制查看,其头部可见 _KLOSET_ 魔数及内嵌的 RepositoryID、Packfile、Chunking 等字段名——仓库参数自描述,任何兼容实现都能解读。

3.3 快照(Snapshot)模型

每次 plakar backup 生成一个快照,快照 ID 是 64 位十六进制串,交互中通常用前 8 位短 ID(如 f7e99ead)。plakar info <快照ID> 的实测回显展示了快照的完整元数据结构:

$ plakar at /srv/backups info f7e99ead
Version: v1.0.0
SnapshotID: f7e99ead520e651084789f01a7497ba26b00f55392e0c0450dff5eba74a6eb62
Timestamp: 2026-10-30 11:58:47.158175599 +0000 UTC
Duration: 21.834503ms
Name: prod-docs
Environment: 
Perimeter: 
Category: 
VFS:
 - Root: a0e2363f315bf93689012b82a07ddde3cd0ea75ba6160d0161620fbae7341691
 - Xattrs: a1a297e2b54722f899c503501e050986e0006349a6140bc133af727ae8310843
 - Errors: a1a297e2b54722f899c503501e050986e0006349a6140bc133af727ae8310843
Importer:
 - Type: fs
 - Origin: plakar-server
 - Directory: /srv/demo-docs
Context:
 - MachineID: 
 - Hostname: plakar-server
 - Username: root
 - OperatingSystem: linux
 - Architecture: amd64
 - NumCPU: 6
 - GOMAXPROCS: 
 - ProcessID: 4538
 - Client: plakar/v1.1.8
 - CommandLine: plakar at /srv/backups backup -name prod-docs /srv/demo-docs
Summary:
 - Directories: 5
 - Files: 5
 - Symlinks: 1
 - Devices: 0
 - Pipes: 0
 - Sockets: 0
 - Setuid: 0
 - Setgid: 0
 - Sticky: 0
 - Objects: 5
 - Chunks: 5
 - MinSize: 0 B (0 bytes)
 - MaxSize: 512 KiB (524288 bytes)
 - Size: 792 KiB (810455 bytes)
 - MinModTime: 1970-01-01 00:00:00 +0000 UTC
 - MaxModTime: 2026-10-30 11:46:42 +0000 UTC
 - MinEntropy: 0.000000
 - MaxEntropy: 7.999643
 - HiEntropy: 2
 - LoEntropy: 1
 - MIMEAudio: 0
 - MIMEVideo: 0
 - MIMEImage: 0
 - MIMEText: 3
 - MIMEApplication: 3
 - MIMEOther: 0
 - Errors: 0

逐段解读:

  • VFS:快照的虚拟文件系统,Root 是根节点哈希——快照本质是一棵带哈希校验的文件树,因此可独立校验、可任意两个快照间 diff;
  • Importer:数据来源连接器信息(类型、来源、目录),fs 即本地文件系统导入器;
  • Context:采集环境上下文(主机名、用户、系统、架构、客户端版本乃至完整命令行),审计友好;
  • Summary:文件/目录计数汇总,并延伸到符号链接数、对象/分块统计、修改时间范围、熵值与 MIME 类型分布(实测该快照:文本 3、应用 3),可一眼识别快照内容特征。

快照彼此独立、自包含,这是「快照可单独校验、可任意 diff、删除互不影响」的基础。

3.4 数据管道:分块 → 哈希 → 压缩 → 加密 → 打包

plakar info 实测回显给出仓库级全套参数(以下为 /srv/backups 仓库完整输出):

$ plakar at /srv/backups info
Version: v1.0.0
Timestamp: 2026-10-30 11:45:27.56549473 +0000 UTC
RepositoryID: 86928610-d625-4e33-9b45-24a7a48816e4
Packfile:
 - MaxSize: 64 MiB (67108864 bytes)
Chunking:
 - Algorithm: fastcdc-v1.0.0
 - MinSize: 512 KiB (524288 bytes)
 - NormalSize: 1.0 MiB (1048576 bytes)
 - MaxSize: 8.0 MiB (8388608 bytes)
Hashing:
 - Algorithm: BLAKE3
 - Bits: 256
Compression:
 - Algorithm: LZ4
 - Level: 131072
Encryption:
 - SubkeyAlgorithm: AES256-KW
 - DataAlgorithm: AES256-GCM-SIV
 - ChunkSize: 65536
 - Canary: 02fa6160df03bf0a188cabc772e222efb57f5475e9f0097523233dce3f3c78daba50a7f7e2c85e3df62469a6d6cb7656fb52dfe0f19a03831efd4d96cf02ea54415288a8285e79182d733a337b81214995f15782d5bb15d27d241539c13916f57f9c1538
 - KDF: ARGON2ID
   - Salt: ee60c428766755e99fc5691950e76f37
   - SaltSize: 16
   - KeyLen: 32
   - Time: 4
   - Memory: 262144
   - Thread: 1
Snapshots: 2
Storage size: 8.8 MiB (9264860 bytes)
Logical size: 792 KiB (810507 bytes)

管道五步的含义与实测参数:

  1. 分块(Chunking):内容定义分块,算法 fastcdc-v1.0.0,块大小 512 KiB~8 MiB(平均 1 MiB);
  2. 哈希(Hashing):BLAKE3、256 位,块哈希即去重身份,内容相同则哈希相同;
  3. 压缩(Compression):LZ4、压缩级别 131072;
  4. 加密(Encryption):子密钥用 AES256-KW 封装,数据块用 AES256-GCM-SIV 认证加密(块 64 KiB),口令经 Argon2id 派生(time=4、memory=256 MiB、单线程),Canary 字段用于口令正确性快速校验;
  5. 打包(Packfile):块打包写入 packfiles,单包上限 64 MiB。

💡 技术拓展:去重分块算法对比——

算法原理特点与取舍
固定分块按固定字节长度切块实现最简;文件头部插入一个字节后整块错位,去重率崩塌
Rabin 指纹滑动窗口多项式指纹定界经典 CDC,restic 采用;窗口计算成本中等
Buzhash滑动窗口循环哈希定界计算快,BorgBackup、kopia 采用
FastCDC在 CDC 基础上加大窗口跳跃 + 分级阈值更少哈希计算、更快定界,Plakar 实测采用 fastcdc-v1.0.0

Plakar 取 FastCDC 并把块上限提到 8 MiB,利于大文件场景的去重效率。

💡 技术拓展:常见密码哈希/摘要算法对比——

算法特点适用场景
SHA-256最通用的密码学摘要,生态最广,速度一般通用校验、证书
SHA-3 系列与 SHA-2 不同的构造,抗length-extension替代 SHA-2 的场景
BLAKE2快于 MD5 级别的安全摘要高吞吐哈希
BLAKE3BLAKE2 后继,树形并行,极快且抗碰撞本文实测采用:海量数据块的快速定身

Plakar 选用 BLAKE3(256 位)正是看中其在 GB 级吞吐下的哈希速度。

💡 技术拓展:认证加密(AEAD)算法对比——

算法特点适用场景
AES-256-GCM通用 AEAD,硬件加速普及传输与存储加密的主流选择
ChaCha20-Poly1305无 AES 硬件时表现好移动端/软实现(kopia 可选)
AES-256-CTR + Poly1305组合式构造restic 采用的组合
AES-256-GCM-SIV抗 nonce 误用的 SIV 变体,误用随机数也不会泄露等值关系对实现错误更宽容的存储加密,Plakar 实测采用

Plakar 的组合是「口令 Argon2id 派生主密钥 → AES256-KW 封装数据子密钥 → AES256-GCM-SIV 加密数据块」,密钥分层、职责清晰。

3.5 非守护进程设计与三种访问形态

官方仓库明确说明:「Plakar does not run as a daemon. To back up on a schedule, run plakar backup from a systemd timer or cron.」 Plakar 不以常驻守护进程方式工作,定时备份靠 cron 或 systemd timer 拉起 CLI(官方提供了定时备份指南,见参考链接)。它的三种运行形态都是按需拉起:

形态命令用途
CLIplakar <子命令>备份、浏览、恢复、维护等全部能力
Web UIplakar ui起一个本地 Web 界面查看/操作仓库
远程仓库服务plakar server把仓库以 HTTP 端点暴露给多客户端

这个设计让 Plakar 的资源占用趋近于零(无任务时无进程),也意味着生产上要自己负责调度(见 6.2 限制)。

四、功能特性

4.1 端到端加密(数据 + 元数据)

加密覆盖数据与元数据,仓库口令不落盘(也可选择写入 stores 配置,见配置篇章的实测说明,本篇快速开始用环境变量注入)。加密强度的旁证实测:对 packfiles 目录下全部数据包做明文字符串扫描,任何包含 PlakarKorp 等可读字符串的位置计数均为 0——数据与文件名等元数据在磁盘上不可读。官方还于 2025-02-28 发布了第三方密码学实现审计报告(见参考链接),这在开源备份工具中并不多见。

4.2 去重与压缩

分块去重 + LZ4 压缩由引擎自动完成。去重效果的直观实测:plakar dup 复制一个既有快照(不重新扫描源目录),仅耗时 271.388µs、写出 395 KiB——全部数据块直接命中既有块,新快照只补写少量元数据:

8f173218: backup completed without errors in 271.388µs (in: 0 B, out: 395 KiB)

💡 技术拓展:备份工具常用压缩算法对比——

算法压缩率速度典型采用
LZ4中极快(GB/s 级)Plakar(实测默认,级别 131072)、Borg 默认
zstd高快,可调级别多restic 默认 auto、kopia 默认、Borg 可选
gzip/zlib中中Borg 可选(兼容老场景)
lzma很高慢Borg 可选(冷数据)

Plakar 当前仓库参数为 LZ4,偏向「备份窗口短、CPU 别成为瓶颈」的取舍。

4.3 快照可浏览、可校验、可对比

这是 Plakar 最有辨识度的能力组合,全部有实测支撑:

按内容检索与读取(locate 找路径、cat 直接输出快照内文件内容):

$ plakar at /srv/backups locate site.conf
f7e99ead:/srv/demo-docs/configs/site.conf
225488c3:/srv/demo-docs/configs/site.conf

$ plakar at /srv/backups cat f7e99ead:/srv/demo-docs/docs/readme.md
Plakar is an open-source backup solution by PlakarKorp. UPDATED-FOR-DIFF-TEST

单文件校验(digest 计算快照内文件的摘要,可与源文件 sha256sum 对账):

$ plakar at /srv/backups digest f7e99ead:/srv/demo-docs/docs/readme.md
SHA256 (/srv/demo-docs/docs/readme.md) = 9b9d99e7bd52a7f6fd0db2679e52e2f590e39003b1f470d5e428ca5825a89be9

跨快照 diff(文本出统一 diff,二进制报 differ,目录列出公共子目录;下例的 b0239ef3 与 ec109d75 是同一实测会话中的前序快照——后者是改动 readme.md 之后的再备份):

$ plakar at /srv/backups diff b0239ef3:/srv/demo-docs/docs/readme.md ec109d75:/srv/demo-docs/docs/readme.md
--- b0239ef3:/srv/demo-docs/docs/readme.md
+++ ec109d75:/srv/demo-docs/docs/readme.md
@@ -1,2 +1,2 @@
-Plakar is an open-source backup solution by PlakarKorp.
+Plakar is an open-source backup solution by PlakarKorp. UPDATED-FOR-DIFF-TEST

4.4 安全的删除与保留策略

删除是两阶段的:plakar rm <id> 先只列出将要删除的快照,确认无误加 -apply 才真正执行;保留策略由 plakar policy 定义、plakar prune 执行,且 prune 默认同样是 dry-run:

$ plakar at /srv/backups rm 8f173218
rm: would remove these 1 snapshot(s), run with -apply to proceed
2026-10-30T11:47:35Z   8f173218   791 KiB        0s /srv/demo-docs

$ plakar at /srv/backups prune -policy onepd
prune: would keep 1 and delete 2 snapshot(s), run with -apply to proceed
keep     2026-10-30T11:57:13Z   225488c3      52 B /srv/demo-docs/configs tags=tmp  match=day:2026-10-30 rank=1 cap=1
delete   2026-10-30T11:46:57Z   ec109d75   792 KiB /srv/demo-docs tags=nightly      match=day:2026-10-30 rank=2 cap=1
delete   2026-10-30T11:45:34Z   b0239ef3   791 KiB /srv/demo-docs                   match=day:2026-10-30 rank=3 cap=1

上例策略 onepd 为「每天最多保留 1 个快照」(policy 配置实测为 periods.day.cap: 1),dry-run 输出直接给出保留/删除明细与判定依据(rank/cap),加 -apply 后实测删除 2 个、保留 1 个。

4.5 仓库维护与锁机制

plakar maintenance 做仓库空间回收:先给孤儿数据包「着色」标记,7 天宽限期后才物理删除,误删风险低。实测输出:

$ plakar at /srv/backups maintenance
maintenance: Coloured 1 packfiles (0 orphaned) for deletion
Coloured packfiles are scheduled to be removed in 7d
maintenance: 0 blobs and 0 packfiles were removed

仓库通过 locks/ 目录做排他锁。实测曾因上次中断留下过期锁而报 plakar: Can't take exclusive lock, repository is already locked,删除 locks 目录下的过期锁文件后恢复正常——维护类操作前先确认无残留锁是必要习惯。

4.6 多仓库与同步(3-2-1 就绪)

一个 Kloset 仓库可以同步到另一个仓库(plakar sync to/from),天然支撑「3 份副本、2 种介质、1 份异地」的 3-2-1 备份策略。实测把本地仓库 @localbak 同步到对端仓库 @mirror:

$ plakar at /srv/backups-mirror sync from @localbak
b0239ef3: OK ✓ /srv/demo-docs/docs/report-v1.bin
b0239ef3: synchronize completed without errors in 28.359397ms (in: 4.7 KiB, out: 1.9 MiB)
info: Synchronization of b0239ef3787bcc0850c5689989505bec314f2311370ee625c550e0f92b4728e6 finished
info: sync: synchronization from localhost to localhost completed: 2 snapshots synchronized

同步后对端仓库 ls 可见全部快照。远端形态下(plakar server 暴露 HTTP 端点),客户端把远端注册为 store 后同样可 sync——见 4.10。

4.7 集成与包管理(pkg)

Plakar 通过内置包管理器扩展备份源与存储后端,官方集成列表包括 PostgreSQL、MySQL、etcd、Kubernetes、S3 兼容对象存储等:

$ plakar pkg add s3        # 安装 S3 集成包
$ plakar pkg add -u s3     # 升级指定集成包
$ plakar pkg add -u        # 升级全部已装集成包

升级集成包不会影响已有的 store、source、destination 配置。

4.8 归档导出:archive 与 ptar

两种导出形态,实测均通过:

  • plakar archive:把快照导出为普通 tar 文件(可与任何工具交互):
$ plakar at /srv/backups archive -o /srv/share/snapshot-b0239ef3.tar b0239ef3
$ ls -la /srv/share/snapshot-b0239ef3.tar
-rw-r--r-- 1 root root 803416 Oct 30 11:47 /srv/share/snapshot-b0239ef3.tar
$ tar -tf /srv/share/snapshot-b0239ef3.tar
srv/demo-docs/configs/site.conf
srv/demo-docs/docs/numbers.txt
srv/demo-docs/docs/readme.md
srv/demo-docs/docs/report-v1.bin
srv/demo-docs/photos/img-001.raw
  • plakar ptar:导出为 ptar 自包含归档——保留去重、压缩与加密能力的「单文件仓库」,官方为此格式专门撰写了设计文章(见参考链接):
$ plakar at /srv/backups ptar -o /srv/share/demo-docs.ptar /srv/demo-docs
fd646440: OK ✓ /srv/demo-docs/configs/site.conf
fd646440: OK ✓ /srv/demo-docs/configs
fd646440: OK ✓ /srv/demo-docs/photos/img-001.raw
$ ls -la /srv/share/demo-docs.ptar
-rw------- 1 root root 833378 Oct 30 11:48 /srv/share/demo-docs.ptar

ptar 主要选项实测(plakar help ptar):-o 输出文件名、-hashing 摘要算法(默认 BLAKE3)、-k/-kloset 把多个 Kloset 位置并入同一 ptar(可多次指定)、-no-compression 关闭透明压缩、-plaintext 关闭透明加密、-overwrite 覆盖已存在的输出。

4.9 内置 Web UI

plakar ui 起一个本地 Web 界面。实测以 -addr 0.0.0.0:8146 监听、-no-auth 关闭令牌认证、-no-spawn 不自动拉起浏览器:

$ plakar at /srv/backups ui -addr 0.0.0.0:8146 -no-auth -no-spawn
launching webUI at http://0.0.0.0:8146

另开终端验证 HTTP 可达性:

$ curl -sI http://127.0.0.1:8146 | head -1
HTTP/1.1 200 OK

UI 可浏览快照列表与内容、发起备份。默认(不加 -no-auth)UI 的 HTTP API 需要携带认证令牌,暴露到非本机地址时务必保留认证或另行加固。

4.10 远程共享仓库(server)

plakar server 把一个 Kloset 仓库暴露为 HTTP 端点,供多客户端远程读写。实测在仓库主机启动:

$ plakar at /srv/backups server -listen 0.0.0.0:9876
info: listening on http://0.0.0.0:9876

客户端侧把远端注册为一个 store(store add 静默成功),即可用 @remote 别名透明访问(实测与服务端同机演示;跨机部署时把地址换成服务端 IP 即可):

$ plakar store add remote location=http://127.0.0.1:9876
$ plakar at @remote ls
2026-10-30T11:58:47Z   f7e99ead   792 KiB        0s /srv/demo-docs
2026-10-30T11:57:13Z   225488c3      52 B        0s /srv/demo-docs/configs

服务端默认禁用删除操作(防误删,需显式 -allow-delete 才放开),并可用 -token 强制 Bearer 令牌认证、用 -cert/-key 启用 HTTPS。

五、快速开始(最小可用示例)

本节给出从零到恢复的完整最小闭环,全部命令与回显为实测记录。

5.1 安装

Ubuntu 22.04 按官方 APT 仓库三步安装(先装依赖并导入官方签名密钥,再配仓库安装):

$ sudo apt-get update
$ sudo apt-get install -y curl gnupg2
$ curl -fsSL https://plakar.io/dist/keys/plakar-packages.gpg | sudo gpg --dearmor -o /usr/share/keyrings/plakar.gpg
$ echo "deb [signed-by=/usr/share/keyrings/plakar.gpg] https://plakar.io/dist/repos/deb/ stable main" | sudo tee /etc/apt/sources.list.d/plakar.list
$ sudo apt-get update
$ sudo apt-get install plakar
$ plakar version
plakar/v1.1.8

回显 plakar/v1.1.8 即安装成功。离线环境与 deb/tar.gz 直装等更多方案,参考官方安装文档(见参考链接)。

5.2 创建仓库

先准备演示口令(生产环境请使用高强度独立口令并妥善保管),再初始化仓库:

$ export PLAKAR_PASSPHRASE=q1w2e3r4
$ plakar at /srv/backups create
$ echo $?
0

create 成功时静默返回(rc=0),验证手段是 plakar at /srv/backups info(回显见 3.4 节)。若不设环境变量,create 会在终端交互提示 repository passphrase:;在无终端的自动化脚本里则需用环境变量或 -keyfile 方式注入,否则实测报 plakar: inappropriate ioctl for device。

5.3 首次备份与查看

$ plakar at /srv/backups backup -name prod-docs /srv/demo-docs
f7e99ead: OK ✓ /srv/demo-docs/docs/report-v1.bin
f7e99ead: backup completed without errors in 21.834503ms (in: 0 B, out: 979 KiB)

ls 查看快照列表(时间、短 ID、大小、耗时、路径):

$ plakar at /srv/backups ls
2026-10-30T11:58:47Z   f7e99ead   792 KiB        0s /srv/demo-docs
2026-10-30T11:57:13Z   225488c3      52 B        0s /srv/demo-docs/configs

5.4 检索与校验

$ plakar at /srv/backups locate site.conf
f7e99ead:/srv/demo-docs/configs/site.conf
225488c3:/srv/demo-docs/configs/site.conf
$ plakar at /srv/backups cat f7e99ead:/srv/demo-docs/docs/readme.md
Plakar is an open-source backup solution by PlakarKorp. UPDATED-FOR-DIFF-TEST
$ plakar at /srv/backups digest f7e99ead:/srv/demo-docs/docs/readme.md
SHA256 (/srv/demo-docs/docs/readme.md) = 9b9d99e7bd52a7f6fd0db2679e52e2f590e39003b1f470d5e428ca5825a89be9

5.5 恢复

restore -to 把快照内容直接写入目标目录(注意:是「内容」直接落目录,不再嵌套源路径层级,官方文档特别强调这一点):

$ plakar at /srv/backups restore -to /tmp/restore-test f7e99ead:/srv/demo-docs/docs
f7e99ead: OK ✓ /
f7e99ead: OK ✓ /readme-link.md
f7e99ead: OK ✓ /numbers.txt
f7e99ead: OK ✓ /readme.md
f7e99ead: OK ✓ /report-v1.bin
$ ls -la /tmp/restore-test
total 292
drwxr-xr-x 2 root root   4096 Oct 30 11:43 .
drwxrwxrwt 1 root root   4096 Oct 30 12:26 ..
-rw-r--r-- 1 root root  23893 Oct 30 11:43 numbers.txt
lrwxrwxrwx 1 root root     29 Oct 30 11:43 readme-link.md -> /srv/demo-docs/docs/readme.md
-rw-r--r-- 1 root root     78 Oct 30 11:46 readme.md
-rw-r--r-- 1 root root 262144 Oct 30 11:46 report-v1.bin

用 digest 或 sha256sum 对比恢复文件与源文件摘要一致,闭环完成。实测中还做过更极端的演练:把源目录全部删除后,用快照整体恢复,恢复结果与备份源逐字节一致。

六、适用场景与限制

6.1 适用场景

场景对应能力实测依据
服务器文件与配置的定时备份CLI + cron/systemd timer,快照去重省空间5.3 节备份实测,重复备份 271µs 完成(4.2 节)
误删除/误改的细粒度找回快照可浏览、单文件 cat/restore5.5 节恢复实测;整目录删除后恢复逐字节一致
3-2-1 多副本与异地容灾sync to/from 多仓库同步、S3/SFTP 集成4.6 节 sync 实测 2 snapshots synchronized
备份数据的离线交付与冷存ptar 自包含加密归档4.8 节 ptar 实测 833378 B 单文件
多机器共用一个仓库plakar server 远程端点 + store 注册4.10 节 @remote ls 实测成功
数据库/K8s 等数据源备份pkg 集成(PostgreSQL、MySQL、etcd、Kubernetes)4.7 节官方集成清单

6.2 限制与注意事项

  1. 无常驻调度器:Plakar 不作为守护进程运行,定时备份需要 cron/systemd timer 自行编排(官方有定时备份指南,见参考链接);无任务时无进程,但「到点自动备份」完全依赖外部调度。
  2. 单口令模型:仓库安全完全绑定一个口令(Argon2id 派生),没有内置的多用户体系或 KMS 集成;口令丢失等于数据不可恢复(错口令实测直接 failed to unlock repository,退出码 77)。生产环境需把口令纳入密钥管理流程。
  3. 仓库参数不可逐项调优:分块/哈希/压缩/加密参数由引擎内置默认值确定(3.4 节),当前版本没有用户级调参入口——这是「开箱即用」的另一面。
  4. 社区规模尚小:2101 Stars(2026-10-30 实查)与 restic 等成熟工具差距明显,遇到疑难问题可依赖的社区经验相对少;项目迭代快,升级后建议关注 Release Notes。
  5. 存储格式演进需手动迁移:官方升级文档明确,新版引入的新磁盘格式不会自动迁移旧仓库,需要「新建仓库 + plakar sync from 旧仓库」的方式迁移(官方安装文档 Upgrading 一节原文给了这两条命令)。
  6. 企业级集中管理不在社区版:多机集中管控、策略下发等能力属于 Control Plane 企业版(2.3 节),社区版用户需自建脚本化运维。

七、同类选型对比

7.1 候选概览

开源文件级备份工具中,restic、BorgBackup、kopia 是与 Plakar 同台竞争的三款主流产品,本站亦有其专项文档(见 7.3)。社区活跃度数据于 2026-10-30 实查(shields.io 徽章与 GitHub API):

项目最新版本Stars开发语言许可
resticv0.19.137kGoBSD-2-Clause
kopiav0.23.115kGoApache-2.0
BorgBackupv1.4.514kPython + CBSD-3-Clause
Plakarv1.1.82101GoISC

解读:Plakar 的社区规模与三者差距明显,属于「新一代、快速爬坡期」;但其架构最年轻(快照自包含 + 不可变存储库 + ptar),功能面(见 7.2)已经覆盖三者的核心能力集。

7.2 能力维度对比

维度resticBorgBackupkopiaPlakar 1.1.8
内容定义分块去重✓(Rabin)✓(Buzhash)✓(Buzhash 等)✓(FastCDC,512 KiB~8 MiB 实测)
压缩zstd(v0.14+)lz4/zstd/zlib/lzma 可选zstd 等多种可选LZ4(实测固定)
静态二进制部署✓需 Python 环境✓✓(Go 静态编译)
加密AES-256-CTR + Poly1305AES-CTR + HMAC(加密仓库模式)AES-256-GCM 或 ChaCha20AES256-KW + AES256-GCM-SIV、Argon2id(实测)
密码学第三方审计无公开完整审计无无✓(2025-02 官方发布审计报告)
快照内容浏览/diffls + diff ✓list + diff ✓目录浏览 ✓ls/diff/cat/locate(实测)
不还原校验完整性check ✓check ✓check ✓check/digest(实测 digest 单文件对账)
单文件恢复✓(restore 指定路径)✓(extract 指定路径)✓✓(restore + cat,实测)
内置 Web UI无官方(社区 Backrest)无✓(kopia server)✓(plakar ui,实测 HTTP 200)
保留策略内置forget --keep-*prune 内置策略policy 内置policy + prune(实测删 2 留 1)
仓库间同步/复制copy ✓无(transfer 仅限版本升级)sync-to ✓sync to/from ✓(实测)
单文件加密归档导出无export-tar(不加密)无ptar(保留加密去重,实测)
FUSE 挂载✓✓✓✓(plakar-mount 只读)
远程仓库协议REST server/rcloneSSH(borg serve)kopia server/SFTP/Blobplakar server + S3/SFTP 集成(实测 server)
调度方式外部 cron/timer外部 cron/timerserver 可常驻 + 外部调度外部 cron/timer(官方明确非守护进程)

解读(如何读这张表):四者在「去重、加密、快照管理」主干能力上已高度同质,真正的分野在生态成熟度(restic 最大)与差异化能力——Plakar 独有的组合是「元数据级加密 + 第三方密码学审计 + ptar 单文件加密归档 + Kloset 不可变存储库」;Borg 的 export-tar 与内置 prune 历史最久;kopia 是三者中唯一自带官方 Web UI 的成熟项目。

7.3 选型建议

  • 如果团队追求最大社区、最丰富的踩坑资料与第三方教程,则优先 restic,可参考《Restic 0.19 介绍与选型指南》;
  • 如果已有 Borg 存量备份、或主机间习惯走 SSH 通道做集中仓库,则继续 BorgBackup,可参考《BorgBackup 1.4 介绍与选型指南》;
  • 如果需要给 restic 补一个官方支持之外的图形管理层,则可看 Backrest,参考《Backrest v1.14.1 介绍与选型指南》;
  • 如果要「官方自带 Web UI + 内置保留策略 + 多端同步」且能接受新项目,则kopia 或 Plakar 皆可,Plakar 的增量价值在加密审计、ptar 归档与更现代的快照模型;
  • 如果核心诉求是「元数据也不落明文、密码学经过审计、能把整个仓库打包成单文件带走」,则 Plakar 是四者中唯一同时满足的选择;
  • 如果需要企业级集中管控多机备份策略,则以上均不覆盖,需评估 Plakar Control Plane(企业版)或其他商业方案。

八、参考链接

官方来源(访问日期均为 2026-10-30):

本站相关篇目:

本系列姊妹篇: