SDK for Ceph Object Classes

Ceph can be extended by creating shared object classes called Ceph ObjectClasses. The existing framework to build these object classes has dependencieson the internal functionality of Ceph, which restricts users to build objectclasses within the tree. The aim of this project is to create an independentobject class interface, which can be used to build object classes outside theCeph tree. This allows us to have two types of object classes, 1) those thathave in-tree dependencies and reside in the tree and 2) those that can make useof the Ceph Object Class SDK framework and can be built outside of the Ceph_tree because they do not depend on any internal implementation of _Ceph. Thisproject decouples object class development from Ceph and encourages creationand distribution of object classes as packages.

In order to demonstrate the use of this framework, we have provided an examplecalled cls_sdk, which is a very simple object class that makes use of theSDK framework. This object class resides in the src/cls directory.

Installing objclass.h

The object class interface that enables out-of-tree development of objectclasses resides in src/include/rados/ and gets installed with _Ceph_installation. After running make install, you should be able to see itin <prefix>/include/rados.

  1. ls /usr/local/include/rados

Using the SDK example

The cls_sdk object class resides in src/cls/sdk/. This gets built andloaded into Ceph, with the Ceph build process. You can run theceph_test_cls_sdk unittest, which resides in src/test/cls_sdk/,to test this class.