Ceph相关
0、docker化ceph集群在docker中搭建起ceph集群,detail1、将CephRBD作为k8s存储卷在ceph中创建块,然后作为k8s卷直接挂载。被挂在的容器需要能够作为客户端执行ceph操作(貌似) detail$ sudo docker run -d \--net=host \-v /var/lib/ceph:/var/lib/ceph \-v /etc/c
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) A 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)