Đến nội dung chính
Infra Notes
DOCS / UTF-8
Reference // Tra cứu kỹ thuậttruenas

TrueNAS — Kiến trúc và nền tảng ZFS

DOC PATH reference/truenas/theory

Doc Type
Reference
Technology
truenas
Status
Active
Tags
truenasStoragezfsBackup

Topology TrueNAS, ZFS, pool, VDEV, dataset, ZVOL và lựa chọn thiết kế. Đọc theo thứ tự các chương hoặc chọn mục cần tra cứu trong mục lục.

Phạm vi: TrueNAS SCALE và ZFS, từ tổ chức lưu trữ đến chia sẻ dữ liệu, bảo vệ dữ liệu và vận hành. Các ví dụ giải thích cơ chế, không xác nhận trạng thái hoặc kết quả kiểm thử trên hệ thống của bạn.

TrueNAS là nền tảng Network Attached Storage (NAS) xây dựng trên filesystem ZFS. TrueNAS cung cấp giao diện quản trị, dịch vụ chia sẻ file và block, quản lý user và quyền truy cập, snapshot, replication, cảnh báo và nhiều cơ chế vận hành khác trên cùng một hệ thống.

TrueNAS SCALE sử dụng nền Linux và ZFS. Khi quản trị storage, cần hiểu đầy đủ các lớp bên dưới giao diện web: disk → VDEV → pool → dataset/ZVOL → protocol → client.

Khái niệm Vai trò
NAS Cung cấp dữ liệu qua mạng, thường ở mức file như SMB/NFS.
SAN / Block Storage Cung cấp block device qua mạng, điển hình iSCSI.
ZFS Filesystem + volume manager tích hợp, quản lý cả dữ liệu lẫn cấu trúc lưu trữ.
TrueNAS Nền tảng quản trị và cung cấp dịch vụ dựa trên ZFS.

TrueNAS cung cấp SMB, NFS và iSCSI trên cùng một pool ZFS, đồng thời giữ replica ở pool thứ hai. Mô hình này dùng để kiểm tra data path, phân quyền và khả năng phục hồi; chưa cung cấp HA hoặc backup off-site.

Architecture Diagram

System Flow

Open Diagram

Sơ đồ dùng nas-host, linux-client và management-network làm tên đại diện. Chọn Open Diagram để mở riêng toàn trình duyệt; sơ đồ nhận chế độ sáng/tối từ trang tài liệu. Các điểm sáng biểu diễn luồng kết nối; sơ đồ không kết nối tới monitoring.

Flow Ý nghĩa
1 — Quản trị Admin truy cập Web UI/SSH qua mạng quản lý
2 — Client I/O Ubuntu đọc/ghi qua SMB, NFS hoặc iSCSI; mỗi giao thức có quyền và data path riêng
3 — Snapshot / Clone Điểm phục hồi trong tank; rollback cần đánh giá dữ liệu mới sẽ bị ảnh hưởng
4 — Replication Truyền snapshot từ tank sang backup; lần đầu full, các lần sau có thể incremental khi có common snapshot
5 — Restore Khôi phục vào dataset mới trong tank, kiểm tra trước khi chuyển ứng dụng sang bản phục hồi
6 — Disk Recovery Thay đúng member lỗi, resilver rồi kiểm tra toàn vẹn; không phải luồng backup
7 — Operations Theo dõi pool, dịch vụ, cảnh báo, dung lượng và độ mới của replica

Số thứ tự dùng để chọn từng nhóm luồng, không biểu thị thứ tự bắt buộc thực hiện. Các panel storage và recovery thể hiện quan hệ logic, không phải sơ đồ đi dây vật lý.

Thành phần Cấu hình trong bài
TrueNAS Community Edition 25.10.6 — Goldeye, nền Linux/ZFS
Hypervisor VMware Workstation / VMware Virtual Platform
VM storage 2 vCPU, 8 GiB RAM, 1 NIC, boot disk 32 GiB
Data disk 4 × 10 GiB; thêm disk khoảng 20 GiB cho backup
Client Windows cho SMB cơ bản; Ubuntu 22.04.5 LTS cho NFS/SMB/iSCSI
Endpoint mẫu nas-host, linux-client; thay bằng DNS/IP thực tế

Cấu hình này mô tả cách tổ chức storage và dịch vụ trên TrueNAS 25.10.6. Khi thiết kế production, cần sizing lại CPU, RAM, dung lượng và khả năng chịu lỗi theo workload.

