Console tool to find occupied pool space in ZFS on Linux.
The tool uses pure python3 with shell commands to collect useful information from ZFS
and show it in convenient way wit recommendations how to free some space.

ZFS is a non-trivial LVS filesystem with snapshots, reservations, deduplication, filesystems hierarchy and so on.
Common tools, such as df or ls can't provide relevant information when you need to free some space.
There is an explanatory article about this.
Snapshots USED space is another puzzle. ZFS only shows space freed by destroying individual snapshot or space occupied by all filesystem snapshots. If you add up all USED by the snapshots space, you will not get total occupied space because there is some space occupied by snapshot combinations. Most people do not comprehend this.
zfspace tries to analyze space usage and describe it in a human way with recommendations on the things you can do to free some space. The snapshot analysis is similar to this tool.
pip3 install zfspace
zfspace doesn't require root priviledges as it is installed in ~/.local/bin/
If you install zfspace on a fresh server as a first python console tool,
you need to restart your session to load new user PATH updated by pip.
Usage: zfspace [-h] [-V] [-f FILTER] dataset_name
Run zfspace -h to get more help
Example: zfspace mypool/root/
zfspace is pure python module installed by pip, so it might work on any Linux with Python3 and pip package manager. But zfspace has only been tested on Ubuntu 18.04 and Debian 10.
- You must obey PEP8 formatting rules written in .flake8
- You must create new versions using bump2version. It simultaneously update several files with new version and
place a version tag in repository.
Example:
bump2version patchor
bump2version minor- Packet release is based on pyproject.toml. First prepare your environment with:
pip3 install buildTo build a packet use bump2version first and then go into project directory and run:
python3 -m build --wheelInstall manually (replace x.x.x with correct version) with:
pip install dist/zfspace-x.x.x-py3-none-any.whl --force-reinstallTwine packet must be installed
pip3 install twineTo publish:
twine upload dist/zfspace-x.x.x-py3-none-any.whlYou will be asked for login and password on PyPi.