Go to file
Sam Fredrickson 289468720e
All checks were successful
Build & Test / Main (push) Successful in 31s
Release / Release (push) Successful in 35s
Add Gitea Actions workflows.
2023-12-10 03:13:34 -08:00
.gitea/workflows Add Gitea Actions workflows. 2023-12-10 03:13:34 -08:00
.vscode go mod tidy 2023-12-04 13:53:09 -08:00
.gitignore Add Gitea Actions workflows. 2023-12-10 03:13:34 -08:00
.goreleaser.yaml Add Gitea Actions workflows. 2023-12-10 03:13:34 -08:00
datashake.go Various improvements. 2023-12-06 18:26:41 -08:00
go.mod go mod tidy 2023-12-04 13:53:09 -08:00
go.sum go mod tidy 2023-12-04 13:53:09 -08:00
Makefile Initial commit. 2023-12-04 01:11:04 -08:00
README.md Shorten the README; save the story for the blog post. 2023-12-06 18:33:26 -08:00

datashake - level out zpools by rewriting files

Background

See this blog post for the motivation behind this program. Basically, this program copies files back-and- forth between ZFS datasets to attempt to address unbalanced utilization among vdevs.

Usage

$ datashake --source /tank/stuff --temp /tank/temp --concurrency 2

Shortcomings

  • The way actions and errors are logged in-memory and only persisted at the end is not robust enough. Program crashes or system power loss can cause files to be lost in the temporary directory. In the meantime, the program still writes to stdout for each copy operation, so piping the output to tee should suffice for now.