「Ceph」- 概念术语:Pool,存储池

概述介绍

Pool 是存储对象的逻辑分区,Ceph Cluster 将数据对象存储在 Pool 中(逻辑分区),以实现不同数据的逻辑隔离;

管理员,能为特定类型的数据(例如块设备、对象网关)创建多个 Pool 实例,或使用 Pool 将一组用户与另一组用户分开;

客户端,当读取或写入数据时,总是连接到某个 Pool。Client 指定 Pool Name、用户和密钥,因此该池看起来像是一个逻辑分区,便于对数据对象进行访问控制;

相关概念

池类型

副本,通过数据复制来提供数据冗余;纠删码,通过校验码来确保数据冗余,类似 RAID-5 技术;
存储池类型定义了创建池时的数据持久化方法。存储池类型对客户端完全透明,客户端不需要关心

CRUSH 规则集

CRUSH 扮演着另一个重要角色,可用于检测故障域和性能域。CRUSH 可以按存储介质类型识别 OSD。CRUSH 使 OSD 能够跨故障域存储对象副本。例如,对象副本可能会存储在不同的服务器机房、机架和节点中。如果集群的很大一部分节点发生故障(例如机架),集群仍可以降级状态运行,直到集群恢复正常为止。此外,CRUSH 能够使客户端将数据写入特定类型的硬件,例如 SSD;

容量大小

参数 target_size_bytes 可以对存储池的容量进行硬限制,即限制存储池最大使用容量;

缓存分层(Cache Tiering)

缓存分层,通过将部分数据保存在缓存层(通常为更快的存储硬件),为 Ceph Client 提供更好的 IO 性能;

Writeback Mode

当客户端写数据时:
1)数据写到缓存层中,客户端就会立刻收到确认回复;
2)基于所配置的刷新 / 删除(flush/evict) 策略,数据从缓存层迁移到存储层,
3)最后被缓存分层代理〈cache-tiering agent) 从缓存层中删除;

当客户端执行读操作时:
1)数据通过缓存分层代理,先从存储层传输到缓存层,然后发送给客户端;
2)数据会保留在缓存层直到变为无效数据或冷数据;

writeback 模式的缓存层是用于可变数据,如图片或视频编辑、交易性数据等的理想模式;

Read-only Mode

在该模式下,写操作不会被它处理,而是直接存到后端的存储层;

当缓存分层被配置成 read-on1y 模式时,它只服务于客户端的读操作。当客户端执行读操作时,缓存分层代理从存储层复制请求数据到缓存层;
基于已经配置在缓存层上的策略,过期的 object 会从缓存层中被删除。这种方法适用于多个客户端读取相同的数据时,比如社交媒体内容;

不可变数据是 read-only 缓存层的理想备选方案;