Skip to content
/ ctrfs Public

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

License

Notifications You must be signed in to change notification settings

msg555/ctrfs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages