「Ceph」- 概念术语:Pool

  CREATED BY JENKINSBOT

纠删码

Ceph 中默认的数据保护机制是副本。事实证明这是最流行的数据保护方式。不过,副本的缺点是需要占用两倍的存储空间来提供宛余。举个例子,如果你计划用三副本搭建一个 1PB 可用容量的存储方案,那就需要为 1PB 的可用容量准备 3PB 的原始存储容量,也就是 200%,甚至更多。这种情况下,使用副本机制,会使每 GB 的存储费用大幅上升。对于一个小的集群,你可以忽略副本开销,但是在大环境中,这就不容忽视了;

从 Firefly 发行版本开始,Ceph 就已经推出了另一种被称为纠删码的数据保护方法。这种数据保护方法和副本方法大相径庭。这种方法将每个 object 划分成更小的数据块(chunk),每一块称为数据块(data chunk),再用编码块(coding chunk)对它们进行编码,最后将这些数据块存储到 Ceph 集群中的不同故障域中,从而保证数据安全。纠删码概念的核心在公式:n=k+m

缓存分层(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 缓存层的理想备选方案。