ctrfs

module
v0.0.0-...-371cdc4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 15, 2021 License: Apache-2.0

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

Directories

Path Synopsis
cmd
ctrfs command
import command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL