This example assumes that you have a FreeBSD 11.x running
sysrc zfs_enable="YES"Start ZFS service
service zfs startConfigure a loopback device on the /zfs file.
dd if=/dev/zero of=/zfs bs=1M count=4000
mdconfig -a -t vnode -f /zfsCreate zfs pool
zpool create minio-example /dev/md0df /minio-example
Filesystem 512-blocks Used Avail Capacity Mounted on
minio-example 7872440 38 7872402 0% /minio-exampleVerify if it is writable
touch /minio-example/testfile
ls -l /minio-example/testfile
-rw-r--r-- 1 root wheel 0 Apr 26 00:51 /minio-example/testfileNow you have successfully created a ZFS pool for further reading please refer ZFS Quickstart Guide
However, this pool is not taking advantage of any ZFS features. So let's create a ZFS filesytem on this pool with compression enabled. ZFS supports many compression algorithms: [lzjb, gzip, zle, lz4]. lz4 is often the most performant algorithm in terms of compression of data versus system overhead.
zfs create minio-example/compressed-objects
zfs set compression=lz4 minio-example/compressed-objectsTo monitor if your pools are healthy.
zpool status -x
all pools are healthyInstall Minio from FreeBSD port.
pkg install minioEnable minio and configure minio to use ZFS volume mounted at /minio-example/compressed-objects.
sysrc minio_enable=yes
sysrc minio_disks=/minio-example/compressed-objects
Start minio.
service minio start
Now you have an Minio running on top of your ZFS backend which transparently provides disk level compression for your uploaded objects, please visit http://localhost:9000 to open Minio Browser.
In-case you wish to stop Minio service.
service minio stop