Ceph相关

来源:互联网 发布:ubuntu启动不了wine 编辑:程序博客网 时间:2024/05/08 08:30
0、docker化ceph集群

在docker中搭建起ceph集群,detail

1、将CephRBD作为k8s存储卷

a)在ceph中创建块,然后作为k8s卷直接挂载。被挂在的容器需要能够作为客户端执行ceph操作  detail

       注意点:1、kubernetes的node几点上需要安装ceph-common。

                       2、注意k8s节点上Linux内核的版本,因为ceph-common作为client如果和ceph集群版本不同,会出现feature set  mismatch问题

b)kubernetes官网也有一个example,Install Ceph on the Kubernetes host(要求执行ceph的一些client操作)。
c)openshift(在k8s基础之上做了enhance的类k8s系统)上基本上个上述类似的ceph卷挂载操作,detail 
2、feature set mismatch

出现上述的特征不符合的时候,说明内核版本和ceph版本支持的特征不同,具体内核和ceph功能特征关联查看。

可以通过调低cephprofile版本来适应不同客户端Linux内核版本。

# ceph osd crush show-tunables -f json-pretty   (查看当前profile)

#ceph osd crush tunables hammer       (修改cephprofile版本,hammer是之前的版本,可选的值 legacy|argonaut|bobtail|firefly|hammer|jewel|optimal|default )

3、ceph基本操作

 摘自《Ceph cookbook》


4、ceph 客户端节点

首先得安装ceph-common(这部也可以通过ceph-deploy来安装),然后通过ceph-deploy来复制cephosd节点上的配置文件(用于ceph客户端使用)

也可以手动复制/etc/ceh下的一些配置文件到client上。


5、客户端访问集群的过程

不同于一般的元数据为中心的集群,ceph从monitor获取集群的节点信息(osd map、mon map、pg map、crush map,ruleset map),monitor通过paxos保证集群信息强一致性,然后通过获取到的osd、pg信息,最终通过CRUSH算法计算的到存储数据所在的osd。相较于metadata server(保存节点配置信息,并且要维护节点信息的动态变化,扩容缩容等),mon节点主要保存部分映射信息和作为认证服务器。原本需要通过metaServer查找计算过程,通过算法实现(有点类似于glusterfs,不过glusterfs完全把mon的部分也省略掉了,相应的客户端做了更多工作)。

pool 逻辑分区

pg(placement group)object逻辑集合

osd (object storage daemon) recommended number of PGs per OSD is 50 to 100, to avoid high resource utilization on the
OSD node


OSD CPU requirement(formula):
 ((CPU sockets * CPU cores per socket * CPU clock speed in GHz) / No.
Of OSD) >=1

Ceph配置项 

  ceph配置详解。该头文件定义了所有ceph的配置项 config_opts.h


Reference

http://www.cnblogs.com/bodhitree/category/734690.html
http://www.zphj1987.com/2016/06/07/rbd%E6%97%A0%E6%B3%95map-rbd-feature-disable/
http://calamari.readthedocs.io/en/latest/
http://docs.ceph.com/docs/master/rados/api/librados-intro/
https://github.com/ceph/rados-java
https://github.com/ceph/ceph-docker/blob/master/ceph-releases/jewel/ubuntu/14.04/base/Dockerfile

0 0