I'm using ZFS as part of my server management for multiple reasons :
- abstraction over disk storage (pools, datasets)
- redundancy and data loss protection
- To learn about it since it's among sysadmin technologies a lot of people really like.
- snapshotting/CoW support
There are a couple of downsides to this technology that I don't much care about
- performance loss (within reason)
- complexity (the goal is to learn so complexity is kinda something I want)
Introduction
ZFS atoms
The basic concepts and building blocks that are needed to understand how ZFS work. The two main ones are pools and datasets. Disks are placed in a pool and you can create dataset in a pool. You can mount datasets individually as well as apply some properties to each of them.
If you want redundancy, you need to add several disks (for example in a mirror fashion) in a pool.
Managing pools
To interact with the pools you can use zpool
command.
The main interesting ones are :
- status
- list
- add/remove create/destroy
Managing datasets
To interact with the datasets you can use zfs
command.
Increasing dataset quota size
I have a Kubernetes cluster and I use openebs-zfs
to provide storage. ZFS is
not a networking storage but since I only have one node, this is very much okay
to only have local storage! There seems to be a bug with quota increase on
OpenEBS-ZFS
so I had to edit the quota by hand.
zfs set quota=1300G $POOL/$DATASET