An open API service indexing awesome lists of open source software.

https://github.com/msg555/ctrfs

ctrfs, Container File System, a file system specialized for storing and transmitting container images.
https://github.com/msg555/ctrfs

Last synced: about 2 months ago
JSON representation

ctrfs, Container File System, a file system specialized for storing and transmitting container images.

Awesome Lists containing this project

README

          

**Work in progress, simply using github to better track progress at the moment.**

### Goals

This project will aim to implement a file-level content-addressed backing store
that can be mounted, imported, exported, shared, and used as an additional
storage engine for container systems.

ctrfs is designed to be the engine for read/write container file systems. It is
specialized for containers by observing the following special requirements of
container images.

* There is a high degree of data duplication between layers of different images.
* Data is deduplicated at the block level across all layers/images
* Pushing/pulling to registry is done at the file level using content addressing with metadata stored separately
* Overlay copy-up can be slow on file systems that do not support reflinks (check/measure this)
* Persistent data structures are used and data is "copied-up" a single block at a time
* Only dirty blocks need to be written back to central storage on commit.
* Image building is the most common reason to write to the container layer.
* There is no journaling
* fsync calls are ignored by default
* All writes are asynchronous and written only to cache sychronously
* Important persistant data used by a container should be written to a separate volume
* ctrfs also fixes some compatibility issues
* Hardlinks work as expected after committing

Other notes
* Tree data will be content addressed
* Hardlinks are supported through special inode remapping structures