.gitea/workflows | ||
.vscode | ||
.gitignore | ||
.goreleaser.yaml | ||
datashake.go | ||
go.mod | ||
go.sum | ||
Makefile | ||
README.md |
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 totee
should suffice for now.