TrueNAS — Snapshot, replication và backup
DOC PATH deployments/truenas/replication-backup
RPO/RTO, snapshot, replication, retention và kiểm thử backup. Đọc theo thứ tự các chương hoặc chọn mục cần tra cứu trong mục lục.
Điều kiện và chính sách bảo vệ dữ liệu
Mục có tiêu đề “Điều kiện và chính sách bảo vệ dữ liệu”Thiết lập local replication từ tank/replication-lab6 sang backup/replication-lab6, kiểm tra full replication, incremental replication, retention và khả năng tiếp tục đồng bộ sau restore.
Điều kiện và tác động
Mục có tiêu đề “Điều kiện và tác động”- Pool
tankhealthy, có dataset riêng để thử nghiệm. - Thêm disk trống khoảng 20 GiB cho pool
backup; xác nhận không phải boot disk, disk củatankhoặc ZVOLzd0. - Create Pool có thể làm mất dữ liệu disk được chọn; cần xác nhận đúng thiết bị trước thao tác.
- Có dung lượng cho snapshot, replica và restore; tạo lịch trong maintenance window.
- Tên task và dataset dưới đây là inventory lab mẫu, không phải cấu hình production bắt buộc.
RPO, RTO và mô hình 3-2-1
Mục có tiêu đề “RPO, RTO và mô hình 3-2-1”RPO (Recovery Point Objective) là lượng dữ liệu tối đa chấp nhận mất theo thời gian. RTO (Recovery Time Objective) là thời gian tối đa để khôi phục dịch vụ.
| Ví dụ | Diễn giải |
|---|---|
| RPO = 5 phút | Recovery point nên không cũ hơn khoảng 5 phút. |
| RTO = 30 phút | Dịch vụ phải phục hồi trong tối đa khoảng 30 phút. |
| Snapshot mỗi 5 phút | Có thể hỗ trợ RPO nhỏ nhưng không tự tạo offsite backup. |
| Replication mỗi giờ | Nếu source mất ngay trước lần replication kế tiếp, có thể mất gần 1 giờ dữ liệu. |
Nguyên tắc 3-2-1 yêu cầu ít nhất 3 bản dữ liệu, gồm dữ liệu đang sử dụng và 2 bản backup; lưu trên 2 loại storage media khác nhau, trong đó ít nhất 1 bản backup ở offsite (địa điểm khác). Một pool mirror và snapshot trong chính pool đó chưa đáp ứng nguyên tắc này. Xem hướng dẫn 3-2-1 của Veeam.
Chính sách backup
Mục có tiêu đề “Chính sách backup”- Để backup tự động, cấu hình cả snapshot task và điều kiện kích hoạt replication theo RPO. Task Enabled nhưng không có lịch hoặc chỉ chạy Run Now vẫn là vận hành thủ công.
- Giám sát tuổi recovery point, job error và chênh lệch source/destination.
- Kiểm thử restore và lưu config/secret seed ngoài NAS.
readonly=onhạn chế ghi nhầm vào replica, không thay thế immutable backup hoặc việc phân tách quyền quản trị.
Cơ chế replication và chuẩn bị đích
Mục có tiêu đề “Cơ chế replication và chuẩn bị đích”Replication và Backup
Mục có tiêu đề “Replication và Backup”ZFS replication truyền snapshot từ source sang destination. Lần đầu thường cần gửi đầy đủ snapshot; các lần sau có thể incremental nếu hai bên còn common snapshot.
Snapshot A (common) ↓ source thay đổiSnapshot B ↓ zfs send incremental A→BDestination nhận chỉ phần thay đổiCommon snapshot và incremental chain
Mục có tiêu đề “Common snapshot và incremental chain”Nếu source và destination không còn common snapshot phù hợp, incremental replication có thể thất bại hoặc phải bắt đầu lại từ đầu tùy policy. Vì vậy retention policy ở source và destination phải được thiết kế đồng bộ với RPO và dung lượng.
Read-only replica
Mục có tiêu đề “Read-only replica”Đặt destination readonly giúp giảm rủi ro user hoặc ứng dụng ghi nhầm lên bản backup. Khi disaster recovery, có thể restore sang dataset mới hoặc promote/cutover theo quy trình đã kiểm thử.
Backup freshness
Mục có tiêu đề “Backup freshness”Một task từng SUCCESS không chứng minh backup hiện tại còn mới. Quản trị viên phải kiểm tra tuổi snapshot, last successful run, source latest snapshot và destination latest snapshot.
Chuẩn bị đích backup
Mục có tiêu đề “Chuẩn bị đích backup”Tạo pool backup từ disk mới. Tạo dataset Generic tank/replication-lab6, LZ4, recordsize 128K, atime off, readonly off.
Trên TrueNAS, chỉ đọc:
zpool status tankzpool status backupzfs get compression,recordsize,atime,readonly tank/replication-lab6Chuẩn bị một bộ dữ liệu thử đại diện, gồm file nhỏ và file nhị phân. Lưu manifest SHA-256 ngoài source dataset và giữ thêm bản sao ở nơi độc lập. File thử phải có tên riêng, không ghi đè dữ liệu đang dùng.
Snapshot và tác vụ replication
Mục có tiêu đề “Snapshot và tác vụ replication”Snapshot định kỳ
Mục có tiêu đề “Snapshot định kỳ”Trong Data Protection → Periodic Snapshot Tasks:
| Trường | Cấu hình thử nghiệm |
|---|---|
| Dataset | tank/replication-lab6 |
| Recursive | False |
| Schedule | Mỗi 5 phút |
| Lifetime | 1 DAY |
| Naming schema | lab6-auto-%Y-%m-%d_%H-%M |
| Enabled | True để chạy theo lịch |
Đợi snapshot thực tế xuất hiện và kiểm tra nội dung/checksum. Snapshot tạo trước khi ứng dụng ghi thay đổi không thể chứa dữ liệu mới đó.
Tác vụ replication
Mục có tiêu đề “Tác vụ replication”Trong Data Protection → Replication Tasks:
| Trường | Cấu hình |
|---|---|
| Direction / Transport | PUSH / LOCAL |
| Source / Destination | tank/replication-lab6 → backup/replication-lab6 |
| Recursive | False |
| Snapshot selection | Khớp naming schema của snapshot task |
| Readonly policy | SET |
| Retention | SOURCE |
| Replicate from scratch | Không tự cho phép khi mất incremental base |
Lần đầu Run Now phải truyền full snapshot; log có incremental_base=None. Sau khi job hoàn tất, kiểm tra destination, snapshot và checksum theo manifest. readonly=on ở replica là trạng thái mong đợi.
zfs get readonly,compression,recordsize backup/replication-lab6zfs list -t snapshot -o name,creation,used,refer -r backup/replication-lab6Kiểm tra incremental và retention
Mục có tiêu đề “Kiểm tra incremental và retention”Kiểm tra incremental
Mục có tiêu đề “Kiểm tra incremental”- Thêm hoặc sửa file thử trong source, lưu checksum mới ngoài dataset.
- Chờ hoặc tạo snapshot đúng schema sau thay đổi.
- Chạy replication; kiểm tra
incremental_basetrỏ common snapshot. - Đối chiếu nội dung và checksum của các file đã thay đổi ở destination.
- Chạy lại khi không có snapshot mới có thể nhận
No snapshots to send; không coi đó là lỗi nếu recovery point đã đúng.
Snapshot lưu trạng thái dữ liệu tại thời điểm tạo và không tự nhận các thay đổi tiếp theo. Vì vậy, thứ tự kiểm tra phải là: ghi dữ liệu → tạo snapshot → replication → kiểm tra bản đích.
Đổi quy tắc đặt tên
Mục có tiêu đề “Đổi quy tắc đặt tên”Nếu lần truyền full dùng auto-* nhưng snapshot định kỳ đổi sang lab6-auto-*, bộ lọc chỉ nhận schema mới có thể loại common snapshot cũ và gây lỗi No incremental base.
Khi common snapshot cũ vẫn hợp lệ, cho phép cả hai schema trong giai đoạn chuyển đổi; kiểm tra lần truyền incremental thành công trước khi chỉ giữ schema mới. Không bật from-scratch hoặc xóa destination để vượt lỗi; xem Lỗi storage và dịch vụ.
Thời hạn lưu giữ
Mục có tiêu đề “Thời hạn lưu giữ”Retention SOURCE áp dụng chính sách lưu giữ snapshot của nguồn cho đích backup. Việc dọn snapshot ở nguồn có thể ảnh hưởng lịch sử phục hồi ở đích; cần giữ common snapshot phù hợp để tiếp tục incremental replication.
Kiểm thử phục hồi
Mục có tiêu đề “Kiểm thử phục hồi”Không cần xóa source để kiểm thử restore. Khôi phục replica sang dataset mới, đối chiếu dữ liệu/checksum, quyền và đường dẫn rồi mới cân nhắc chuyển workload. Xem Khôi phục dữ liệu.
Nếu dùng dataset phục hồi làm nguồn mới, kiểm tra common snapshot trước khi tiếp tục replication. Giữ replica chỉ đọc và kiểm tra bản đích sau lần truyền tiếp theo.