All Projects → varasys → corezfs

varasys / corezfs

Licence: Unlicense license
ZFS on Linux (ZoL) on CoreOS

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to corezfs

rpooler
A guided installation script for zfs rpools
Stars: ✭ 30 (+11.11%)
Mutual labels:  zfs, zfsonlinux
cstor
CAS Data Engine - User Space implementation of a popular COW Data Engine - ZFS
Stars: ✭ 47 (+74.07%)
Mutual labels:  zfs, zfsonlinux
docker-zfs-plugin
Docker volume plugin for creating persistent volumes as a dedicated zfs dataset.
Stars: ✭ 71 (+162.96%)
Mutual labels:  zfs, zfsonlinux
arch-config
Scripts and Ansible playbook to setup Arch Linux on ZFS.
Stars: ✭ 36 (+33.33%)
Mutual labels:  zfs, zfsonlinux
zfs-auto-mirror
Automatic ZFS dataset mirroring
Stars: ✭ 15 (-44.44%)
Mutual labels:  zfs, zfsonlinux
zfsbootmenu
ZFS Bootloader for root-on-ZFS systems with support for snapshots and native full disk encryption
Stars: ✭ 377 (+1296.3%)
Mutual labels:  zfs, zfsonlinux
abgleich
zfs sync tool
Stars: ✭ 22 (-18.52%)
Mutual labels:  zfs, zfsonlinux
Torcx Zfs
A torcx module for ZFS on CoreOS
Stars: ✭ 16 (-40.74%)
Mutual labels:  coreos
Terraform Aws Kubernetes
Install a Kubernetes cluster the CoreOS Tectonic Way: HA, self-hosted, RBAC, etcd Operator, and more
Stars: ✭ 118 (+337.04%)
Mutual labels:  coreos
Tack
Terraform module for creating Kubernetes cluster running on Container Linux by CoreOS in an AWS VPC
Stars: ✭ 734 (+2618.52%)
Mutual labels:  coreos
Kubernetes Vagrant Coreos Cluster
Kubernetes cluster (for testing purposes) made easy with Vagrant and CoreOS.
Stars: ✭ 598 (+2114.81%)
Mutual labels:  coreos
Terra Aws Core Kube
Terraform configuration to bootstrap a Kubernetes Cluster on top of CoreOS using AWS-EC2 instances
Stars: ✭ 10 (-62.96%)
Mutual labels:  coreos
Rust Etcd
An etcd client library for Rust.
Stars: ✭ 119 (+340.74%)
Mutual labels:  coreos
Deis
Deis v1, the CoreOS and Docker PaaS: Your PaaS. Your Rules.
Stars: ✭ 6,107 (+22518.52%)
Mutual labels:  coreos
zetaback
Zetaback is a thin-agent based ZFS backup tool. It is designed to help simplify the task of backing up thousands of filesystems on hundreds of machines across and organization. It simplifies the task of automatically picking up newly created ZFS filesystems for backup purposes and restoring any given backup (host/FS/timestamp) to a target ZFS ca…
Stars: ✭ 37 (+37.04%)
Mutual labels:  zfs
Container Linux Update Operator
A Kubernetes operator to manage updates of Container Linux by CoreOS
Stars: ✭ 208 (+670.37%)
Mutual labels:  coreos
Typhoon
Minimal and free Kubernetes distribution with Terraform
Stars: ✭ 1,397 (+5074.07%)
Mutual labels:  coreos
Tectonic Installer
Install a Kubernetes cluster the CoreOS Tectonic Way: HA, self-hosted, RBAC, etcd Operator, and more
Stars: ✭ 599 (+2118.52%)
Mutual labels:  coreos
Kovhernetes
Create Kubernetes clusters on the OVH Cloud platform
Stars: ✭ 55 (+103.7%)
Mutual labels:  coreos
Kube Linode
🐳 Provision a Kubernetes/CoreOS cluster on Linode
Stars: ✭ 207 (+666.67%)
Mutual labels:  coreos

corezfs

ZFS on CoreOS

This is a script to compile and install ZFS on CoreOS. It is meant to be installed on a fresh clean CoreOS instance. Although it can be run manually, it is envisioned that it is typically used as part of an automated provisioning process.

Installation

To build and install ZFS on Linux on CoreOS download the script to the target machine and run it with the install command:

sudo ./corezfs install

After the script completes zfs kernel modules should be loaded, and user tools installed.

The script will create an archive file which can be used to install zfs on other CoreOS instances without having to rebuild it on each instance. The archive filename will indicate which CoreOS version the archive file is targeted for.

To install zfs on another instance using the archive file, copy the corezfs script and archive file to the target machine and run:

sudo ./corezfs install

The script will automatically look for an archive file in the current directory with the target CoreOS version in the filename and install it if found, otherwise it will build a new archive file for the target system and install it.

Introduction

CoreOS is a light weight linux distribution designed specifically for running containers but does not currently come with support for ZFS. The idea is the only thing CoreOS does is coordinate containers and all work is performed inside containers. CoreOS is also very focused on reliability, clustering and federating with support for things like kubernetes baked in.

ZFS is a very performant filesystem that supports error checking, snapshots, clones, native nfs and cifs support, and incremental backups. The ZFS on Linux project is a port of OpenZFS for Linux.

Because the design philosophy of CoreOS is to be a minimal "container orchestration" tool, it is locked down very tightly and most of the file system is read only, which presents a problem for software which requires kernel modules (both because containers need special permissions to communicate with the kernel, and because the CoreOS kernel modules folder is read only).

This script downloads a CoreOS development environment and runs it in a container to build zfs and create the archive file. The archive file is a tar file containing an /etc/ directory containing zfs configuration information, and an /opt/corezfs/usr directory which is overlaid over the /usr filesystem and contains the kernel modules and binaries. A systemd unit file called zfs-overlay.service (included in the /etc/ directory of the archive file) mounts the overlay at startup.

This script was written on CoreOS stable (1465.7.0), but in theory, will work on any version / channel (ie. stable, beta, alpha). It installs the latest release of ZFS on Linux which is based on OpenZFS and consists of a repository zfs which includes the upstream OpenZFS implementation and a repository spl which is a shim to run OpenZFS on Linux.

Note that the script does not effect the filesystem that CoreOS is mounted on, it allows additional block devices to be mounted using the ZFS file system.

Hopefully this script will allow more people to experiment with ZFS on CoreOS to gain enough support that the CoreOS developers will bake it into CoreOS (note that this implementation does not gracefully handle updates to the CoreOS OS).

References

This script is adapted from the instructions from:

  1. https://coreos.com/os/docs/latest/kernel-modules.html
  2. https://github.com/zfsonlinux/zfs/wiki/Building-ZFS

Issues

  1. This should really be baked into CoreOS (so hopefully this script is just a temporary stop-gap solution until the CoreOS developers include ZFS support natively)
  2. It is uncertain whether the kernel drivers will continue to work after a CoreOS update, or whether the script needs to be re-run to re-build them (further support for why it should be baked into CoreOS). It is recommended to turn off CoreOS automatic updates to ensure that an automatic update does not result an incompatibility with the kernel drivers.

Using ZFS

There are some good resources for using zfs at:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].