Lớp Vai trò Ranh giới cần giữ
Boot pool Chứa hệ điều hành TrueNAS Không chọn boot disk khi tạo data pool
Data pool tank Hai top-level Mirror VDEV, mỗi Mirror hai disk Mất cả hai member cùng Mirror có thể làm mất pool
Pool backup Một disk riêng, chứa replica Không có redundancy; vẫn cùng VM/host
Dataset File storage, ACL, snapshot, quota Tách theo workload, không share root pool
ZVOL Block storage cho iSCSI Filesystem ext4 nằm ở client
System Dataset Dữ liệu nội bộ phục vụ hệ thống Không đồng nhất với dữ liệu ứng dụng
Middleware Điều phối Web UI/API và cấu hình Ưu tiên quản trị qua UI/API phù hợp phiên bản

Với bốn disk 10 GiB chia thành hai Mirror, tổng dung lượng raw là 40 GiB nhưng phần dành cho dữ liệu chỉ xấp xỉ một nửa trước metadata và phần dự phòng của ZFS. Phân biệt dung lượng vật lý, dung lượng pool và dung lượng dataset có thể sử dụng.

Tài nguyên Mục đích Quyền / đặc điểm
tank/documents SMB cơ bản NFSv4 ACL, group lab-users có Modify
tank/nfs-data NFS POSIX 2001:2001, mode 770
tank/iscsi-lab3 ZVOL iSCSI 5 GiB Sparse OFF, volblocksize 16K
tank/smb-lab4 SMB phân vai trò Một user Modify, một user Read
tank/zfs-lab5 Thử snapshot/clone/rollback Dataset Generic riêng
tank/replication-lab6 Dữ liệu cần replication Writable
backup/replication-lab6 Replica Readonly
tank/lab7-recovery Integrity khi thay disk File trước lỗi và file ghi khi degraded

Tên dataset có hậu tố lab giúp nhận diện tài nguyên kiểm thử. Không tái sử dụng trên production nếu chưa xác nhận inventory.

DISKS
↓
VDEV(s)
↓
ZFS POOL
↓
DATASET / ZVOL
↓
SMB / NFS / iSCSI
↓
CLIENT / APPLICATION

VDEV là đơn vị cấu thành pool. Pool phân phối dữ liệu lên các VDEV. Dataset và ZVOL lấy dung lượng từ pool. Các protocol như SMB, NFS và iSCSI chỉ là lớp cung cấp dữ liệu cho client; chúng không thay thế cơ chế bảo vệ dữ liệu của ZFS.

ZFS không ghi đè trực tiếp block cũ khi dữ liệu thay đổi. Nó ghi block mới, cập nhật metadata mới, rồi chuyển tham chiếu sang cấu trúc mới. Block cũ vẫn có thể được snapshot giữ lại. Cơ chế này là nền tảng của snapshot nhanh, clone và tính nhất quán cao.

ZFS lưu checksum cho dữ liệu và metadata. Khi đọc, ZFS kiểm tra checksum để phát hiện data corruption. Nếu pool có redundancy và còn bản sao hợp lệ, ZFS có thể dùng bản sao đó để sửa block lỗi.

Các thay đổi được gom thành transaction group và commit theo chu kỳ. Điều này giúp ZFS duy trì tính nhất quán khi có crash hoặc mất điện, đồng thời giải thích vì sao một số lệnh sync/flush có ý nghĩa trong kiểm thử storage.

Metadata trong ZFS mô tả cấu trúc dataset, block pointer, checksum, snapshot và nhiều thông tin khác. Metadata hỏng có thể gây hậu quả nghiêm trọng, vì vậy redundancy, scrub và backup không chỉ dành cho file của user.

Pool là không gian lưu trữ logic được tạo từ một hoặc nhiều VDEV. ZFS stripe dữ liệu giữa các top-level VDEV, vì vậy khả năng chịu lỗi của pool phụ thuộc vào từng VDEV.

Mô hình Ưu điểm Nhược điểm / rủi ro
Single disk Đơn giản, dùng toàn bộ dung lượng Không có redundancy.
Mirror IOPS đọc tốt, rebuild đơn giản, chịu lỗi 1 disk mỗi mirror Hiệu suất dung lượng ~50% với 2-way mirror.
RAIDZ1 Dung lượng tốt hơn mirror Chỉ chịu lỗi 1 disk/vdev; rebuild lớn rủi ro hơn.
RAIDZ2 Chịu lỗi 2 disk/vdev, phù hợp dữ liệu quan trọng Mất nhiều capacity hơn RAIDZ1.
RAIDZ3 Chịu lỗi 3 disk/vdev Chi phí capacity cao; thường dành cho vdev lớn.

