Kiến Trúc Sao Lưu Hypertable Đa Terabyte Với pgBackRest & ZFS PITR
Hồ sơ TimescaleOps thay thế lệnh pg_dump chậm chạp trên kho TimescaleDB nhiều Terabyte bằng sao lưu khối song song pgBackRest kết hợp WAL PITR và ZFS.
Sao lưu logic bằng pg_dump trở nên quá tải khi kho dữ liệu cảm biến TimescaleDB vượt mốc 500 GB. Kết hợp sao lưu vật lý mức khối của pgBackRest với tính bất biến của các chunk đã nén cột và ZFS Snapshot giúp bảo vệ kho dữ liệu nhiều Terabyte hiệu quả.
| Quy Mô Luồng Mẫu | Chu Kỳ Chunk / Phân Vùng | RAM DDR5 Khuyến Nghị | Dung Lượng Ổ Đĩa Ước Tính | Cấu Hình Hạ Tầng Tham Chiếu |
|---|---|---|---|---|
| 300 GB DB + 14d PITR | 1d Chunks |
16 GB DDR5 | 640 GB Total Storage | InterServer KVM 16 Slices |
| 1.5 TB DB + 30d PITR | 6h Chunks |
32–64 GB DDR5 | 4 TB ZFS RaidZ / Mirror | InterServer Dedicated Ryzen |
| 5 TB DB + 60d PITR | 6h / 1h Chunks |
64 GB DDR5 | 12 TB Enterprise Storage | InterServer Storage Server |
| 12 TB DB + Audit Vault | 1h Chunks |
128 GB DDR5 | 20 TB Price-Lock ZFS | InterServer Bare-Metal 2x10TB |
[global]
repo1-path=/zfs-backup-vault/pgbackrest
repo1-retention-full=2
repo1-retention-diff=14
repo1-block=y
compress-type=zst
compress-level=3
process-max=6
archive-async=y
spool-path=/var/spool/pgbackrest
[timescale_prod]
pg1-path=/var/lib/postgresql/16/main
1. Đặc Tính Bất Biến Của Chunk Nén TimescaleDB Giúp Bản Backup Hàng Ngày Rất Nhẹ
Sau khi TimescaleDB nén các chunk quá hạn cửa sổ nóng, các tệp dữ liệu vật lý của chúng không còn bị ghi đè. Bật cờ repo1-block=y trong pgBackRest giúp trình sao lưu bỏ qua phần kho lịch sử không đổi và chỉ chép phần chunk nóng cùng nhật ký WAL mới.
2. Loại Bỏ Phí Băng Thông Egress Khi Diễn Tập Khôi Phục TimescaleDB Nhiều Terabyte
Tải khôi phục kho dữ liệu 6 TB qua mạng đám mây tính phí $0.09/GB sẽ tốn khoảng $540 băng thông mỗi lần diễn tập. Đặt kho sao lưu pgBackRest trên máy chủ lưu trữ ZFS trọn gói băng thông của InterServer giúp chi phí truyền tải diễn tập bằng $0.
3. Nhân Bản Môi Trường Kiểm Thử TimescaleDB Tức Thời Bằng ZFS Clone
Lệnh zfs snapshot và zfs clone tạo ra một bản sao cơ sở dữ liệu độc lập có thể ghi thử nghiệm trên kho lịch sử nhiều năm chỉ trong vài giây mà không nhân đôi dung lượng đĩa ban đầu.
Câu Hỏi Kỹ Thuật Về TS-07 // PGBACKREST-ZFS Trên TimescaleOps
Nếu pgBackRest đã bật nén zst thì tập dữ liệu ZFS chứa bản sao lưu nên đặt thế nào?
Chỉ nên đặt compression=lz4 nhẹ trên phân vùng ZFS chứa backup để không lãng phí CPU nén chồng hai lần lên tệp ZSTD.
Bao lâu nên diễn tập khôi phục thực tế PITR cho cơ sở dữ liệu TimescaleDB?
Nên tự động hóa lịch kiểm tra hàng tuần bằng cách khôi phục bản backup mới nhất ra một container độc lập và chạy hàm kiểm tra kích thước các chunk.
Thông số ZFS recordsize nào tối ưu cho PostgreSQL 16 và hypertable TimescaleDB?
Đặt recordsize=16K hoặc 32K cho phân vùng chứa chunk nóng chưa nén (khớp trang 8 KB của Postgres) và 128K cho tablespace lưu các chunk lạnh đã nén cột.