用户在使用对象存储(原生版)Ⅰ型中,可能会好奇使用过程中费用统计。本篇带大家了解下对象存储容量统计方式。
存储类型的分类:标准型、低频型、归档型。
对上述三种存储类型的计费标准也是各不相同。标准型为使用频率较高的一种,费用最高;低频型为使用频率相对较少的一种,费用次于标准型;归档型为使用频率极低的一种,长时间不使用的存储类型,费用最低。
容量统计方式:每隔一个小时,采集一次当前容量,出一条容量话单。
采集使用工具:admin sdk。每次采集均使用admin接口查询存储集群中某个桶的容量使用情况,使用admin接口不会产生请求流量,也就不会产生请求流量的费用。
使用过openAPI接口或者使用过控制台的用户,常会使用到get_bucket_info接口,其返回数据中某些字段的内容,便是我们计费使用的内容。
我们观察接口的返回字段,可以看到有这种特征的数据结构:
"usage": {
"rgw.main": {
"size": 0,
"size_actual": 0,
"size_utilized": 0,
"size_kb": 0,
"size_kb_actual": 0,
"size_kb_utilized": 0,
"num_objects": 0,
"num_multiparts": 0,
"earlydel_ia_size": 0,
"earlydel_glacier_size": 0,
"storage_type_standard": {
"size": 0,
"size_actual": 0,
"size_utilized": 0,
"size_kb": 0,
"size_kb_actual": 0,
"size_kb_utilized": 0,
"num_objects": 0,
"num_multiparts": 0
}
}
}
其中,num_objects为对象数量,即所有文件数量与碎片数量之和。num_multiparts为碎片数量,两者间的差值即可文件数量。
其中,size_utilized字段为容量统计字段,即实际使用容量。至于为何不使用size字段,是因为数据在存储时,都是划分为小块小块的数据块存储的,而每个小块都有固定大小。比如每个数据块大小为4M,有一份数据只有3M大小,它也会占用整个4M大小的数据块。因此实际使用的容量会比看到的容量大一些,也无需担心会因此过多计费,因为数据在存放过程中总是按数据块大小划分,而所有数据也是会对每一个数据块做补齐操作,最终误差也只会在一个数据块大小以内。
storage_type_standard字段下统计了标准型存储容量、storage_type_ia字段下统计了低频型存储容量、storage_type_glacier字段下统计了归档型存储容量。
交叉组合可以得出多个统计指标:标准型存储容量、标准型对象数量、低频型存储容量、低频型对象数量、归档型存储容量、归档型对象数量。