Mirror lưu nhiều bản sao của cùng block trên các disk trong VDEV. RAIDZ dùng parity để tái tạo dữ liệu khi một hoặc nhiều disk hỏng. Khả năng chịu lỗi phải được đánh giá ở cấp VDEV, không phải chỉ đếm tổng số disk trong pool.

Khi mở rộng pool bằng cách thêm top-level VDEV, pool bắt đầu phân bổ dữ liệu mới trên VDEV mới. Thiết kế VDEV ngay từ đầu ảnh hưởng lâu dài đến performance, capacity và failure domain.

Mirror/RAIDZ bảo vệ khỏi hỏng disk. Chúng không bảo vệ khỏi xóa nhầm file, ransomware, lỗi ứng dụng, rollback sai, phá hủy dataset hoặc sự cố toàn hệ thống. Snapshot và backup/replication giải quyết các lớp rủi ro khác.

Dataset là filesystem con bên trong pool. Mỗi dataset có thể có property riêng như compression, quota, recordsize, ACL, snapshot policy và mountpoint. Thiết kế dataset theo workload giúp dễ quản lý quyền, snapshot, backup và giới hạn dung lượng.

ZVOL là block device do ZFS cung cấp. Nó thường được dùng cho iSCSI, VM disk hoặc workload cần block storage. ZVOL không phải filesystem cho đến khi client tạo filesystem bên trên nó.

Thuộc tính Ý nghĩa thực tế
recordsize Kích thước record logic của dataset; ảnh hưởng workload file/database.
volblocksize Block size logic của ZVOL; nên cân nhắc trước khi ghi dữ liệu.
compression Nén dữ liệu trong ZFS; thường có lợi nếu dữ liệu nén được.
quota / refquota Giới hạn dung lượng dataset hoặc phần dữ liệu trực tiếp tham chiếu.
reservation / refreservation Đặt trước dung lượng; ZVOL có thể chiếm dung lượng đáng kể dù dữ liệu thực tế ít.
readonly Bảo vệ dataset khỏi ghi; hữu ích cho replica backup.
sync Điều khiển xử lý synchronous writes; không nên thay đổi tùy tiện để “tăng tốc”.

ZFS có nhiều cách biểu diễn dung lượng. USED của dataset có thể bao gồm dữ liệu con, snapshot, reservation hoặc refreservation. REFER là lượng dữ liệu dataset hiện tại tham chiếu. Vì vậy zpool ALLOC và zfs USED không nhất thiết bằng nhau.

Terminal window
zpool list
zfs list -S used
zfs get used,usedbydataset,usedbysnapshots,usedbychildren,usedbyrefreservation <dataset>

Đối chiếu kết quả với quota, reservation và dung lượng snapshot trước khi đưa ra thay đổi.

ARC là cache chính của ZFS trong RAM. L2ARC mở rộng read cache trên device có tốc độ cao. SLOG là device riêng lưu ZIL cho synchronous write; SLOG không phải write cache chung cho mọi dữ liệu. Special VDEV có thể chứa metadata và small block tùy cấu hình.

Thành phần Mục tiêu Lưu ý
ARC Read cache trong RAM RAM thường là tài nguyên cache quan trọng nhất của ZFS.
L2ARC Mở rộng read cache Không thay thế RAM; cần workload phù hợp.
ZIL / SLOG Bảo đảm synchronous write semantics SLOG nên có latency thấp và power-loss protection nếu dùng production.
Special VDEV Metadata/small blocks Nếu special vdev mất và không redundant, pool có thể bị ảnh hưởng nghiêm trọng.
Luồng Đường truy cập Identity / kiểm soát
SMB Client → TCP/445 → Samba → dataset Tài khoản SMB, group membership, NFSv4 ACL
NFS Linux → TCP/2049 → NFS export → dataset AUTH_SYS numeric UID/GID, host restriction, root squash
iSCSI Initiator → TCP/3260 → Target/LUN → Extent → ZVOL IQN, authorized network, CHAP
Replication Snapshot ở tank → LOCAL PUSH → backup Snapshot selection, common snapshot, retention
Quản trị Web UI/API → middleware → cấu hình dịch vụ Tài khoản quản trị và mạng quản lý

