Ceph - Distributed Object Store

  •        2684

Ceph provides seamless access to objects using native language bindings or radosgw, a REST interface that’s compatible with applications written for S3 and Swift. Ceph’s RADOS Block Device (RBD) provides access to block device images that are striped and replicated across the entire storage cluster. Ceph provides a POSIX-compliant network file system that aims for high performance, large data storage, and maximum compatibility with legacy applications.




Related Projects

Sheepdog - Distributed Storage System for QEMU

Sheepdog is a distributed object storage system for volume and container services and manages the disks and nodes intelligently. Sheepdog features ease of use, simplicity of code and can scale out to thousands of nodes. The block level volume abstraction can be attached to QEMU virtual machines and Linux SCSI Target and supports advanced volume management features such as snapshot, cloning, and thin provisioning.

ceph-ansible - Ansible playbooks for Ceph

Ansible playbooks for Ceph, the distributed filesystem.

ceph-deploy - Deploy Ceph with minimal infrastructure, using just SSH access

ceph-deploy is a way to deploy Ceph relying on just SSH access to the servers, sudo, and some Python. It runs fully on your workstation, requiring no servers, databases, or anything like that. If you set up and tear down Ceph clusters a lot, and want minimal extra bureaucracy, this is for you.

TomP2P - A P2P-based high performance key-value pair storage library

TomP2P is a P2P library and a distributed hash table (DHT) implementation which provides a decentralized key-value infrastructure for distributed applications. Each peer has a table that can be configured either to be disk-based or memory-based to store its values. TomP2P stores key-value pairs in a distributed manner. To find the peers to store the data in the distributed hash table, TomP2P uses an iterative routing to find the closest peers. Since TomP2P uses non-blocking communication, a future object is required to keep track of future results. This key concept is used for all the communication (iterative routing and DHT operations, such as storing a value on multiple peers) in TomP2P and it is also exposed in the API. Thus, an operation such as get or put will return immediately and the user can either block the operation to wait for the completion or add a listener that gets notified when the operation completes.

Disk-Arbitrator - A Mac OS X forensic utility which manages file system mounting in support of forensic procedures

Disk Arbitrator is a Mac OS X forensic utility designed to help the user ensure correct forensic procedures are followed during imaging of a disk device. Disk Arbitrator is essentially a user interface to the Disk Arbitration framework, which enables a program to participate in the management of block storage devices, including the automatic mounting of file systems. When enabled, Disk Arbitrator will block the mounting of file systems to avoid mounting as read-write and violating the integrity of the evidence. You can find links to compiled executables on the releases page.

SeqBox - A single file container/archive that can be reconstructed even after total loss of file system structures

An SBX container exists both as a normal file in a mounted file system, and as a collection of recognizable blocks at a lower level.SBX blocks have a size sub-multiple/equal to that of a sector, so they can survive any level of fragmentation. Each block have a minimal header that include a unique file identifier, block sequence number, checksum, version. Additional, non critical info/metadata are contained in block 0 (like name, file size, crypto-hash, other attributes, etc.).

ceph-container - Docker files and images to run Ceph in containers

Ceph-related Docker files. See README files in subdirectories for instructions on using containers.

Gluster Filesystem - Scalable Network Filesystem

Gluster is a software defined distributed storage that can scale to several petabytes. It provides interfaces for object, block and file storage. It is a distributed scale-out filesystem that allows rapid provisioning of additional storage based on your storage consumption needs. It incorporates automatic failover as a primary feature.

OpenStack - Software for building Private and Public Clouds

OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.

torus - Torus Distributed Storage

Torus is an open source project for distributed storage coordinated through etcd.Torus provides a resource pool and basic file primitives from a set of daemons running atop multiple nodes. These primitives are made consistent by being append-only and coordinated by etcd. From these primitives, a Torus server can support multiple types of volumes, the semantics of which can be broken into subprojects. It ships with a simple block-device volume plugin, but is extensible to more.

JMCAD - modeling of dynamic systems

JMCAD is an program for the modeling and simulation of complex dynamic systems. This includes the ability to construct and simulate block diagrams. The visual block diagram interface offers a simple method for constructing, modifying and maintaining complex system models. The simulation engine provides fast and accurate solutions for linear, nonlinear, continuous time, discrete time, time varying and hybrid system designs. With JMCAD, users can quickly develop software or "virtual" prototy

Software Differential Block Device

Diffdev (DIFFerential block DEVice) provides a transaction capable block device, being able to get back your old datas in case of data loss. Intended for human errors recovering, its use is transparent to filesystems and may be implemented easily

devio - block device read and write

devio: correctly read (or write) a region of a block device. A command line program to read correctly from mtd character (and other block) devices. devio allows access to specific regions of the device and allows output of data from specific locations.

Template for Stacked Block Device Driver

BDwrap is a template for writing stackable block device drivers on Linux. It's clean interface hides the complexity of device handling, asynchronous calls, buffer cache interaction, etc. It is a great tool to develop stacked block drivers quickly.

Memcached - distributed object caching system

Memcached is high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

SP Block File Types for Document Library

In nutshell this project allows SharePoint website managers to block file types at SharePoint document library level.

SeaweedFS - Simple and highly scalable distributed file system

SeaweedFS is a simple and highly scalable distributed file system. There are two objectives: to store billions of files! to serve the files fast! Instead of supporting full POSIX file system semantics, SeaweedFS choose to implement only a key~file mapping. Similar to the word "NoSQL", you can call it as "NoFS".

Network Block Device

Tools for the Linux Kernel's network block device, allowing you to use remote block devices over a TCP/IP network. Note that recent downloads are also available from github: http://github.com/yoe/nbd

calamari - Web-based monitoring and management for Ceph

Calamari is a management and monitoring service for Ceph, exposing a high level REST API. Check the mailing list archives for recent discussions of commonly encountered issues, and post your questions there. Check back here for more comprehensive guidance for end-users in the near future.

NSTimer-Blocks - Simple category on NSTimer to give it blocks capability.

Extremely simple category on NSTimer which makes it able to use blocks. I figure if you're using a block, you probably won't need to pass any userinfo object into the timer... you can get to whatever you need just from the block. So, I just hijack the +scheduledTimerWithTimeInterval:target:selector:userInfo:repeats: class method and it's brother -init..., setting it to use itself as the target, and to execute the class method +jdExecuteSimpleBlock: (which is part of the category) then pass the block you specify as the userInfo object which is then uses in the execute method. Pretty straightforward stuff.