删了 100GB,账单却没降:OBS 里那两处"看不见"的空间

举报
yd_224417480 发表于 2026/11/06 08:58:33 2026/11/06
【摘要】 上周帮人看一个 OBS 的账单:桶里的对象数从两万多降到三千多,删除操作执行得干干净净,可容量和费用几乎没动。查下来是两件事叠在一起——一件叫多版本控制,一件叫碎片。它们的共同点是:你删了东西,但它不是"对象",所以不出现在对象列表里,却照样占空间、照样计费。这篇把这两处讲清楚,也给出确认和清理的办法。一、开了多版本,删除只是"贴了张条"OBS 的桶有一个「多版本控制」开关。开着的时候,每次...

上周帮人看一个 OBS 的账单:桶里的对象数从两万多降到三千多,删除操作执行得干干净净,可容量和费用几乎没动。

查下来是两件事叠在一起——一件叫多版本控制,一件叫碎片。它们的共同点是:你删了东西,但它不是"对象",所以不出现在对象列表里,却照样占空间、照样计费。

这篇把这两处讲清楚,也给出确认和清理的办法。

一、开了多版本,删除只是"贴了张条"

OBS 的桶有一个「多版本控制」开关。开着的时候,每次覆盖上传都会留下旧版本,每次删除也不会真的抹掉数据,而是插入一个删除标记(Delete Marker)。

文件在你眼里消失了,原始数据还在桶里。计费按实际存储量算,所以该占的还占着。

版本 v1  report.xlsx   3MB   ← 还在
版本 v2  report.xlsx   4MB   ← 还在
删除标记  delete marker       ← 你以为删掉了,其实是加了这一条

看到这里应该能明白为什么会"删了不降":你删的是"当前可见版本",而占空间的是所有历史版本。

确认的方法很直接:进桶的对象列表,把"显示历史版本"打开。如果每个对象下面都挂着好几个版本,那就是这个原因。

清理有两条路:

  • 逐个指定版本删除。适合少量、明确的文件,注意别把要留的版本一起删掉。
  • 让生命周期规则管。配一条"历史版本在 N 天后过期删除",之后就不用再手动收拾。这是长期方案,配一次管很久。

需要提醒的是:多版本不是坑,它是用来防误删的——删错了能捞回来。真正的问题往往是开了之后没人管历史版本,于是它变成了一个只进不出的抽屉。

二、碎片:上传没完成,钱已经花了

第二处更隐蔽:分段上传产生的碎片。

大文件(尤其是通过 SDK、工具上传的)通常不是一次性传完,而是切成若干段上传,全部传完再合并成一个对象。如果中间失败、超时、程序被中断,那些已经传上去的段会留在桶里。

它们没有名字、不在对象列表里、也不对应任何一个"文件",但在 OBS 里确实存着,按存储量计费。这类残留数据在文档里就叫碎片。

上传 plan.mp4
  part 1 ✓  part 2 ✓  part 3 ✓   part 4 ✗ 中断
  → 没有合并成对象
  → part 1~3 变成碎片,占空间,看不见


确认方式:桶的管理页里有一个碎片入口(OBS Browser+ 里也有单独的"碎片管理"),能看到残留的分段上传任务和它们占用的空间。很多人的第一反应是"我桶里明明只有 3000 个对象",问题就在这——碎片不算对象。

清理同样是两条路:

  • 手动清理(删除后不可恢复,清理前先确认没有正在进行中的上传任务)。
  • 生命周期规则里配一条"碎片在 N 天后过期删除"。这条建议默认就配上:失败的上传没人会回来收拾,让它自动过期是最省心的。

三、为什么这两件事总被忽略

因为控制台的默认视图是"给人看的视图":只显示当前版本、只列对象。而计费看的是"实际占了多少字节"。

这两套口径之间,差着两样东西:历史版本、碎片。删对象这个动作,在默认视图里效果立竿见影,在计费口径上可能一点变化都没有。

还有一个放大器:批量删除脚本。跑一遍删几千个文件,看日志全成功,很容易就认定"已经清完了"。但如果桶开着多版本,脚本删掉的是当前版本,历史版本一个没动。

四、下次再遇到"删了不降",按这个顺序看

  1. 先看桶的多版本控制状态。开着的话,直接把对象列表切到"历史版本"视图,看总占用是不是主要压在旧版本上。
  2. 再看碎片。对象数很少、容量却很大,尤其是有过大文件上传失败的经历时,优先怀疑这里。
  3. 最后才怀疑缓存或统计延迟。OBS 的用量统计确实不是实时的,但通常不会差出一个数量级;如果差得离谱,多半是前两项。

顺手可以做的两件事:给历史版本配一条保留期(比如 30 天),给碎片配一条过期规则(比如 7 天)。这两条配完,桶就不会无声无息地长胖了。

收尾

对象存储里的"删除",跟本地磁盘上按 Delete 不是一回事。本地删文件是"把房间腾出来";对象存储删文件更像"在账本上再写一笔:这里没有了"——账本上的旧记录还在,也就还在按记录占的地方收费。

多版本和碎片,就是账本上最容易被忘掉的两类旧记录。它们不难处理,难的是想起来看一眼。

依据:华为云 OBS 用户指南中「多版本控制」(删除对象时插入删除标记,历史版本仍占用存储)与「清理碎片」(分段上传未完成产生的残留数据,支持手动清理与生命周期规则自动清理,删除不可恢复)两节;碎片与历史版本均按实际存储量计入存储费用。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。