How to use librados Interface in ceph
Editor to share with you how to use the librados interface in ceph, I believe most people do not know much about it, so share this article for your reference, I hope you will learn a lot after reading this article, let's learn about it!
Rados_getxattr gets object properties
Rados_getxattrs gets the list of object attributes
Rados_getxattrs_next reads values from the acquired list of object properties
Rados_getxattrs_end releases the pointer obtained by rados_getxattrs
Rados_setxattr sets the custom properties of an object
Rados_rmxattr deletes custom properties of an object
Rados_stat returns the time and size of the object
Rados_tmap_update
Rados_tmap_put
Rados_tmap_get
Rados_tmap_to_omap
Use the example
# include
# include
# include
Int main (int argc, const char * * argv)
{
Int ret = 0
/ *
* Errors are not checked to avoid pollution.
* After each Ceph operation:
* if (ret
< 0) error_condition * else success */ // Get cluster handle and connect to cluster std::string cluster_name("ceph"); std::string user_name("client.admin"); librados::Rados cluster ; cluster.init2(user_name.c_str(), cluster_name.c_str(), 0); cluster.conf_read_file("/etc/ceph/ceph.conf"); cluster.connect(); // IO context librados::IoCtx io_ctx ; std::string pool_name("data"); cluster.ioctx_create(pool_name.c_str(), io_ctx); // Write an object synchronously librados::bufferlist bl; std::string objectId("hw"); std::string objectContent("Hello World!"); bl.append(objectContent); io_ctx.write(objectId, bl, objectContent.size(), 0); // Add an xattr to the object. librados::bufferlist lang_bl; lang_bl.append("en_US"); io_ctx.setxattr(objectId, "lang", lang_bl); // Read the object back asynchronously librados::bufferlist read_buf; int read_len = 4194304; //Create I/O Completion. librados::AioCompletion *read_completion = librados::Rados::aio_create_completion(); //Send read request. io_ctx.aio_read(objectId, read_completion, &read_buf, read_len, 0 ); // Wait for the request to complete, and print content read_completion->Wait_for_complete ()
Read_completion- > get_return_value ()
Std::cout