The Fli client
Fli is a client of FlockerHub. Fli can be installed on any Linux host running Ubuntu, CentOS, Fedora or RHEL with additional Linux OS support planned.
Fli should be installed on any host on which you want to snapshot a Docker data volume or on which you want to download a Docker data volume stored on FlockerHub.
You can download Fli as a Docker container using
docker run fli or by downloading the binary (both available November 8, 2016)
Volume sets, branches and snapshots
Fli lets you manage your data as a collection of snapshots. These snapshots can be organized in collections of branches and volume sets.
A volume set is the highest level collection of snapshots. This collection can be further divided into branches. While a branch represents the lineage of a specific volume snapshotted overtime, a volume set is an arbitrary grouping that you define.
For example, you could have a volume set with three branches for Local data, Staging data and Production data, or a volume set with three branches for Mongo data, Redis data or Cassandra data.
ZFS for incremental snapshots & push/pull
Fli relies on the open source ZFS file system to which ClusterHQ is an active contributor for taking incremental snapshots and pushing and pulling data to FlockerHub.
For this reason, you need ZFS installed on any host that is running Fli.
Ubuntu 16.04 comes with ZFS pre-installed, but if you are using CentOS, RHEL or Fedora you will need to install the ZFS kernel module using our instructions.
The Fli data and metadata model
A data volume includes data (the actual bits you are storing) and metadata (information about the bits such as arbitrary key-value pairs). Fli can be used to manage both of these separately. This means that you can specify for each push or pull whether you want to move the data itself, or just the metadata.
The reason you want to manage the data and the metadata separately is that if you have 100 data volumes stored on FlockerHub accounting for 100 GB, for example, you don't want to have to pull all the data just to get a list of the volumes.
Snapshot any Linux database, running on any infrastructure
Fli operates at the filesystem level, so it is agnostic of the database you are snapshotting. You can use Fli to snapshot any database that runs on Linux. You can also use Fli to snapshot your volumes no matter the infrastructure you run on.
Cloud, bare metal, colo. If you can install ZFS on your hosts, you can use Fli to snapshot your volumes and push/pull those volumes to FlockerHub.