STORAGE PLANE / SP03 ACCEPTED

让 EC2 可以重建,让业务数据有明确归宿

这不是一份清理命令列表,而是全局存储资产注册表:每个路径必须说明数据类别、权威来源、Owner、容量预算、保留期、迁移目标和删除前置条件。

EC2 根卷 · 实时51.1%

130.69 / 255.93 GiB 已用

当前可用125.23 GiB

目标长期保持 100GiB以上

登记资产口径104.0 GiB

存在Docker/Gitea嵌套,不直接求和当磁盘总量

治理目标≤ 55%

登记资产目标约 66.2 GiB

SP02 / CAPACITY TELEMETRY

容量采集与阈值守卫

30 分钟读取一次文件系统元数据,保留最近 96 个趋势点;只读大小和状态,不读取文件内容、不采集密钥、不自动删除。最新线上回读:根卷 68%,已进入 WARNING,仍未触发自动清理。

NORMAL51.1%LIVE_COLLECTOR
快照新鲜度FRESH5 分钟前
资产采集11 / 12不完整采集会直接告警
超预算资产8预算越界不等于允许删除
当前告警9阈值只触发 HOLD / STOP
ROOT VOLUME TREND

最近 96 个容量点

MAX 87%
目标 ≤ 55%WARN 65%HOLD 75%INCIDENT 87%
ACTIVE SIGNALS

只读告警,不执行删除

JSON →
OVER_BUDGET

Developer Portal 历史发布 19.1GiB 超过 5GiB 预算

portal-releases
OVER_BUDGET

data-sources 素材 16.58GiB 超过 5GiB 预算

data-media
OVER_BUDGET

data-sources 原始快照 4.71GiB 超过 0.5GiB 预算

data-snapshots
OVER_BUDGET

data-sources SQLite 4.56GiB 超过 1.6GiB 预算

data-db
OVER_BUDGET

data-sources JSONL 事件 0.46GiB 超过 0.05GiB 预算

data-events
OVER_BUDGET

data-sources 本机备份 1.56GiB 超过 0.5GiB 预算

data-backups
PARTIAL

Gitea 在线状态 采集不完整

gitea-state
OVER_BUDGET

Gitea 本机旧备份 14.51GiB 超过 2GiB 预算

gitea-backups
LIVE ASSET BUDGETS

资产容量与预算读回

ip-172-31-19-46.ap-southeast-2.compute.internal
Developer Portal 历史发布portal-releases
19.1 GiB/ 5 GiB
OVER_BUDGET
data-sources 素材data-media
16.58 GiB/ 5 GiB
OVER_BUDGET
data-sources 原始快照data-snapshots
4.71 GiB/ 0.5 GiB
OVER_BUDGET
data-sources SQLitedata-db
4.56 GiB/ 1.6 GiB
OVER_BUDGET
data-sources JSONL 事件data-events
0.46 GiB/ 0.05 GiB
OVER_BUDGET
data-sources 本机备份data-backups
1.56 GiB/ 0.5 GiB
OVER_BUDGET
Gitea 在线状态gitea-state
0 GiB/ 35 GiB
PARTIAL
Gitea 本机旧备份gitea-backups
14.51 GiB/ 2 GiB
OVER_BUDGET
systemd journaljournal
0.73 GiB/ 1 GiB
WITHIN_BUDGET
Nginx 本地日志nginx-logs
1.05 GiB/ 0.5 GiB
OVER_BUDGET
Loki 热日志loki
1.49 GiB/ 3 GiB
WITHIN_BUDGET
Docker 全部状态docker-state
21.59 GiB/ 48 GiB
WITHIN_BUDGET
SP03 / SAFE RECLAIM RECEIPT

安全止血有执行回执,也有拒绝删除回执

可重建的发布制品和有 Loki 副本的主机日志已受控释放;没有对象存储与数据库对账的原始快照、业务素材保持拒绝删除。

portal-releasesEXECUTED_VERIFIED
删除 99 个历史版本约 31.1 GiB

current、previous、rollback、最近10个版本与node_modules供体已保留

OFFICIAL_PRUNER
journaldEXECUTED_VERIFIED
释放 3.84 GiB4.48 → 0.64 GiB

journald active、Loki ready、Alloy running

BOUNDED_RETENTION
raw-snapshotsEXECUTION_DENIED
15,463 个候选未删除对象存储引用 0

现有维护器只删除文件、不事务删除raw_snapshots行;必须等待SP07对象化与数据库对账

DRY_RUN_ONLY
business-mediaEXECUTION_DENIED
3,561 个素材未删除对象存储引用 0

等待SP04–SP06建立asset_id、S3 Version ID、SHA与数据库绑定

INVENTORY_ONLY
CURRENT TRUTH

