写时复制存储

几秒钟内克隆整套数据库

不到 30 秒即可得到一份包含真实数据的完整 PostgreSQL 副本。无需 dump、无需 restore,初始额外存储几乎为零。

为什么传统数据库克隆很痛苦

传统流程仍然是 pg_dump 加 pg_restore。小库还能接受,但一旦到生产级数据量,就会明显拖慢团队节奏。

100 GB 数据库使用 pg_dump / pg_restore 的典型现实

  • Dump 往往需要 30 到 60 分钟,并生成体积很大的归档文件。
  • Restore 还要再花 30 到 60 分钟,并且需要一整份额外磁盘拷贝。
  • 十个并行副本就可能意味着大约 1 TB 的额外存储。
  • 团队最终会退回到共享 staging,因为克隆太慢。

云快照恢复比 dump/restore 更好,但依然需要数分钟,而且仍然会生成完整磁盘副本。

写时复制克隆如何工作

Vela 在存储层进行克隆。源数据库和克隆最开始共享相同数据块,因此无需大规模复制。

只有当任一侧发生写入时,被修改的数据块才会单独存储。因此创建速度快,存储成本也只随真实变更增长。

  • 无论数据库大小如何,创建时间都几乎保持稳定。
  • 只读克隆几乎不占额外存储。
  • 写入彼此隔离,不会影响源库。
  • 删除克隆是即时操作。

即时克隆能带来什么

当克隆足够快、足够便宜、可随时丢弃时,很多流程才真正可落地。

迁移前验证

先在生产克隆上运行架构变更,再操作真实数据库。

  • 在真实数据上测试 ALTER TABLE
  • 更早发现约束问题
  • 评估迁移后的查询性能

压力与性能测试

直接基于生产规模数据做压测,而不是依赖伪造样本。

  • 保留真实数据分布与基数
  • 安全运行 EXPLAIN ANALYZE
  • 测试结束后直接丢弃克隆

开发环境

给每位工程师分配一份完整副本,而不是共享一个开发库。

  • 更接近生产的本地环境
  • 不再出现写入冲突
  • 创建和清理都很快

数据脱敏流水线

克隆生产库,在克隆上做脱敏,再安全共享处理后的数据。

  • 从完整生产数据出发
  • 在克隆内完成 PII 脱敏
  • 源数据库始终安全

不同克隆方式对比

项目 pg_dump / restore 云快照恢复 Vela CoW 克隆
创建时间(100 GB) 45-90 分钟 10-30 分钟 < 30 秒
每个克隆的额外存储 100 GB 完整副本 100 GB 完整副本 创建时几乎为零
十个并行克隆 ~1 TB 额外存储 ~1 TB 额外存储 在数据变化前几乎为零
可通过 API 自动化 仅 CLI 云 API REST API 与 UI

常见问题

Vela 为什么能这么快克隆 PostgreSQL?

Vela 在存储层使用写时复制。未变化的数据块会与源库共享,因此创建克隆时不需要完整数据传输。

数据库克隆和数据库分支有什么区别?

克隆是一份隔离副本。分支使用同样的底层机制,但会被纳入分支工作流和生命周期管理中。

一个克隆会占用多少存储?

创建时几乎不占额外空间。只有当克隆或源库分别修改数据块时,额外存储才会增长。

可以克隆正在运行的生产数据库吗?

可以。Vela 会创建一致性快照,无需暂停生产流量。

几秒钟内克隆数据库

直接在 sandbox 中体验写时复制克隆,无需提前搭建基础设施。