Hi everyone,
Ceph is a distributed network file system designed to provide excellent
performance, reliability, and scalability with POSIX semantics. I
periodically see frustration on this list with the lack of a scalable GPL
distributed file system with sufficiently robust replication and failure
recovery to run on commodity hardware, and would like to think that--with
a little love--Ceph could fill that gap. Basic features include:
* POSIX semantics.
* Seamless scaling from a few nodes to many thousands.
* Gigabytes to petabytes.
* High availability and reliability. No single points of failure.
* N-way replication of all data across multiple nodes.
* Automatic rebalancing of data on node addition/removal to efficiently
utilize device resources.
* Easy deployment; most FS components are userspace daemons.
* Fuse-based client.
- Lightweight kernel client (in progress).
- Flexible snapshots on arbitrary subdirectories (soon)
- Quotas (soon)
- Strong security (planned)
(* = current features, - = coming soon)
In contrast to cluster filesystems like GFS, OCFS2, and GPFS that rely on
symmetric access by all clients to shared block devices, Ceph separates
data and metadata management into independent server clusters, similar to
Lustre. Unlike Lustre, however, metadata and storage nodes run entirely
in userspace and require no special kernel support. Storage nodes utilize
either a raw block device or large image file to store data objects, or
can utilize an existing file system (XFS, etc.) for local object storage
(currently with weakened safety semantics). File data is striped across
storage nodes in large chunks to distribute workload and facilitate high
throughputs. When storage nodes fail, data is re-replicated in a
distributed fashion by the storage nodes themselves (with some
coordination from a cluster monitor), making the system extremely
efficient and scalable. Currently only n-way replication is supported,
although initial ...