空间不是因为 S3 失效,而是多个系统从未接入统一生命周期。

  • 正式资源服务器已连接 S3;2026-08-12T02:41:36Z 线上 /meta 已回读 miniapp_package + business_asset、business-asset-safe-v1 和 ec2_persistent_asset_bytes=false。data-sources PR #9 已合并且主干 CI 成功,但配置回读、SQLite 远端引用抽样和生产开关仍未验收。
  • data-sources 本地 16.57GiB 素材均没有 S3/R2 引用;其中 1,303 个上交所 PDF 占 15GiB且仍被业务文档引用。
  • journald、Nginx、Docker JSON 与 Loki 存在有意的发送缓冲副本,但本地保留期没有统一预算。
  • 任何业务素材删除都必须先取得远端版本、SHA 校验、数据库绑定和宽限期回读;按文件时间直接删除不合格。
读取治理账本 →
SP05 / REMOTE ASSET PLANE

新素材先进入资源服务,EC2 只保留处理缓存

线上 /meta 已回读 business_asset、business-asset-safe-v1 和 ec2_persistent_asset_bytes=false;data-sources PR #9 已合并且主干 CI 成功,但生产开关仍保持关闭,等待配置、SQLite 远端引用抽样和小流量回执。

已落地上传 + 完成回执

使用 HTTPS、Bearer 凭据、SHA-256、Content-Length 和 S3 Version ID;失败时不留下半成功本地事实。

已落地远端引用表

media_asset_remote_refs 记录 Asset、Upload、对象键、版本、摘要和同步状态,可用于对账与回滚。

当前阻塞生产切换未验收

资源能力已经在线,但配置回读、media_asset_remote_refs 抽样和真实小流量上传回执仍缺失;因此不打开 remote_media.enabled,也不删除历史本地素材。

ASSET REGISTER

全局存储资产注册表

数字来自 EC2 只读盘点;C02 资源边界回执、线上 /meta 能力和生产开关状态见机器回执。嵌套容量明确标注,不用简单相加制造错误总量。

资产 / 路径类别 / Owner当前 → 目标生命周期与删除门风险
EC2 根卷/AWS EBS
核心状态Platform不可直接重建
155.84 GiB→125 GiB系统盘只保留程序和短期缓冲
持续容量预算只允许由下级资产的受控清理释放256GiB 容量;Portal与journal止血后降至60.9%,约100.08GiB可用。
watch
Developer Portal 历史发布/opt/reits-developer-portal/releasesGitea SHA + release receipt
发布制品Developer Portal可重建
7 GiB→5 GiBEC2回滚集 + S3正式制品
最近10个正式版本官方 release prune 必须保留 current/previous/rollback/node_modules donor已删除99个退出回滚集合的版本,释放约31.1GiB;后续由官方prune维持受控回滚集。
watch
data-sources 素材/opt/data-sources/data/media文档关系 + 文件SHA
业务资产Data Platform不可直接重建
16.57 GiB→5 GiBreits-media → S3 业务资产桶
S3长期;本地校验后24小时必须先获得 reits-media asset_id、S3 Version ID、SHA与数据库回读3,561个本地文件;上交所PDF占15GiB,禁止直接删除。
critical
data-sources 原始快照/opt/data-sources/data/snapshotsraw_snapshots 索引 + body_hash
原始证据Data Platform可重建
2.16 GiB→0.5 GiBS3 数据归档桶
本地7天;S3 30–90天对象化、去重并回读 storage_ref 后按策略清理48,158个文件;当前30天规则可安全候选约0.67GiB。
high
data-sources SQLite/opt/data-sources/data/reits.local.dbSQLite WAL
核心状态Data Platform不可直接重建
2.4 GiB→1.6 GiB近期SQLite;达到门槛后独立PostgreSQL/RDS
业务长期;运行明细30天先备份恢复验证,再聚合旧运行明细并 VACUUM INTOcrawl_jobs 640.7MiB、run_events 262.7MiB、fetch_logs 175.7MiB。
high
data-sources JSONL 事件/opt/data-sources/data/crawl-events.jsonl兼容日志;run_events 为结构化事实
运行日志Data Platform可重建
0.24 GiB→0.05 GiBLoki热查 + S3审计归档
每日/100MiB轮转,本地2天先实现轮转,活动文件不得按mtime整文件删除持续追加导致现有按mtime保留策略永远不会过期。
high
data-sources 本机备份/opt/data-sources/backups恢复演练回执
备份Data Platform可重建
1.35 GiB→0.5 GiBS3 备份与灾备桶
本地最近2份S3版本化备份存在且完成恢复抽样当前维护器默认扫描 data/backups,实际路径没有进入生命周期。
high
Gitea 在线状态/var/lib/docker/volumes/gitea/_dataGit对象 + gitea.db
核心状态Developer Platform不可直接重建
29 GiB→35 GiB独立加密EBS + S3制品
仓库长期;Actions制品14天只能走Gitea生命周期或恢复验证后的数据库维护仓库约16GiB,数据库及应用状态约13GiB。
watch
Gitea 本机旧备份/home/ec2-user备份清单 + 恢复证明
备份Developer Platform可重建
14.7 GiB→2 GiBS3 备份与灾备桶
本地1次全量;S3日/周/月必须核验远端副本、摘要、加密Key和可恢复性包含9.6GiB tgz与5.1GiB备份目录。
critical
systemd journal/var/log/journal短期主机日志
运行日志SRE可重建
0.59 GiB→1 GiBLoki 14天
7天/最大1GiB变更前确认Loki/Alloy,执行后回读三项服务已安装SystemMaxUse=1G与MaxRetentionSec=7day,释放约4.13GB。
controlled
Nginx 本地日志/var/log/nginx边缘短期缓冲
运行日志SRE可重建
0.81 GiB→0.5 GiBLoki 14天;安全审计S3
3天/单文件100MiB确认Alloy游标与Loki可查询后缩短保留最近一天约0.48GiB,Info Portal成功请求占多数。
high
Loki 热日志/var/lib/docker/volumes/logging_loki-data/_data统一可搜索运行日志
运行日志SRE可重建
1.06 GiB→3 GiB本机热查;长期审计进入S3
14天由Loki compactor处理,不手工删除chunks当前 retention_period=14d 且 compactor 已启用。
controlled
Docker 镜像与构建缓存/var/lib/docker镜像摘要 + 部署清单
可重建缓存SRE可重建
28.15 GiB→12 GiB镜像仓库/可重建
活跃版本+2个回滚版本逐服务保留回滚摘要,禁止无审核 docker system prune -aDocker报告约24.55GiB镜像可回收;与Gitea卷不可重复相加。
critical

