Go to file
2023-12-06 18:33:26 -08:00
.vscode go mod tidy 2023-12-04 13:53:09 -08:00
.gitignore Initial commit. 2023-12-04 01:11:04 -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.