ceph pg, osd, pool 之间的一些查找方法2017年08月01日 14:58:44阅读数:326 pg, osd, pool 之间的一些查找方法。pg --> osd: 通过 pg 查找 osd.osd --> pg: 通过 osd 查找 pg.ceph pg ls-by-osd osd.{osdid}pg --> pool: 通过 pg 查找 pool.pool --> pg: 通过 pool 查找 pg.ceph pg ls-by-pool {poolname}ceph pg ls {poolid}
OSD MAP:包含当前所有Pool的状态和所有OSD的状态。locator = object_name obj_hash = hash(locator) pg = obj_hash % num_pg osds_for_pg = crush(pg) # returns a list of osds primary = osds_for_pg[0] replicas = osds_for_pg[1:]过了M秒之后,假如还是无法连接该OSD,则它被标记为out,Ceph会重新计算PG到OSD set的映射(当有新的OSD加入到集群时,也会重新计算所有PG到OSD set的映射),以此保证PG的有效副本数是N。
理解 OpenStack + Ceph (2):Ceph 的物理和逻辑结构 [Ceph Architecture](1)Ceph client 通过 CRUSH 算法计算出存放 object 的 PG 的 ID:客户端输入 pool ID 和 object ID (比如 pool = “liverpool” and object-id = “john”)ceph 对 object ID 做 hashceph 对该 hash 值取 PG 总数的模,得到 PG ID (比如 58)ceph 或者 pool ID (比如 “liverpool” = 4)ceph 将 pool ID 和 PG ID 组合在一起(比如 4.58)
ceph排除了这个瓶颈,cepp的OSD和ceph客户端都清楚知道集群架构,每个OSD都知道集群中其他的OSD。第一个OSD,osd.25作为Primary,如果该OSD失效后,第二个OSD,osd.32成为Primary,并且osd.25将从up set中移除。一旦ceph客户端将数据分割成条带单元并且将条带单元映射到object,ceph的CRUSH算法在object存储到磁盘文件之前,映射object到PG,PG映射到ceph OSD。ceph文件系统服务包含了与ceph存储集群一起部署的ceph元数据服务器。
CRUSH算法介绍。首先,select有2种操作方式:choose firstn: 深度优先选择出n个类型为t的子bucket,只到bucket为止chooseleaf: 先选择出n个类型为t的bucket,再在每个bucket下选择一个OSD设备。而在设置Placement Rule时,可以指定采用哪种bucket随机选择算法,即属于哪种bucket. 这里首先介绍一个重要的Hash函数,因为该函数在多个bucket选择算法中都用到了,但作用各不相同:hash(PG_ID, r, bucket_id)Bucket选择算法。
ceph工作原理和安装一、概述1. CRUSH算法。cd /ceph下载yum源,下载地址如下http://download.ceph.com/rpm-firefly/el6/noarch/在node1~4上把上面的网址设置为yum源yum install –y ceph到管理主机上的/ceph目录操作,创建一个新集群,并设置node1为mon节点ceph-deploy new node1执行完毕后,可以看到/ceph目录中生成了三个文件,其中有一个配置文件可以做各种参数优化,据说ceph的优化参数接近1000项。
另外一点ceph客户端读写数据直接与存储设备(osd) 交互。Rados集群是ceph的存储核心。如图,rados集群中分为以下角色:mdss、osds、mons. Osd 对象存储设备,可以理解为一块硬盘+osd 管理进程,负责接受客户端的读写、osd间数据检验(srub)、数据恢复(recovery)、心跳检测等。Mons 主要解决分布式系统的状态一致性问题,维护集群内节点关系图(mon-map osd-map mds-map pg-map)的一致性,包括osd的添加、删除的状态更新。# ceph -s.
[root@mon1 ~]# ceph osd pool set-quota pool1 max_objects 100 #最大100个对象set-quota max_objects = 100 for pool pool1[root@mon1 ~]# ceph osd pool set-quota pool1 max_bytes $((10 * 1024 * 1024 * 1024)) #容量大小最大为10Gset-quota max_bytes = 10737418240 for pool pool1 重命名POOL.[root@mon1 ~]# ceph osd pool mksnap pool2 pool2_snapcreated pool pool2 snap pool2_snap[root@mon1 ~]#删除快照。
(/etc/ceph/ceph.conf 或者 ~/.ceph/config 或者 ./ceph.conf)$stop ceph-all # 停止所有ceph进程$ceph-deploy uninstall [{ceph-node}] # 卸载所有ceph程序$ceph-deploy purge [[ceph-node} [{ceph-node}] #删除ceph相关的包$ceph-deploy purgedata {ceph-node} [{ceph-node}] # 删除ceph相关的包$ceph-deploy forgetkeys #删除key.$ceph osd pool get rbd size$ceph osd pool set rbd size 1$ceph osd pool set rbd min_size 1.
Pool, PG and CRUSH Config ReferencePOOL, placement 和CRUSH 配置手册Pool, PG and CRUSH Config Reference?# PG 数量计算方法:每个OSD推荐配置100个pg,每个pool写4副本,有10个osd,则pg数量 = 100 * 4 / 4.So for# 10 OSDs and osd pool default size = 4, we''d recommend approximately# (100 * 10) / 4 = 250.osd pool default pg num = 250osd pool default pgp num = 250.osd pool default pg num.
(3)PG -> OSD映射。如果这种算法是某种固定映射的哈希算法,则意味着一个object将被固定映射在一组OSD上,当其中一个或多个OSD损坏时,object无法被自动迁移至其他OSD上(因为映射函数不允许),当系统为了扩容新增了OSD时,object也无法被re-balance到新的OSD上(同样因为映射函数不允许)。这三个OSD具有各自不同的序号,序号最靠前的那个OSD就是这一组中的Primary OSD,而后两个则依次是Secondary OSD和Tertiary OSD。
分布式存储ceph——(6)ceph 讲解一、Ceph简介:Ceph可以提供对象存储、块设备存储和文件系统服务,其对象存储可以对接网盘(owncloud)应用业务等;3.文件系统存储:???? 通常意义是支持 POSIX 接口,它跟传统的文件系统如 Ext4 是一个类型的,但区别在于分布式存储提供了并行化的能力,如 Ceph 的 CephFS (CephFS是Ceph面向文件存储的接口),但是有时候又会把 GlusterFS ,HDFS 这种非POSIX接口的类文件存储接口归入此类。
1、`ceph osd tree` 查看osd【5,4,6】其中一个所在的节点2、`ssh ceph-nodeN`,进入该节点 #osd.5所在的node节点3、`df -h | grep -i ceph-5`找出该osd.5的物理存储位置 ,ceph-5是指osd.54、`cd /var/lib/ceph/osd/ceph-5/current`进入osd.5所在的物理存储文件夹5、`ls -l |grep -i 6.31`找出和PG(6.31)相关的文件夹6、`cd 6.31_head`进入该PG文件夹7、`ls -l `就可以看到我们存储的testobject数据的详细信息。
(1)、执行ceph-deploy install ceph01 ceph02 ceph03时报错。解决办法: 经过查询方知道是由于网络慢的原因导致的 可现在ceph02、ceph03节点安装上ceph.root@ceph01:/mnt/mycluster# ceph osd pool get rbd pg_numpg_num: 64.root@ceph01:/mnt/mycluster# ceph osd pool get rbd pgp_numpgp_num: 64root@ceph01:/mnt/mycluster# ceph osd pool set rbd pgp_num 128set pool 0 pgp_num to 128.
华云数据:Ceph的正确玩法之Ceph双副本如何保证宕机数据的安全性。华云数据本期“智汇华云”专栏将针对“Ceph的正确玩法之Ceph双副本如何保证宕机数据的安全性”技术,与大家共同分享云计算领域的最新技术与解决方案。ceph osd crushadd-bucket rack1 rack.ceph osd crushadd-bucket rack2 rack.# ceph osd crushmove rack1 root=default.# ceph osd crushmove node1 rack=rack1.# ceph osd crushmove node2 rack=rack2.