TARGET LAYERS

七类数据,七种明确归宿

业务原件、原始证据、缓存、日志、审计和备份不再共享同一种本地目录语义。

D0

事务数据

PostgreSQL / RDS

本地:不保存文件副本

保留:业务长期
D1

业务原件

reits-media → S3

本地:校验后24小时

保留:按业务与版权策略
D2

原始证据

S3 数据归档

本地:7天

保留:30–90天
D3

可重建缓存

独立缓存目录/卷

本地:硬上限5GiB

保留:7天
D4

运行日志

Loki

本地:发送缓冲

保留:14天
D5

安全审计

S3 审计前缀

本地:不长期留存

保留:180–365天
D6

备份

S3 版本化灾备

本地:最近1–2份

保留:日/周/月

CONTROL THRESHOLDS

阈值只控制风险,不自动删除业务数据

超过阈值时先停止可延迟工作和大制品发布,任何核心状态与业务资产仍需显式删除回执。

0155%normal
0265%warning
0375%holdLargeArtifacts
0482%stopDeferrableWork
0587%incident

12 EXECUTION PACKETS

存储专项实施账本

专项进度不改变 Portal 主账本;只有注册表、Schema、测试、部署与线上回读完成才记为已验收。

SP01

全局存储资产注册表

路径、Owner、类别、预算、保留与删除门统一入账

ACCEPTED
SP02

容量采集与阈值守卫

30分钟快照、96点趋势、65/75/82/87阈值和告警

ACCEPTED
SP03

安全止血

Portal释放31.1GiB、journal释放4.13GB;无远端引用的业务数据保持拒绝删除

ACCEPTED
SP04

资源服务器通用资产

线上 /meta 已证明 business_asset 能力;配置、数据库抽样和正式验收回执仍待补齐

ACTIVE
SP05

data-sources 上传适配

PR #9 已合并、主干与候选 CI 均成功;生产开关保持关闭,等待配置、远端引用抽样和小流量回执

ACTIVE
SP06

历史素材迁移

16.57GiB完成远端校验后释放本地副本

PLANNED
SP07

原始快照对象化

body_hash去重、7天本地与S3生命周期

PLANNED
SP08

数据库TTL与压缩

30天明细、年度汇总与可恢复压缩

PLANNED
SP09

日志收敛

本地日志总预算不超过4GiB

PLANNED
SP10

Gitea/CI/备份生命周期

制品与备份离开系统盘

PLANNED
SP11

恢复与RPO/RTO演练

每类状态有可回读恢复证明

PLANNED
SP12

存储治理总控工作台

人和AI共享实时容量与动作账本

PLANNED
NON-NEGOTIABLE

长期治理的五条禁止线

  1. 01禁止直接删除 data-sources/media 或开启 media_delete_disabled=false。
  2. 02禁止把 EC2 本机备份当成灾备完成。
  3. 03禁止无回滚清单执行 docker system prune -a。
  4. 04禁止把日志、业务事件和安全审计混成一套无限保留数据。
  5. 05禁止在没有远端版本与SHA回读时删除任何业务资产。