Ceph
From Ceph wiki
Ceph is a distributed file system designed for reliability, scalability, and performance. The storage system consists of some (potentially large) number of storage servers (bricks), a smaller set of metadata server daemons, and a few monitor daemons for managing cluster membership and state.
It is recommended that the storage daemons use btrfs for storing data and taking advantage of btrfs' internal transactions to keep the local data set in a consistent state. This makes the storage cluster simple to deploy, while providing scalability not currently available from block-based Linux cluster file systems.
Additionally, Ceph brings a few new things to Linux. Directory granularity snapshots allow users to create a read-only snapshot of any directory (and its nested contents) with 'mkdir .snap/my_snapshot'. Deletion is similarly trivial ('rmdir .snap/old_snapshot'). Ceph also maintains recursive accounting statistics on the number of nested files, directories, and file sizes for each directory, making it much easier for an administrator to manage usage.
In addition to a filesystem, Ceph exposes its distributed object store (RADOS) and it can be accessed via multiple interfaces:
- The RADOS Gateway: Swift and Amazon-S3 compatible RESTful interface
- librados and the related C/C++ bindings
- rbd, QEMU-RBD: linux kernel and QEMU block devices that stripe data across multiple objects
Contents |
Getting Ceph
- Release tarballs are available at http://ceph.newdream.net/download
- Checking out the source (server side)
- Getting kernel client source
- Debian packages (Also applies for Ubuntu)
- Red Hat Packages (todo)
- Fedora packages
Setting it up
For a normal installation:
- Designing a cluster
- Backend filesystem requirements
- Cluster configuration
- Creating a new file system
- Starting and stopping
- Mounting the file system
For a simple test environment (for development or simple testing):
- Simple test setup for development, etc.
Alternatively:
RADOS
Administration
- ceph.conf
- command line options
- Adjusting replication level
- Custom data placement with CRUSH
- Replacing a failed disk/OSD
- Monitor commands
- IPv6
- Snapshots
- Troubleshooting
- Handling a full cluster
- Memory Profiling
- Standby-replay modes
- cpu_profiling
- gceph
- Perfomance counters
Expanding your cluster
API
Misc
- Debugging
- Testing
- osd_auto_weight
- Running client in UML
- Re-exporting NFS
- Btrfs object store
- Wireshark plugin
- Using Hadoop with Ceph
- Messaging protocol notes
- OSD Watch operation
- Monitoring
- Git help!
- Developer Notes