Supported Operating Systems¶
Titan is designed to run on any system that supported docker, but there are some dependencies that limit the set of supported operation systems, especially on Linux.
To help understand why this is necessary, it helps to understand a bit about
the architecture of Titan. To make titan possible, there is a container
(titan-server
) running in the background that provides data versioning
capabilities on top of ZFS. This requires that ZFS
be installed on the host operating system, but because of how out-of-tree
kernel modules work, this needs to be done by the titan software (a
container named titan-launch
in particular). Titan attempts to provide
pre-built versions for common OSes, as well as a means to build them on the
fly for new versions, but there are limits to this system. If you are not
on a supported operating system, you may find titan install
taking
a long time to build binaries, or failing outright.
MacOS and Windows¶
MacOS and Windows operate in a similar fashion, with an embedded
HyperKit VM running Linux behind the
scenes. This VM runs LinuxKit.
Titan supports the latest Docker Desktop releases. If you are running a very
old distribution (for example, using the old boot2docker
framework on
Windows), you mileage may vary. You should update to the latest version of
Docker Desktop prior to using Titan.
Note
If a brand new Docker Desktop release comes out that ships with a new
LinuxKit kernel, it may take some time for the community to update the
pre-built packages for the newest versions. If you encounter titan
trying to build packags for a new ZFS kernel, head over to the
zfs-releases repository
and open an issue (or PR) with the new version and uname -a
output.
Note
Titan has not been tested and may or may not work with the new Docker for WSL. This will be addressed shortly, but in the meantime only traditional Docker Desktop is supported.
Linux¶
The situation with Linux is quite different. With Linux, there’s no standard Docker VM being provided by Docker Desktop. Instead, we’re running on whatever host VM you have. Because each distribution requires distro-specific mechanisms to download and install the right kernel files required to build ZFS, we have a much more limited support matrix. In addition, distros will often build specialized versions for different clouds (e.g. AWS, Azure, GCP), requiring specific builds for each of them. You’re much more likely to encounter an unsupported platform when running Titan on Linux, but the community tries to provide pre-built binaries for:
Ubuntu Bionic (18.04) and later
CentOS 7 and later
LinuxKit as used by Docker Desktop
If you are running one of these flavors and not finding pre-buit binaries available, it’s likely just a matter of updating the zfs-releases repository with the latest build information. If you are trying to use a different distribution alltogether, or are trying a new major version for the first time in the community, you may need to update the zfs-builder repository such that it knows how to build the new variant.
Note
If you are using an unsupported Linux version, you can always install ZFS yourself. Titan will use any installed ZFS, version 0.8.1 or later, and won’t attempt to install its own modules.