Proxmox Backup Server

aka: PBS

Internet access

Only https on port 8007 is needed. Use VPN to secure connection between peers.

Deduplication

PBS has own deduplication system. It stores 4MB chunks as file where name of file is a hash of chunk. So deduplication works across one storage, but works for all VM.

Dirty bitmap

On client side, dirty bitmap is created to notice changed on block device. So client do not need to read back whole disk and only changes are sent to PBS (and deduplicated on server side).

INFO: scsi0: dirty-bitmap status: OK (2.2 GiB of 4.0 GiB dirty)
INFO: scsi1: dirty-bitmap status: OK (drive clean)
INFO: using fast incremental mode (dirty-bitmap), 2.2 GiB dirty of 5.0 GiB total
INFO:   4% (96.0 MiB of 2.2 GiB) in 3s, read: 32.0 MiB/s, write: 22.7 MiB/s
INFO:   8% (192.0 MiB of 2.2 GiB) in 6s, read: 32.0 MiB/s, write: 32.0 MiB/s
INFO:  11% (264.0 MiB of 2.2 GiB) in 9s, read: 24.0 MiB/s, write: 24.0 MiB/s
INFO:  14% (328.0 MiB of 2.2 GiB) in 12s, read: 21.3 MiB/s, write: 21.3 MiB/s
INFO:  19% (432.0 MiB of 2.2 GiB) in 15s, read: 34.7 MiB/s, write: 34.7 MiB/s
INFO:  22% (500.0 MiB of 2.2 GiB) in 18s, read: 22.7 MiB/s, write: 18.7 MiB/s
INFO:  26% (608.0 MiB of 2.2 GiB) in 21s, read: 36.0 MiB/s, write: 22.7 MiB/s
INFO: 100% (2.2 GiB of 2.2 GiB) in 23s, read: 828.0 MiB/s, write: 30.0 MiB/s
INFO: backup is sparse: 1.61 GiB (72%) total zero data
INFO: backup was done incrementally, reused 4.43 GiB (88%)
INFO: transferred 2.21 GiB in 23 seconds (98.4 MiB/s)

File storage structure

|-- .chunks
|   |-- 0000
|   |-- 0001
|   |-- 0002
...
|   |-- fffc
|   |   `-- fffc231067e4f52accf1a820c82d52c0e463db2495c71658a295c218e074866a
|   |-- fffd
|   |-- fffe
|   `-- ffff
|-- .gc-status
|-- .lock
|-- ct
|   `-- 113
|       |-- 2021-05-24T16:41:32Z
|       |   |-- catalog.pcat1.didx
|       |   |-- client.log.blob
|       |   |-- index.json.blob
|       |   |-- pct.conf.blob
|       |   `-- root.pxar.didx
|       `-- owner
`-- vm
    `-- 120
        |-- 2021-05-24T16:09:24Z
        |   |-- client.log.blob
        |   |-- drive-scsi0.img.fidx
        |   |-- drive-scsi1.img.fidx
        |   |-- index.json.blob
        |   `-- qemu-server.conf.blob
        |-- 2021-05-24T16:16:06Z
        |   |-- client.log.blob
        |   |-- drive-scsi0.img.fidx
        |   |-- drive-scsi1.img.fidx
        |   |-- index.json.blob
        |   `-- qemu-server.conf.blob
        |-- 2021-05-24T16:18:06Z
        |   |-- client.log.blob
        |   |-- drive-scsi0.img.fidx
        |   |-- drive-scsi1.img.fidx
        |   |-- index.json.blob
        |   `-- qemu-server.conf.blob
        |-- 2021-05-24T16:23:02Z
        |   |-- client.log.blob
        |   |-- drive-scsi0.img.fidx
        |   |-- drive-scsi1.img.fidx
        |   |-- index.json.blob
        |   `-- qemu-server.conf.blob
        `-- owner