Ceph存储空间使用率统计数据解读

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Ceph存储空间使⽤率统计数据解读
Luminous Ceph 的存储空间使⽤统计
Luminous 时每个pool 的USED 是⽤户数据⼤⼩(未经过压缩前的,per-pool 的RAW USED也是未经压缩的考虑了副本数的数据⼤⼩),⽽GLOBAL 的RAW USED 是实际分配的硬盘空间⼤⼩(压缩后的)。

Sage: "The per-pool USED is the logical user data written (before compression). The RAW USED space is the actual on-disk space consumed (after compression). That's why they vary."
Luminous Ceph:
(3206+311)3=10551M < 22032M (GLOBAL RAW USED)
⼀般的,每个三副本pool USED3 = RAW USED
USED = sum.num_bytes
RGW USED = sum.num_bytes * raw_used_rate * curr_object_copies_rate,curr_object_copies_rate 是未降级副本率(<=1),raw_used_rate 相当于副本数。

⼀句话,luminous 的pool USED 结果是不合适的,USED 不应当作为⽤户对象数据的逻辑⼤⼩总和。

USED 应当是从硬盘实际占⽤考虑,N 版后per-pool ⽤户数据⼤⼩使⽤STORED 表⽰,USED 是实际空间分配的⼤⼩。

N版之后是通过store_stats 计算的,N版之前的pool USED 都是通过stats 计算的,
store_stats 的统计是BlueStore 做的,和OSD 的USED 统计是⼀致的。

⼀直以来GLOBAL USED 的计算是跟OSD ⼀致的,都是通过ObjectStore 层获取的。

因此GLOBAL USED 和OSDs USED 是可以对上的,但是和L 版的pool USED 是对不上的(通过stats 计算获取)。

object_stat_sum_t 是对象统计的汇总。

N 版后的改进
pr 后,ceph df 给出的集群和存储池空间统计出现重⼤变化,但是未backport ⾄L 版和M 版:
1. 【GLOBAL section】: USED 是所有block 设备上保存的对象数据之和(所有OSDs 之和),RAW USED 是包含USED 和在block 上的Ceph 软件系统⾃⾝的数据占⽤(如
BlueFS )。

2. 【POOLS section】:RAW USED 被删除了;USED 包含当前pool 在所有OSDs上空间分配使⽤⼤⼩,包含了副本、分配粒度、纠删码擦除、数据压缩和⼩对象数据空
洞,但不包含在block 上的Ceph 软件系统⾃⾝的数据占⽤(如BlueFS )。

STORED 是Ceph⽤户视⾓在pool 上存的数据⼤⼩,类似之前的USED,但是计算更精确了(包含了⽂件空洞,OMAP 占⽤)。

uint64_t get_used() const
{ return total - available - internally_reserved; }
// this accumulates both actually used and statfs's internally_reserved
uint64_t get_used_raw() const
{ return total - available; }
由上⾯的计算公式可知:used 肯定是不⼤于raw 的
BlueStore 的压缩:。

相关文档
最新文档