ceph CRUSH Maps

CRUSH Maps

ceph通过CRUSH算法计算数据存储位置来确定如何存储和检索数据。 CRUSH使Ceph客户端可以直接与OSD通信,而无需通过集中式服务器或代理进行通信。 通过算法确定的存储和检索数据的方法,Ceph避免了单点故障,性能瓶颈以及对其可扩展性的物理限制。

对于ceph集群的一次读写操作,客户端首先与mon通信获取一个集群的map副本。集群map帮助客户端获取ceph集群的状态和配置信息。使用对象和池名/ID将数据转换为对象,然后将对象和PG经过散列来生成其在ceph池中最终存放的哪一个PG,再通过存放的PG进行CRUSH查找来确定存储或获取数据所需的主OSD的位置。得到OSD ID后,客户端直接与OSD通信进行数据读写。所有的计算操作由客户端来完成,因此不会影响集群的性能。一旦数据被写入主OSD,主OSD所在的节点将执行CRUSH查找操作并计算副本PG和OSD的位置进行数据复制,进而实现高可用性。

CRUSH 层级结构

CRUSH维护了所有基础设施组件的一个嵌套层次结构。CRUSH设备列表通常包括主机、机架、行等。这些组件称为故障域或CRUSH bucket。CRUSH map包含一系列可以bucket,这些bucket表明了设备的具体物理位置。它还包含了一系列的规则告诉CRUSH如何为不同的ceph池复制数据。

CRUSH map 定义了一系列用于描述节点的类型:

osd (or device)
host
chassis
rack
row
pdu
pod
room
datacenter
zone
region
root

层次结构中的每个节点(设备或bucket)都有与之关联的权重,权重设置在叶子上,指示设备的大小,默认节点的权重将是它下面包含的所有设备的总和。 通常,权重以TB为单位。

可以通过ceph osd crush tree查看层次结构

[root@ceph-admin ~]# ceph osd crush tree
INFO:cephadm:Inferring fsid 23db6d22-b1ce-11ea-b263-1e00940000dc
INFO:cephadm:Using recent ceph image ceph/ceph:v15
ID  CLASS  WEIGHT   TYPE NAME          
-1         0.29306  root default       
-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值