久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

ceph中librados接口怎么用

200次閱讀
沒有評論

共計 2744 個字符,預計需要花費 7 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下 ceph 中 librados 接口怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

 rados_getxattr 獲取對象屬性

 rados_getxattrs 獲取對象屬性列表

 rados_getxattrs_next 從獲取的對象屬性列表中讀取值

 rados_getxattrs_end 釋放 rados_getxattrs 獲取的指針

 rados_setxattr 設置對象的自定義屬性

 rados_rmxattr 刪除對象的自定義屬性

 rados_stat 返回對象的時間、大小

 rados_tmap_update

 rados_tmap_put

 rados_tmap_get

 rados_tmap_to_omap

使用示例

#include rados/librados.hpp
#include string
#include list
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   Object name:   objectId    \n
    Content:   read_buf.c_str()  std::endl ;

  // Read the xattr.
  librados::bufferlist lang_res;
  io_ctx.getxattr(objectId,  lang , lang_res);
  std::cout   Object xattr:   lang_res.c_str()  std::endl ;

  // Print the list of pools
  std::list std::string pools ;
  cluster.pool_list(pools);
  std::cout    List of pools from this cluster handle std::endl ;
  for (std::list std::string ::iterator i = pools.begin(); i != pools.end(); ++i)
  std::cout *i std::endl;
  // Print the list of objects
  librados::ObjectIterator oit=io_ctx.objects_begin();
  librados::ObjectIterator oet=io_ctx.objects_end();
  std::cout   List of objects from this pool std::endl ;
  for(; oit!= oet; oit++)  {
  std::cout    \t   oit- first  std::endl ;
  }

  // Remove the xattr
  io_ctx.rmxattr(objectId,  lang

  // Remove the object.
  io_ctx.remove(objectId);

  // Cleanup
  io_ctx.close();
  cluster.shutdown();

  return  0 ;
}

保存為 cephrados.cpp,編譯命令行如下

g++ cephrados.cpp -lrados -o cephrados

rados getxattr rbd.py lang -p data 顯示 data 池中對象 rbd.py 的擴展屬性 lang 的值

rados listxattr -p data rbd.py 顯示 data 池中對象 rbd.py 的擴展屬性, 如果沒有設置顯示為空

rados stat rbd.py -p data 顯示 data 池中對象 rbd.py 的大小、時間

以上是“ceph 中 librados 接口怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計2744字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 霸州市| 司法| 桂东县| 定南县| 南召县| 天水市| 修武县| 长武县| 吕梁市| 射阳县| 吴桥县| 博白县| 平乡县| 循化| 乐业县| 广灵县| 揭东县| 德化县| 清涧县| 禹州市| 特克斯县| 揭西县| 杂多县| 奇台县| 滕州市| 祁连县| 睢宁县| 南漳县| 平泉县| 孝感市| 丹棱县| 五台县| 遂平县| 建阳市| 南丰县| 定兴县| 巨野县| 于都县| 阜城县| 巴马| 裕民县|