如何在VPS上部署Proxmox Backup Server
了解如何将VPS配置为Proxmox Backup Server异地备份目标:设置数据存储、按主机划分命名空间、执行修剪与垃圾回收、保管加密密钥,并通过实际恢复测试验证备份。
VPS 上的 Proxmox Backup Server 实际能提供什么
VPS 上的 Proxmox Backup Server(PBS)是一个异地备份目标,使用与 Proxmox VE(虚拟环境)集群相同的协议。因此,首次备份后,后续备份都采用增量方式,跨虚拟机客户机进行去重,在离开您的场所前加密,并可在之后验证。您租用一台带块存储卷的 VPS,在 Debian 13 上安装 PBS,在该存储卷上创建一个数据存储,然后在 Proxmox VE 中将其添加为 pbs 类型的存储。安装只需十分钟。之后的所有环节,包括命名空间、垃圾回收、密钥保管,以及实际执行过的恢复操作,才决定这份备份在一年后是否仍然有价值。
使用 PBS,而不是将 vzdump 文件复制到租用的磁盘,原因在于其分块存储。客户端会将每个客户机磁盘拆分为约 4 MiB 的数据块,计算哈希值,然后只上传数据存储中尚未存在的数据块。对于正在运行的虚拟机,QEMU 会在首次备份后通过脏块位图跟踪已更改的块,因此下一次运行时只需从本地磁盘读取这些块。一个 200 GB 的客户机每天更改 3 GB,就会每天发送约 3 GB。这使家庭上行链路和租用存储卷能够配合使用,也正是 将 VPS 用作异地备份目标 优于放在朋友家中的备用磁盘的原因。如果您还在决定虚拟化管理程序本身应部署在哪里,家庭部署 Proxmox 与租用 VPS 的比较 会单独介绍这个问题。
在租用卷之前确定容量
容量规划需要根据您自己的数据进行计算。取每个客户机实际使用的空间,而不是其虚拟磁盘的大小,然后加上它每天产生的变化量乘以保留天数。压缩和去重都会进一步降低这个数值,因此应将计算结果视为上限,而不是目标值。
The data behind this chart
[
{
"label": "web VM",
"used_gb": 40,
"daily_change_gb": 0.8,
"store_gb": 64
},
{
"label": "mail VM",
"used_gb": 120,
"daily_change_gb": 3.0,
"store_gb": 210
},
{
"label": "file server container",
"used_gb": 300,
"daily_change_gb": 1.5,
"store_gb": 345
}
]这些行是计算示例,不是测量结果。在每个客户机中从 df -h 读取已用空间;PBS 任务日志中第二个和第三个备份创建后,再根据它们的大小读取每日变化量。
示例中的邮件客户机使用 120 GB,每天变化约 3.0 GB。因此,保留 30 个每日快照大约需要 210 GB:1 份完整副本,加上 30 天的变化量。将所有 3 个客户机的最后一列相加,总量约为 619 GB。再额外增加五分之一,用于索引、元数据以及垃圾回收所需的空间,因此建议使用 1 TB 卷。
其余配置要求不高。PBS 使用 2 GB RAM 即可正常运行,4 GB 会更宽裕,因为高开销的工作发生在集群端:Proxmox VE 节点读取客户机磁盘,并执行分块和哈希计算。VPS 负责写入数据块,以及运行垃圾回收和验证这两个高负载任务。将数据存储租用为独立块卷,而不是使用一个大型 root 磁盘,因为以后可以扩展卷,而不必重建服务器。
在 Debian 13 上安装 Proxmox Backup Server
截至 2026 年 8 月,当前的版本组合是 Debian 13(代号 trixie)上的 Proxmox Backup Server 4。旧教程通常将 PBS 2 与 Debian 11 搭配使用,而代号是仓库定义的一部分,因此复制旧的 suite 名称会导致 apt 报错,提示缺少 release 文件。请从纯净的 Debian 13 镜像开始。以下命令均以 root 身份运行,或按原样使用 sudo。
sudo apt update && sudo apt install -y wget
sudo wget https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg -O /usr/share/keyrings/proxmox-archive-keyring.gpg
sha256sum /usr/share/keyrings/proxmox-archive-keyring.gpg校验和必须显示为 136673be77aba35dcce385b28737689ad64fd785a797e57897589aed08db6e45。如果不一致,请停止操作。错误的 keyring 表示您即将安装由未经验证的密钥签名的软件包。
使用无订阅仓库写入 /etc/apt/sources.list.d/pbs.sources。对于没有支持合同的服务器,这是正确的仓库:
Types: deb
URIs: http://download.proxmox.com/debian/pbs
Suites: trixie
Components: pbs-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpgsudo apt update
sudo apt install -y proxmox-backup-serverWeb 界面通过 HTTPS 端口 8007 提供服务。使用系统 root 密码,以 root@pam 身份登录,因为 PBS 会通过 PAM(可插拔认证模块)验证该用户;PAM 使用的就是操作系统中的同一组账户。证书是自签名证书,浏览器会显示相应警告。Proxmox VE 稍后会固定使用该证书的指纹,因此此警告属于预期现象,无需修复。
端口 8007 上运行的是面向公网的登录表单,因此不要向所有来源开放该端口。一个 nftables 文件即可完成配置。写入 /etc/nftables.conf 会刷新当前规则集,因此如果此服务器上的防火墙已由其他组件管理,请跳过此步骤。
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority filter; policy drop;
ct state established,related accept
iif lo accept
tcp dport 22 accept
ip saddr 203.0.113.7 tcp dport 8007 accept
}
}使用 sudo systemctl enable --now nftables 应用配置,并在操作期间保持第二个 SSH 会话处于打开状态:policy drop 加上 SSH 规则中的一个拼写错误,就可能使您无法登录自己的服务器。将 203.0.113.7 替换为集群连接来源的地址。如果该地址是动态的,请将规则范围扩大到服务商的地址段,或通过隧道终止连接;还要注意,大多数 VPS 控制面板会在服务器前方另行提供网络防火墙,该防火墙也必须允许同一个端口。
将数据存储放在独立卷上
数据存储不得位于根文件系统中。如果数据存储填满了共享的根文件系统,备份会失败,服务器上的其他功能也会随之失败,包括排查故障所需的日志记录。附加块卷、格式化并挂载该卷,然后再在挂载点中创建数据存储。
lsblk
sudo mkfs.ext4 -L pbsstore /dev/vdb
sudo mkdir -p /mnt/datastore/store1从 lsblk 获取设备名称。在大多数 KVM 镜像中,该名称是 /dev/vdb,在其他镜像中则是 /dev/sdb,因此不能假定设备名称固定不变。按标签将挂载添加到 /etc/fstab,这样重启后设备名称发生变化时,也不会将数据存储指向错误的磁盘:
LABEL=pbsstore /mnt/datastore/store1 ext4 defaults,relatime 0 2sudo systemctl daemon-reload
sudo mount -a
findmnt -no SOURCE,TARGET,OPTIONS /mnt/datastore/store1findmnt 应输出设备、路径以及包含 rw,relatime 在内的挂载选项。这一行中可能隐藏两个问题。如果卷未挂载,但您仍然创建了数据存储,PBS 会将数据写入挂载点下方的根文件系统;下次成功挂载时,这些数据会被挂载内容隐藏,但不会被删除。此时数据存储看似为空,而根文件系统仍然处于满载状态。如果选项显示 noatime,PBS 会拒绝工作,因为它在创建数据存储时以及每次垃圾回收时都会执行访问时间安全检查。
sudo proxmox-backup-manager datastore create store1 /mnt/datastore/store1
sudo proxmox-backup-manager datastore list这会创建一个 .chunks 目录,其中包含 65536 个子目录,名称范围为 0000 到 ffff。数据存储包含数十万个小文件,而不是少量大文件。因此会产生两个结果。使用普通的文件级工具复制数据存储,速度会慢到无法使用;而在备份运行期间创建的云服务商卷快照并不是数据存储的一致副本。这也是其他位置的快照不能替代备份的原因。
命名空间可防止两台主机相互冲突
数据存储默认是扁平的。备份名称为 vm/100、ct/101 和 host/<name>。如果两个集群都各自有一个 ID 为 100 的 guest,它们会写入同一组,快照会相互交错,而为其中一个集群编写的保留规则也会统计另一个集群的快照。命名空间会在一个数据存储中为每个源创建独立的目录树。
在 PBS 主机上创建命名空间。--repository 参数的格式为 [[auth-id@]server[:port]:]datastore,因此本地命名空间应写为 root@pam@localhost:store1,该命令会请求 root 密码。
sudo proxmox-backup-client namespace create --repository 'root@pam@localhost:store1' pve-home
sudo proxmox-backup-client namespace create --repository 'root@pam@localhost:store1' pve-office
sudo proxmox-backup-client namespace list --repository 'root@pam@localhost:store1'拆分命名空间不会影响重复数据删除。数据块在整个数据存储中共享,因此分布在三个命名空间中的十个 Debian guest 仍只会存储一份基础系统。这也是使用一个带命名空间的数据存储,而不是每台主机使用一个数据存储的理由:不同的数据存储意味着不同的数据块池,而不同的数据块池意味着同一个 Debian 安装需要重复付费存储多次。
为每个源分配独立的账号,并将其限制在自己的命名空间内。API(application programming interface,应用程序编程接口)令牌是属于某个用户并拥有独立权限的凭据。对于可能被盗的机器,这正是所需的配置。
sudo proxmox-backup-manager user create backup@pbs --email you@example.com
sudo proxmox-backup-manager user generate-token backup@pbs pve-home
sudo proxmox-backup-manager acl update /datastore/store1/pve-home DatastoreBackup --auth-id 'backup@pbs!pve-home'令牌命令只会准确打印一次密钥:
Result: {
"tokenid": "backup@pbs!pve-home",
"value": "d63e505a-e3ec-449a-9bc7-1da610d4ccde"
}现在复制该密钥,因为 PBS 不会保留任何可再次显示的形式。仔细检查两次访问控制命令。该命令指定的是令牌 backup@pbs!pve-home,而不是用户,因为令牌权限只根据直接指定该令牌的条目计算。单独为 backup@pbs 添加条目不会赋予令牌任何访问权限,因此第一次备份会因权限不足而失败,而不是因网络中可见的其他问题失败。路径同样重要:限制在 /datastore/store1/pve-home 的令牌无法读取或删除 office 命名空间中的任何内容,因此一个遭入侵的集群无法破坏另一个站点的历史备份。
将 VPS 添加为 Proxmox VE 中的备份存储
首先在 PBS 主机上读取证书指纹。
sudo proxmox-backup-manager cert info | grep Fingerprint然后在集群中的任意节点上执行:
sudo pvesm add pbs pbs-offsite --server pbs.example.com --datastore store1
sudo pvesm set pbs-offsite --username 'backup@pbs!pve-home' --password
sudo pvesm set pbs-offsite --fingerprint 'FINGERPRINT_FROM_CERT_INFO'
sudo pvesm set pbs-offsite --namespace pve-home
sudo pvesm set pbs-offsite --prune-backups keep-all=1将 cert info 输出的值粘贴到第三行的占位符位置。传入不带值的 --password 后,pvesm 会提示您输入该值,因此令牌密钥不会出现在 shell 历史记录中。该密钥存储在 /etc/pve/priv/storage/pbs-offsite.pw,存储定义本身写入 /etc/pve/storage.cfg。该文件会复制到集群中的每个节点,因此整个集群只需配置一次。
--prune-backups keep-all=1 告诉 Proxmox VE 不删除任何内容。保留策略由 PBS 端负责,后文会进一步介绍。这样设计有明确原因:令牌无需删除权限,因此即使集群被勒索软件加密,集群也无法连接到异地存储并清理原本用于恢复的历史备份。
sudo pvesm status --storage pbs-offsite
sudo vzdump 100 --storage pbs-offsite --mode snapshotpvesm status 会在状态列中输出 active,旁边显示数据存储的总空间和已用空间。inactive 表示该节点无法完成到端口 8007 的 TLS(传输层安全)会话。这是防火墙或指纹问题,不是凭据问题。
第一次备份会上传全部数据,因此启动前应先计算所需时间。200 GB 等于 1600 gigabit,100 Mbit 上行链路的传输速率为每秒 0.1 gigabit,因此理论最低耗时约为四个半小时,实际耗时会更长。请在不需要使用该带宽时启动备份。之后每次运行只会发送新增的数据块。
客户端加密,以及密钥的存放位置
VPS 是一台不属于您的计算机。在客户端执行加密后,数据存储中保存的只是服务提供商无法读取的数据块。
sudo pvesm set pbs-offsite --encryption-key autogen该命令会将新密钥写入 /etc/pve/priv/storage/pbs-offsite.enc。只有 root 可读取该文件,并且该文件会与 /etc/pve 的其他内容一同复制。从下一次备份开始,客户端会在每个数据块发送出去之前对其加密。服务器仍可列出您的快照及其大小,但无法读取快照内容。
接下来是决定备份是否会变成安全风险的部分。生成的密钥没有密码短语,并且只存在于其保护的集群上。如果该集群被盗,或其中的数据被他人加密,VPS 上保存的将是任何人都无法打开的数据。创建密钥当天,就应将密钥复制到集群之外。
sudo cp /etc/pve/priv/storage/pbs-offsite.enc /root/pbs-offsite.enc
sudo proxmox-backup-client key paperkey /root/pbs-offsite.enckey paperkey 会将密钥打印为适合打印在纸上并存放在其他位置的文档。应将该文件本身视为机密,因为持有该文件的任何人都可以解密使用该密钥创建的所有备份。对于规模更大的部署,PBS 还支持主密钥。主密钥是一对 RSA(Rivest Shamir Adleman)密钥,可通过 proxmox-backup-client key create-master-key 创建。每个备份都会使用公钥加密其专用加密密钥,而私钥则保持离线,以便恢复。
在开始前了解设计的一个影响,比事后才发现更好。对于加密备份,数据块摘要由明文内容与加密密钥共同计算得出。因此,使用不同密钥加密的两个相同数据块会生成不同的摘要,无法相互去重。更换密钥后,下一次备份会重新上传所有内容;旧数据块会一直保留,直到其快照被修剪并回收。应在首次上传前决定是否启用加密。
清理标记,垃圾回收负责回收空间
这是最容易被跳过的步骤,也是导致存储卷被占满的步骤。清理快照会删除其元数据:manifest、索引、日志和备注,但不会删除任何数据块。多个快照会共享数据块,因此只有在读取完所有剩余索引后,才能确定某个数据块未被使用;垃圾回收负责读取这些索引。只有清理计划、没有垃圾回收计划的 datastore 只会不断增长。
请同时设置这两项。先设置保留策略,每个 namespace 设置一个任务:
sudo proxmox-backup-manager prune-job create home-daily --store store1 --ns pve-home --schedule '02:30' --keep-daily 14 --keep-weekly 8 --keep-monthly 6
sudo proxmox-backup-manager prune-job list然后在 datastore 上设置垃圾回收计划。时间应安排在清理任务几小时之后,并避开备份窗口:
sudo proxmox-backup-manager datastore update store1 --gc-schedule 'Sun 04:27'
sudo proxmox-backup-manager datastore show store1在 PBS 主机上执行一次,以确认两者的区别:
df -h /mnt/datastore/store1
sudo proxmox-backup-manager garbage-collection start store1
df -h /mnt/datastore/store1运行清理任务,然后再次运行 df,已用空间数值不会变化。运行垃圾回收,然后再次运行 df,数值就会变化。
垃圾回收分为两个阶段。第一阶段遍历 datastore 中的每个索引,并更新这些索引所引用的每个数据块的访问时间。第二阶段删除访问时间早于截止时间的数据块。截止时间是任务开始前 24 hours and 5 minutes,或仍在写入的最早备份的开始时间,取两者中更早的时间。之所以保留这段时间,是因为 Linux 默认使用 relatime 挂载文件系统。该选项大约每天更新一次访问时间,而不是每次读取都更新。因此,即使某个数据块尚未被引用,写入时间不到 1 小时的数据块也不会被删除;清理释放的空间会在数据块最后一次被访问超过 1 天后,首次运行的垃圾回收中显示出来。看起来没有回收空间的 datastore,通常只是仍处于这个时间窗口内。
在小型 VPS 上,这是主机运行的负载最高的任务,因为它会对存储卷上的每个数据块文件执行 stat。任务日志末尾会汇总已删除的内容,以及因宽限期仍在等待处理的内容。如果有大量内容处于等待状态,请在第二天再次运行。PBS 将 gc-atime-safety-check 和 gc-atime-cutoff 作为 datastore 调优选项公开,这两个选项都应保持默认值:它们用于无法记录访问时间的存储。在以 noatime 挂载的文件系统上关闭安全检查,可能导致删除仍被活动快照引用的数据块。
验证可确认分块仍然可读
备份即使顺利上传,一年后仍可能无法读取。验证会重新读取分块,并将其与索引中保存的校验和进行比较。这样可以按计划发现损坏,而不是等到恢复时才发现。
sudo proxmox-backup-manager verify store1 --read-threads 1 --verify-threads 4在小型 VPS 上,将线程数设得较低。验证受磁盘和 CPU 性能限制,否则会与服务器上的其他任务争用资源。要设置计划任务,请在 Web 界面中使用数据存储的 Verify Jobs 选项卡:创建每周运行一次的任务,跳过已经验证过的快照,并重新验证超过 30 天的快照。这样可以逐步覆盖整个数据存储,同时避免重复处理。
验证失败的快照会在数据存储视图中标记为失败。不要忽略失败记录。分块会被多个快照共享,因此基础镜像中的一个损坏分块,通常会导致所有引用该分块的快照验证失败。修复方法是忘记这些失败的快照,然后执行一次全新的备份,以便重新上传缺失的分块。如果失败持续出现,应检查数据存储所在的底层存储,并设置 VPS 磁盘健康监控,让磁盘在 Verify Jobs 发现问题前先报告故障。
测试恢复,然后在集群外测试
在恢复一个备份之前,无法确认备份是否可用。这两项测试检查的内容不同。
在集群上恢复整个客户机:
sudo pvesm list pbs-offsite
sudo qmrestore 'pbs-offsite:backup/vm/100/2026-08-14T22:00:00Z' 999 --storage local-lvmpvesm list的第一列是卷 ID,时间戳也是其中的一部分,因此请复制您自己的值,不要直接输入示例。将其恢复到未使用的客户机 ID 和其他存储上,然后在断开网络接口的情况下启动它。不要为了检查备份是否可用而覆盖正在运行的客户机,因为恢复如果中途失败,连原本可用的副本也会丢失。
第二项测试通常没人执行。假设集群所在的建筑已经完全损失,然后从一台从未加入该集群的机器恢复。在任意 Debian 13 计算机上,将仅包含客户端的仓库添加为 /etc/apt/sources.list.d/pbs-client.sources:
Types: deb
URIs: http://download.proxmox.com/debian/pbs-client
Suites: trixie
Components: main
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpgsudo apt update && sudo apt install -y proxmox-backup-client
export PBS_REPOSITORY='backup@pbs!pve-home@pbs.example.com:store1'
export PBS_PASSWORD='<the token secret>'
export PBS_FINGERPRINT='<the value cert info printed>'
proxmox-backup-client snapshot list --ns pve-home
proxmox-backup-client snapshot files vm/100/2026-08-14T22:00:00Z --ns pve-home
proxmox-backup-client restore vm/100/2026-08-14T22:00:00Z 'ARCHIVE_NAME_FROM_THAT_LIST' ./restore-test --keyfile ./pbs-offsite.enc --ns pve-home将三个带引号的占位符替换为您自己的值,并从snapshot files输出的内容中获取最后一行的归档名称。这可以证明第一项测试无法证明的内容:您的密钥文件副本能够解密真实数据,并且您可以从一台从未保存过集群配置的机器驱动客户端。记录它所需的四个值:仓库字符串、令牌密钥、指纹和密钥文件,并将它们一起保存在灾难恢复计划指定的位置。
去重对磁盘费用的影响
去重确实有效,并且作用于整个 datastore。10 个 Debian 虚拟机可以共享一份基础系统副本,因此存储第二个相同的虚拟机几乎不增加成本。去重还可以节省上传带宽,因为对于服务器已经保存的块,客户端只需发送校验和,无需发送数据。
但以下几点必须明确。
- 去重不会缩小发生变化的数据。数据库每晚重写文件的大部分内容时,每晚都会生成新的块,而保留策略会进一步放大这些数据。
- 去重无法跨越加密密钥边界,详见上文。
- 去重无法跨越 datastore 边界,这正是使用命名空间的主要原因。
- 去重无法阻止卷被写满。datastore 写满后,备份会失败,解决办法只有扩容卷或缩短保留时间。
不要在它下面再叠加另一层去重。客户端已经对数据块完成去重和压缩,因此在 datastore 下使用 ZFS 去重时,ZFS 会消耗 RAM 查找那些在写入前就已被移除的重复块。在这里,直接在卷上使用 ext4 或 xfs 才是正确选择。
Web 界面会显示 datastore 的去重系数。这个数值反映的是您的虚拟机数据,也是规划时唯一值得参考的数值,因为公开的比例反映的是其他人的数据。如果还需要为非 Proxmox 虚拟机的机器执行文件级备份,可以在同一台 VPS 上并行运行相关工具:PBS 是面向虚拟机管理程序、用于备份整个虚拟机的目标,而 restic 和 BorgBackup 面向目录,将 restic 备份到 VPS 适用于笔记本电脑和独立服务器;PBS 从来不是为这些设备设计的。
故障模式及其表现
存储显示为非活动状态。 当节点无法完成到端口 8007 的 TLS 会话时,pvesm status --storage pbs-offsite 会输出 inactive。先检查 VPS 上的防火墙,再检查服务商单独提供的网络防火墙,最后检查指纹。如果指纹与证书不再匹配,其表现与端口被阻断相同;每次替换证书时,指纹都会变化。
首次备份因权限失败。 访问控制项必须指定令牌,而不是用户,并且必须覆盖存储所指向的命名空间。先在 Web 界面的数据存储权限选项卡中确认这两点,再检查其他位置。
垃圾回收拒绝启动。 访问时间安全检查失败。这几乎总是因为数据存储文件系统以 noatime 方式挂载。运行 findmnt -no OPTIONS /mnt/datastore/store1 进行确认,在 /etc/fstab 中修正该选项,然后重新挂载。不要为了绕过检查而禁用它。
数据存储只增不减。 清理任务正常运行,但没有回收任何空间。原因可能是没有配置垃圾回收计划,也可能是每次回收都在备份完成后立即运行,因此始终处于 24 小时宽限期内。使用 proxmox-backup-manager datastore show store1 检查计划。
过去很快的备份现在需要数小时。 如果来宾系统曾被停止、迁移或恢复,其脏位图会丢失。因此,下一次运行会在集群端读取整个磁盘,尽管实际上传的数据很少。任务日志会显示持续时间很长,但上传量很小;下一次运行会再次变快。如果 VPS 上的所有任务都变慢,原因通常不在数据存储本身。此时首先应测量 嘈杂邻居导致的 CPU steal time。
FAQ
我的 Proxmox Backup Server 数据存储在 prune 作业运行时为什么仍会持续增长?
因为 prune 只会删除快照元数据:manifest、indexes、log 和 notes。只有在垃圾回收删除不再被任何索引引用的 chunk 后,这些 chunk 才会从磁盘上移除。使用 proxmox-backup-manager datastore update store1 --gc-schedule 'Sun 04:27' 为数据存储设置计划,并在运行 proxmox-backup-manager garbage-collection start store1 前后对数据存储路径执行 df -h,以确认回收确实生效。至少要等待一天,因为第二阶段只会删除访问时间早于 24 hours and 5 minutes 的 chunk。
Proxmox Backup Server VPS 需要多少磁盘空间?
先累加每个 guest 实际使用的空间,再加上每个 guest 的每日变更量乘以保留天数。这个总量只是上限,因为压缩和去重都会降低实际占用。再为索引和工作空间增加约五分之一,然后向上取整到可购买的卷大小。两周后根据数据存储视图中的实际使用量重新检查,因为首次备份前做出的估算总会偏高或偏低。
备份加密密钥应存储在哪里?
可以存储在任何地方,但不能只存储在它所保护的集群中。Proxmox VE 将其保存在 /etc/pve/priv/storage/<storage>.enc,该文件会复制到每个节点,因此集群丢失时密钥也会丢失。第一天就将其复制到集群外,使用 proxmox-backup-client key paperkey 打印,并将副本保存在另一栋建筑中。还要注意,密钥会参与 chunk 摘要计算,因此之后更换密钥会导致下一次备份重新上传全部数据。
每台 Proxmox 主机都需要一个数据存储,还是应该使用 namespace?
使用一个数据存储,并为每台源主机或每个集群使用一个 namespace。去重在数据存储内生效,不会跨数据存储生效,因此按主机拆分会多次存储相同的基础镜像。Namespace 可以隔离备份组,因此两台主机即使都拥有 ID 为 100 的 guest,也不会发生冲突;使用 /datastore/store1/pve-home 形式的访问控制路径,可以将每台主机的 API token 限制在自己的 namespace 中。
小型 VPS 能否胜任 Proxmox backup server?
对于 homelab,通常可以,因为 chunk 分块和哈希计算发生在 Proxmox VE 节点上,而不是备份服务器上。VPS 负责写入 chunk,并运行两个高负载作业:垃圾回收和验证。为其分配 4 GB RAM,并将验证线程数保持在较低水平。将这两个作业安排在备份时段之外;如果它们仍然比磁盘所需时间长得多,请先测量 steal time,再购买更高规格的套餐。