diskdump
Deduplicated disk image transfer over SSH. Transfers only unique blocks across machines and over time, stores them compressed in a content-addressable block store.
How it works
- Client script is deployed to remote machine via SCP
- Client reads the disk/file in configurable batches (default 10MB)
- For each batch: hashes blocks (SHA256), asks server which are needed
- Only new blocks are sent (zlib-compressed on wire, lz4-compressed for storage)
- Each dump is stored as a lightweight manifest file pointing into a shared global block store
Single-pass streaming — no second read of the source. Blocks stay in memory only for one batch.
Usage
# Dump from remote machines (parallel, per-target --sudo)
diskdump dump server01:/dev/sda --sudo --as server01.sda server02:/dev/sda --as server02.sda
# Dump files (not block devices)
diskdump dump localhost:/path/to/file.img --as my-disk.img
# Restore
diskdump restore 2026/04/24/server01-sda.manifest -o restored.img
diskdump restore 2026/04/24/server01-sda.manifest | dd of=/dev/sda
# Import existing raw image into block store
diskdump import existing.img --as server01:/dev/sda
# Info & management
diskdump info 2026/04/24/server01-sda.manifest
diskdump status
diskdump verify
diskdump gc # remove unreferenced blocks
diskdump gc --dry-run
Options
| Flag | Description |
|---|---|
--sudo |
Use sudo on preceding target (repeatable per-target) |
--user, -u |
SSH user |
--block-size |
Block size in bytes (default 131072 = 128KB) |
--batch-size |
Blocks per batch (default 80 = 10MB) |
--as |
Custom manifest name (follows target it applies to) |
Storage layout
disks/
.blockstore/
config.json
ab/
cd/
abcdef...full_sha256_hash.lz4
2026/
04/
24/
server01-sda.manifest
- Blocks are content-addressed by SHA256, stored lz4-compressed
- Two-level directory fanout (first 2 bytes of hash = 65536 buckets)
- Manifests are plain text: header comments + one hash per line
- Global dedup: blocks shared across all dumps
Dependencies
- Server (local): Python 3,
lz4(pip install lz4) - Client (remote): Python 3 only (stdlib — no external deps)
Setup
python3 -m venv .venv
.venv/bin/pip install -e .
Metadata
Release files for diskdump 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| diskdump-0.1.5.tar.gz | 17.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| diskdump-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.5 kB
Release files / diskdump-0.1.5.tar.gz
| Download URL | diskdump-0.1.5.tar.gz |
|---|---|
| Size | 17.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dfc3f22034fa46fea36ebb55d4edd0cab0d964ce282005884937934cdf73a1cb
|
|
BLAKE2b-256 checksum How to use checksums |
368b3658d02dc83941f6cc6f75137d2aeafbee5bc50ba8673bcbbbb8f53a56d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 27, 2026.
Transparency logRelease files / diskdump-0.1.5-py3-none-any.whl
| Download URL | diskdump-0.1.5-py3-none-any.whl |
|---|---|
| Size | 14.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dcd2f2865eeebaaba61211e155d6fa8ade17f4a8158cbb48af3a98992c9ba1b1
|
|
BLAKE2b-256 checksum How to use checksums |
9ca2f77d2dd21f7235eb056ac5e42f5dca4ae6a6f286d3ea01cdd9da0d916054
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 27, 2026.
Transparency log