Ceph可进行操作简介

本文从Client,配置,API等方面简单总结了可以对ceph进行的操作。

##Client层功能

使用方式:

  1. 调用ceph命令
  2. 使用ceph-rest-api(包含大部分功能,但主要集中在对象网关)

支持操作:


  • 操作集群(各类进程的启动/关闭)
  • 监视集群
  • 监视OSD和PG
  • 认证

  • 增加/删除OSD
  • 增加/删除监视器
  • 命令帮助

  • 监视器故障排查
  • OSD故障排查
  • PG故障排查
  • 日志和调试
  • 性能分析

对象网关对S3 API的支持

RESTful API 兼容 S3支持多种语言以及使用http进行调用

主要支持的功能:

  • 对bucket的操作
  • 对Object的操作

##配置层功能(通过修改配置文件进行)

###网络配置

###验证配置

###监视器配置

  • HEARTBEATS等

###OSD配置

  • 日志,响应等方面的配置

###资源配置

  • 资源池配置
  • 存储硬件划分
  • crush rule配置(支持规定副本存储位置等)

###消息传递配置

##底层API(二次开发)

  • 支持C++、C、Python

接口主要分为五类:

  1. ceph集群句柄(rados client类的实例)的创建和销毁,配置,连接等,pool的创建和销毁,io上下文的创建和销毁等
  2. 快照相关接口,librados支持对于整个pool的快照,接口包括快照的创建和销毁,对象到快照版本的回滚,快照查询等等。
  3. 同步IO操作接口
    包括读,写,覆盖写,追加写,对象数据克隆,删,截断,获取和设置指定的扩展属性,批量获取扩展属性,迭代器遍历扩展属性,特殊键值对获取等等
  4. 异步IO操作接口
    包括异步读,异步写,异步覆盖写,异步追加写,异步删,librados还提供了对象的监视功能,通过rados_watch可以注册回调,当对象发生变化时会回调通知上层。
  5. io操作组原子操作
    即可以把对同一个对象的一系列io操作放到一个组里面,最后保证加入到组里的所有io操作保持原子性,要么全部成功,要么全部失败,而不会给用户呈现出文件系统不一致的问题。包括创建read或write操作组,销毁操作组,向操作组里添加其他io操作等等