Ceph (software)
File:Ceph logo.png | |
Developer(s) | Sage Weil, Yehuda Sadeh Weinraub, Gregory Farnum |
---|---|
Stable release | 0.56.4 "Bobtail"
/ 25 March 2013 |
Repository | |
Operating system | Linux |
Type | Distributed object store |
License | LGPL |
Website | ceph.com |
Ceph is a free software unified storage platform designed to present object, block, and file storage from a single distributed cluster. Ceph's main goals are to be completely distributed without a single point of failure, scalable to the exabyte level, and freely-available. The data is seamlessly replicated, making it fault tolerant.[1]
Ceph is a software-based solution and runs on commodity hardware. The system is designed to be both self-healing and self-managing and strives to reduce both administrator and budget overhead.
Object Storage
The basis of the Ceph storage platform is a distributed object storage environment. Ceph’s software libraries provide client applications with direct access to the RADOS (Reliable Autonomic Distributed Object Store) object-based storage system, and also provide a foundation for some of Ceph’s advanced features, including RADOS Block Device (RBD), RADOS Gateway, and the Ceph File System.
Access to RADOS is provided by the librados software libraries and are available in C, C++, Java, Python and PHP. The RADOS Gateway also exposes the object store as a RESTful interface which can present as both native Amazon S3 and OpenStack Swift APIs.
Block Storage
Ceph’s object storage system allows users to mount Ceph as a thinly provisioned block device. When you write data to Ceph using a block device, Ceph automatically stripes and replicates the data across the cluster. Ceph’s RADOS Block Device (RBD) also integrates with Kernel Virtual Machines (KVMs).
Ceph RBD interfaces with the same Ceph object storage system that provides the librados interface and the Ceph FS file system, and it stores block device images as objects. Since RBD is built on top of librados, RBD inherits librados capabilites, including read-only snapshots and revert to snapshot. By striping images across the cluster, Ceph improves read access performance for large block device images.
File System
Ceph’s file system runs on top of the same object storage system that provides object storage and block device interfaces. The Ceph metadata server cluster provides a service that maps the directories and file names of the file system to objects stored within RADOS clusters. The metadata server cluster can expand or contract, and it can rebalance the file system dynamically to distribute data evenly among cluster hosts. This ensures high performance and prevents heavy loads on specific hosts within the cluster.
Clients mount the POSIX-compatible file system using a Linux kernel client. On March 19, 2010, Linus Torvalds merged the Ceph client for Linux kernel 2.6.34[2] which was released on May 16, 2010. An older FUSE-based client is also available. The servers run as regular Unix daemons.
History
Ceph was initially created by Sage Weil (developer of the Webring concept and co-founder of DreamHost) for his doctoral dissertation,[3] which was advised by Professor Scott A. Brandt in the Jack Baskin School of Engineering at the University of California, Santa Cruz and funded by the DOE/NNSA involving LLNL, LANL, and Sandia National Laboratories.
After his graduation in fall 2007, Weil continued to work on Ceph full time, and the core development team expanded to include Yehuda Sadeh Weinraub and Gregory Farnum. In 2012, Weil created Inktank to deliver professional services and support for Ceph.[4] The core development team has seen extensive growth after the launch of Inktank.
Argonaut Release
On July 3, 2012, the Ceph development team released Argonaut, the first major "stable" release of Ceph. This release will receive stability fixes and performance updates only, and new features will be scheduled for future releases.[5]
Bobtail Release
On January 1, 2013, the Ceph development team released Bobtail, the second major stable release of Ceph. This release focused primarily on stability, performance, and upgradability from the previous Argonaut stable series (v0.48.x).[6]
Design
Ceph employs four distinct kinds of daemons:
- Cluster monitors (ceph-mon), which keep track of active and failed cluster nodes.
- Metadata servers (ceph-mds) which store the metadata of inodes and directories.
- Object storage devices (ceph-osds) which actually store the content of files. Ideally, OSDs store their data on a local btrfs filesystem, though other local filesystems can be used instead.[7]
- RESTful Gateways (ceph-rgw), which expose the object storage layer as a RESTful interface that is natively compatible Amazon S3 or OpenStack Swift APIs.
All of these are fully distributed, and may run on the same set of servers. Clients directly interact with all of them.[8]
Ceph does striping of individual files across multiple nodes to achieve higher throughput, similarly to how RAID0 stripes partitions across multiple hard drives. Adaptive load balancing is supported whereby frequently accessed objects are replicated over more nodes.[9]
Etymology
The name "Ceph" is a common nickname given to pet octopuses and derives from cephalopods, a class of molluscs, and ultimately from Ancient Greek κεφαλή (ke-pha-LEE), meaning "head" and πόδι (PO-dhi), meaning "leg". The name (emphasized by the logo) suggests the highly parallel behavior of an octopus and was chosen to connect the file system with UCSC's mascot, a banana slug called "Sammy".[10] Banana slugs are gastropods which are also a class of molluscs.
See also
- Distributed file system
- List of file systems, the distributed parallel fault-tolerant file system section
- Fraunhofer Parallel File System (FhGFS)
- GlusterFS
- Lustre
- MooseFS
- Pvfs2
References
- ^ Jeremy Andrews (2007-11-15). "Ceph Distributed Network File System". KernelTrap.
- ^ Sage Weil (2010-02-19). "Client merged for 2.6.34". ceph.newdream.net.
- ^ Sage Weil (2007-12-01). "Ceph: Reliable, Scalable, and High-Performance Distributed Storage" (PDF). University of California, Santa Cruz.
- ^ Bryan Bogensberger (2012-05-03). "And It All Comes Together". Inktank Blog.
- ^ Sage Weil (2012-07-03). "v0.48 "Argonaut" Released". Ceph Blog.
- ^ Sage Weil (2013-01-01). "v0.56 Released". Ceph Blog.
- ^ "Btrfs - Ceph Wiki". Retrieved 2010-04-27.
- ^ Jake Edge (2007-11-14). "The Ceph filesystem". LWN.net.
- ^ "Ceph homepage". 2012-03-05.
- ^ "How the Banana Slug became UCSC's official mascot". Retrieved September 22, 2009.
Further reading
- M. Tim Jones (2010-05-04). "Ceph: A Linux petabyte-scale distributed file system". developerWorks > Linux > Technical library. Retrieved 2010-05-06.
- Jeffrey B. Layton (2010-04-20). "Ceph: The Distributed File System Creature from the Object Lagoon". Linux Magazine. Retrieved 2010-04-24.
- Carlos Maltzahn, Esteban Molina-Estolano, Amandeep Khurana, Alex J. Nelson, Scott A. Brandt, and Sage Weil (August 2010, Volume 35, Number 4). "Ceph as a scalable alternative to the Hadoop Distributed File System". ;login:. Retrieved 2012-03-09.
{{cite journal}}
: Check date values in:|date=
(help)CS1 maint: multiple names: authors list (link)
- Martin Loschwitz (April 24, 2012). "The RADOS Object Store and Ceph Filesystem". HPC ADMIN Magazine. Retrieved 2012-04-25.