克隆
瞬间克隆
Piglet Run 支持 Copy-on-Write(写时复制)克隆,实现快速数据库分支。
工作原理
Copy-on-Write 意味着:
- 克隆时零拷贝
- 只有修改的块才消耗存储
- TB 级数据库毫秒级克隆
原始数据库
┌─────────────────────┐
│ Block A │ Block B │ Block C │
└────┬────┴────┬────┴────┬────┘
│ │ │
▼ ▼ ▼
┌────────────────────────────┐
│ 共享存储 │
└────────────────────────────┘
▲ ▲ ▲
│ │ │
┌────┴────┬────┴────┬────┴────┐
│ Block A │ Block B │ Block C │ (共享)
│ │ Block B'│ │ (克隆中修改)
└─────────┴─────────┴─────────┘
克隆数据库
使用场景
数据库克隆
使用 PostgreSQL 工具:
# 从模板创建数据库
pig pg psql -c "CREATE DATABASE dev TEMPLATE prod"
# 或使用 pg_dump/pg_restore 跨服务器克隆
pg_dump -Fc prod > prod.dump
pg_restore -d dev prod.dump
使用 pgBackRest 克隆
# 恢复到新集群作为克隆
pig pb restore --target-pgdata=/data/pg-clone
# 或恢复到特定时间点
pig pb restore -t "2025-01-29 10:00:00" --target-pgdata=/data/pg-clone
使用 JuiceFS 克隆文件系统
# 使用 JuiceFS 快照克隆目录
juicefs snapshot create /jfs/workspace ws-snapshot
juicefs snapshot restore /jfs/workspace-clone ws-snapshot
下一步