SMB/NFS cung cấp filesystem ở server. iSCSI cung cấp block device để client tự partition, format và mount. Không cho nhiều client ghi đồng thời lên cùng ext4 LUN như một shared filesystem.

Cấu hình trong bài dùng một NIC chung cho management và storage. nas-host và linux-client cần địa chỉ ổn định; xác nhận DNS, gateway, routing và thời gian trước khi cấu hình mount/export.

  • NFS chỉ cho phép client được xác định, không mở toàn subnet khi chỉ cần một host.
  • iSCSI giới hạn Initiator IQN và địa chỉ client /32; CHAP không mã hóa payload.
  • Listener có thể bind wildcard dù logical Portal chọn một IP. Kiểm tra listener, access control và firewall.
  • VLAN, LACP, MTU lớn, multipath và mạng dự phòng nằm ngoài phạm vi cấu hình này; cần thiết kế và kiểm thử riêng.

Snapshot mỗi 5 phút là lịch thử nghiệm, không tự đảm bảo RPO 5 phút ở backup. Dữ liệu chỉ có trong replica sau khi snapshot chứa thay đổi đã được truyền thành công.

  • Mirror để thực hành mất một member và resilver; không suy ra thời gian phục hồi production từ disk lab nhỏ.
  • Dataset riêng cho từng protocol để không trộn POSIX permission với SMB ACL.
  • Restore vào tên dataset mới để kiểm tra trước cutover.
  • Tách kiểm tra storage, service, client I/O và backup freshness; không kết luận hệ thống hoạt động tốt chỉ từ trạng thái ONLINE.
  • Backup cấu hình và dữ liệu là hai lớp độc lập; cần giữ cả hai ngoài hệ thống cần phục hồi.
Thuật ngữ Giải thích
ARC Adaptive Replacement Cache – cache đọc chính trong RAM của ZFS.
Checksum Giá trị kiểm tra integrity dữ liệu/metadata.
CoW Copy-on-Write – ghi block mới thay vì overwrite block cũ.
Dataset Filesystem logic trong ZFS pool.
Extent Backing storage được export qua iSCSI.
Initiator Máy/client kết nối tới iSCSI target.
LUN Logical Unit Number – ánh xạ block device trong target.
Pool Không gian lưu trữ ZFS tạo từ một hoặc nhiều VDEV.
RAIDZ Cơ chế parity RAID của ZFS.
Refreservation Dung lượng dành riêng cho dữ liệu dataset/ZVOL được tham chiếu trực tiếp.
Replication Sao chép snapshot ZFS giữa source và destination.
Resilver Tái tạo dữ liệu/redundancy lên disk sau replace/reconnect.
RPO Mức mất dữ liệu tối đa chấp nhận được tính theo thời gian.
RTO Thời gian tối đa chấp nhận để phục hồi dịch vụ.
Scrub Quét pool, kiểm tra checksum và sửa dữ liệu khi có redundancy.
Snapshot Trạng thái read-only của dataset/ZVOL tại thời điểm tạo.
SLOG Thiết bị riêng cho ZIL nhằm cải thiện synchronous write latency trong workload phù hợp.
Target Endpoint iSCSI cung cấp LUN cho initiator.
VDEV Virtual Device – đơn vị cấu thành ZFS pool.
ZVOL Block volume do ZFS cung cấp.

TrueNAS nên được hiểu như một hệ thống storage nhiều lớp thay vì chỉ là “một NAS có giao diện web”. Kiến thức quan trọng nhất là hiểu cách ZFS tổ chức disk và dữ liệu, phân biệt redundancy với backup, hiểu identity/permission của từng protocol, và xây dựng khả năng recovery có thể kiểm chứng.

Trạng thái ONLINE chỉ là một phần của đánh giá vận hành. Cần xác nhận dữ liệu toàn vẹn, recovery point đáp ứng RPO, service sẵn sàng, client truy cập được, còn headroom, alert được xử lý và quy trình restore đã được kiểm thử.

  1. Thiết lập storage — tạo pool, dataset và chia sẻ SMB cơ bản.
  2. SMB, NFS & iSCSI — cấu hình dịch vụ, quyền và kết nối từ client.
  3. Backup và replication — kiểm tra replica và điểm phục hồi.
  4. Khôi phục dữ liệu và thay disk — thực hành phục hồi có kiểm soát.