Skip to main content

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.

diskdump overview

How it works

  1. Client script is deployed to remote machine via SCP
  2. Client reads the disk/file in configurable batches (default 10MB)
  3. For each batch: hashes blocks (SHA256), asks server which are needed
  4. Only new blocks are sent (zlib-compressed on wire, lz4-compressed for storage)
  5. 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)

Source distribution for diskdump 0.1.5
File Size Uploaded
diskdump-0.1.5.tar.gz 17.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for diskdump 0.1.5
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page