TrueNAS — Vận hành và tra cứu
DOC PATH runbooks/truenas/operations
Checklist vận hành cùng lệnh kiểm tra storage, client, backup và integrity. Đọ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 và điều kiện vận hành
Mục có tiêu đề “Phạm vi và điều kiện vận hành”Kiểm tra định kỳ bốn lớp độc lập: storage health, service availability, client I/O và backup freshness. Runbook áp dụng cho baseline TrueNAS 25.10.6; không tự thay đổi task hoặc service trong bước kiểm tra.
Điều kiện và tác động
Mục có tiêu đề “Điều kiện và tác động”Có quyền đọc trạng thái TrueNAS/client và inventory được phê duyệt. Giữ kết quả kiểm tra tại nơi lưu trữ nội bộ vì output có thể chứa địa chỉ, share path và tài khoản.
Lệnh health/inventory chủ yếu chỉ đọc. Quét checksum file lớn, scrub, test I/O và kiểm thử outage làm tăng tải hoặc gây gián đoạn, chỉ chạy trong phạm vi đã cho phép.
Tra cứu nhanh cấu hình và lệnh cho baseline TrueNAS Community Edition 25.10.6. Quy trình thay đổi đầy đủ nằm ở Deployment/Runbook; trang này ưu tiên kiểm tra trạng thái.
Môi trường và quy ước
Mục có tiêu đề “Môi trường và quy ước”nas-host,<nas-ip>,<client-ip>, IQN, UUID, disk ID và mật khẩu đều là giá trị mẫu.- Tên pool/dataset lab được giữ nhất quán giữa các trang để dễ lần theo thao tác.
- Lệnh
zpool,zfs,midclt,smbstatuschạy trên TrueNAS;iscsiadm, mount và công cụ client chạy trên Ubuntu. - Query/API có thể khác theo version. Không in output chứa credential hoặc internal inventory ra nơi công khai.
- Không sửa trực tiếp generated configuration của TrueNAS; dùng UI/middleware phù hợp.
Storage health và cảnh báo hằng ngày
Mục có tiêu đề “Storage health và cảnh báo hằng ngày”Bắt đầu mỗi ngày với storage và alert, sau đó kiểm tra capacity, bản sao và truy cập client theo ba chương tiếp theo.
Storage và cảnh báo
Mục có tiêu đề “Storage và cảnh báo”Trên TrueNAS:
zpool list -o name,size,alloc,free,cap,frag,healthzpool status tankzpool status backupsudo midclt call alert.listsudo midclt call service.querysudo ss -lntpĐọc trạng thái từng member, các bộ đếm READ/WRITE/CKSUM, scan state và known data errors. Ưu tiên cảnh báo CRITICAL/ERROR/WARNING. Thông báo INFO về một lần replication thành công không xác nhận bản replica mới nhất còn đáp ứng RPO; cần kiểm tra thời điểm snapshot ở đích. Dismiss chỉ xác nhận đã xem, không xử lý nguyên nhân.
Pool và disk
Mục có tiêu đề “Pool và disk”Lệnh chỉ đọc; đối chiếu định danh thiết bị với inventory hiện tại, không tái sử dụng tên sdX/GUID từ host khác:
zpool list -o name,size,alloc,free,cap,frag,healthzpool status -v tankzpool status backupzpool events -vlsblk -d -o NAME,SIZE,HCTL,MODEL,SERIALls -l /dev/disk/by-path/| State / signal | Cách đọc |
|---|---|
| ONLINE | Đọc thêm member/scan/errors, không dừng ở tổng quan |
| FAULTED | ZFS đánh dấu lỗi thiết bị |
| OFFLINE | Trạng thái do thao tác quản trị |
| DEGRADED | Giảm redundancy, có thể vẫn I/O |
| READ/WRITE errors | Lỗi thực hiện I/O |
| CKSUM errors | Lỗi kiểm tra checksum |
| Resilver | Khôi phục dữ liệu member mới/out-of-date |
| Scrub | Kiểm tra integrity dữ liệu pool |
Giám sát và cảnh báo
Mục có tiêu đề “Giám sát và cảnh báo”Monitoring TrueNAS nên bao phủ pool/disk health, capacity, data protection job, trạng thái dịch vụ và khả năng truy cập từ client.
| Lớp | Câu hỏi cần trả lời |
|---|---|
| Pool / Disk | ONLINE? Có READ/WRITE/CKSUM error? Scrub gần nhất? Disk degraded? |
| Capacity | Pool bao nhiêu %? Dataset nào tăng nhanh? Snapshot/reservation chiếm gì? |
| Data Protection | Snapshot có mới? Replication gần nhất SUCCESS? Source/backup latest có khớp? |
| Services | SMB/NFS/iSCSI RUNNING? Port có listen? |
| Client | Mount/session tồn tại? I/O thực tế có hoạt động? |
Alert lifecycle
Mục có tiêu đề “Alert lifecycle”Alert có thể có các mức INFO, WARNING, ERROR hoặc CRITICAL tùy nguồn. Dismiss một alert chỉ thay đổi trạng thái hiển thị/acknowledgement; nó không sửa nguyên nhân bên dưới. Cần phân biệt acknowledgement với remediation.
Capacity, dataset và ZVOL
Mục có tiêu đề “Capacity, dataset và ZVOL”Dung lượng
Mục có tiêu đề “Dung lượng”zfs list -r tank -o name,used,avail,refer -S usedzfs get used,usedbydataset,usedbychildren,usedbysnapshots,usedbyrefreservation <dataset>zfs get quota,refquota,reservation,refreservation <dataset>zfs list -t snapshot -o name,used,refer,creation -r <dataset>Phân biệt pool ALLOC, dataset USED, snapshot retained blocks và reservation. ZVOL không sparse có thể giữ chỗ nhiều hơn lượng dữ liệu đang tham chiếu; kiểm tra refreservation trước khi kết luận rò rỉ dung lượng.
Đặt ngưỡng cảnh báo dựa trên tốc độ tăng dữ liệu, dung lượng còn lại và phần dự phòng cần cho snapshot/resilver. Theo dõi xu hướng qua nhiều lần đo thay vì chỉ đọc một giá trị phần trăm sử dụng.
Quản lý dung lượng
Mục có tiêu đề “Quản lý dung lượng”ZFS cần free space để hoạt động hiệu quả. Khi pool quá đầy, fragmentation và chi phí allocation tăng, snapshot/replication dễ gặp áp lực dung lượng và recovery trở nên khó hơn. Không nên coi 100% capacity là usable capacity.
Đọc capacity đúng cách
Mục có tiêu đề “Đọc capacity đúng cách”Quản trị viên nên xem cả pool-level và dataset-level. Pool cho biết physical allocation; dataset cho biết workload nào dùng dung lượng, snapshot giữ bao nhiêu và reservation chiếm bao nhiêu.
Dataset và ZVOL
Mục có tiêu đề “Dataset và ZVOL”zfs list -r tank -o name,used,avail,refer -S usedzfs get used,usedbydataset,usedbychildren,usedbysnapshots,usedbyrefreservation <dataset>zfs get quota,refquota,reservation,refreservation <dataset>zfs get volsize,volblocksize,refreservation,compression,sync tank/iscsi-lab3volsize là kích thước logic của ZVOL, volblocksize là kích thước block ZFS, còn Extent logical block size thuộc lớp iSCSI. refreservation giữ chỗ cho ZVOL không sparse. Pool ALLOC và dataset USED không có cùng ý nghĩa.
Snapshot, replication và integrity
Mục có tiêu đề “Snapshot, replication và integrity”Độ mới của bản sao
Mục có tiêu đề “Độ mới của bản sao”sudo midclt call pool.snapshottask.querysudo midclt call replication.queryzfs list -t snapshot -o name,creation -r tank/replication-lab6zfs list -t snapshot -o name,creation -r backup/replication-lab6zfs get readonly tank/replication-lab6 backup/replication-lab6Kiểm tra enabled, auto, schedule, last successful execution, latest snapshot hai phía và tuổi recovery point so với RPO. Không chỉ nhìn FINISHED/SUCCESS/PENDING.
Task Enabled nhưng auto=false và schedule=null không tạo lịch replication tự động. Đối chiếu chế độ chạy với chính sách bảo vệ dữ liệu trước khi thay đổi task.
Snapshot và replication
Mục có tiêu đề “Snapshot và replication”zfs list -t snapshot -o name,creation,used,refer -r <dataset>zfs get clones <dataset@snapshot>zfs get origin <clone-dataset>zfs get readonly,mountpoint tank/replication-lab6 backup/replication-lab6sudo midclt call pool.snapshottask.querysudo midclt call replication.query| Giá trị log/state | Ý nghĩa |
|---|---|
incremental_base=None |
Không có snapshot nền cho lần truyền này; đối chiếu chế độ full/incremental |
| Common snapshot làm base | Incremental lineage hợp lệ, cần đối chiếu job |
No snapshots to send |
Có thể đã đồng bộ; kiểm tra recovery point |
No incremental base |
Kiểm tra common snapshot và naming selection |
| SUCCESS / FINISHED | Kết quả job tại một thời điểm, không đảm bảo freshness |
| Readonly SET | Replica được đặt readonly |
| Readonly IGNORE + properties | Vẫn có thể nhận readonly=on từ source |
Kiểm tra toàn vẹn
Mục có tiêu đề “Kiểm tra toàn vẹn”sha256sum <file>sha256sum -c <baseline-outside-dataset.sha256>Tính checksum cần đọc toàn bộ file và có thể làm tăng I/O. Khi so sánh source với replica bằng manifest có đường dẫn tương đối, chạy lệnh từ đúng thư mục gốc của từng dataset. Manifest có đường dẫn tuyệt đối không tự chuyển sang path của replica.
So sánh checksum với bản tốt tương ứng thời điểm cần khôi phục. Với selective restore, kiểm tra thêm file không liên quan để phát hiện ghi đè ngoài phạm vi; với replica, đối chiếu cả snapshot và nội dung.
Dịch vụ, client và quyền truy cập
Mục có tiêu đề “Dịch vụ, client và quyền truy cập”Truy cập từ client
Mục có tiêu đề “Truy cập từ client”Trên Ubuntu:
nc -zv -w 3 nas-host 445nc -zv -w 3 nas-host 2049nc -zv -w 3 nas-host 3260findmnt /mnt/smb-lab4findmnt /mnt/truenas-nfsfindmnt /mnt/iscsi-lab3sudo iscsiadm -m session -P 3Sau khi xác nhận service/transport hoạt động, đọc file kiểm thử nhỏ bằng đúng identity; chỉ ghi file test mới nếu có phê duyệt. NFS dùng nfsuser, SMB dùng credential đúng vai trò.
Không khởi chạy nhiều lần ls/checksum trên hard mount đang treo. timeout không bảo đảm kết thúc tức thì process ở uninterruptible D-state; ưu tiên phục hồi service/network rồi theo dõi I/O.
Dịch vụ và quyền
Mục có tiêu đề “Dịch vụ và quyền”Trên TrueNAS:
sudo midclt call service.querysudo midclt call alert.listsudo midclt call sharing.nfs.querysudo midclt call sharing.smb.querysudo midclt call filesystem.getacl /mnt/tank/smb-lab4 false truesudo exportfs -vsudo smbstatussudo ss -lntpService IDs trong phiên bản này: cifs, nfs, iscsitarget. service.query khác với share Enabled; listener khác với ACL và client I/O.
Các query iSCSI đọc cấu hình, vẫn có thể chứa inventory nhạy cảm:
sudo midclt call iscsi.portal.querysudo midclt call iscsi.initiator.querysudo midclt call iscsi.target.querysudo midclt call iscsi.extent.querysudo midclt call iscsi.targetextent.queryKhông thêm query auth/credential vào một khối lệnh thu thập log công khai.
Kiểm tra client
Mục có tiêu đề “Kiểm tra client”nc -zv -w 3 nas-host 445nc -zv -w 3 nas-host 2049nc -zv -w 3 nas-host 3260findmnt /mnt/smb-lab4findmnt /mnt/truenas-nfsfindmnt /mnt/iscsi-lab3nfsstat -mid nfsusersudo iscsiadm -m session -P 3lsblk -fMount/session vẫn hiển thị không chứng minh data path hoạt động. Tránh kiểm tra file trên hard mount đang treo khi chưa xác định trạng thái service/network.
Dịch vụ và client
Mục có tiêu đề “Dịch vụ và client”Một service có thể RUNNING nhưng client vẫn lỗi do routing, firewall, DNS, authentication, ACL hoặc stale session. Ngược lại, mount/session entry có thể vẫn tồn tại sau khi service down.
Kiểm tra health đầy đủ:Server service state → Listening port → Share/target config → Network path → Client mount/session → Actual read/write testTriệu chứng khi dịch vụ gián đoạn
Mục có tiêu đề “Triệu chứng khi dịch vụ gián đoạn”| Protocol | Symptom điển hình | Điểm dễ hiểu nhầm |
|---|---|---|
| SMB | Host is down, timeout, reconnect | Mount có thể tồn tại nhưng I/O fail. |
| NFS hard mount | Process chờ/timeout cho tới khi server trở lại | findmnt vẫn thấy mount. |
| iSCSI | Session/device có thể vẫn hiện khi target tạm mất | Session entry ≠ data path usable. |
Bảo mật
Mục có tiêu đề “Bảo mật”Storage thường chứa dữ liệu quan trọng nên security phải được thiết kế cùng với availability. Các nguyên tắc cơ bản gồm least privilege, group-based access, hạn chế management exposure, cập nhật định kỳ, backup cấu hình và tách mạng khi cần.
- Dùng group để quản lý quyền thay vì cấp quyền rời rạc cho nhiều user.
- Không chia sẻ root/admin credential cho client workload.
- Giới hạn host/network được phép truy cập NFS/iSCSI khi có thể.
- CHAP cung cấp authentication cho iSCSI nhưng không thay thế network encryption.
- Bảo vệ SMB/NFS/iSCSI bằng firewall/VLAN phù hợp và tránh mở trực tiếp ra Internet.
- Backup cấu hình TrueNAS và bảo vệ secret seed/credential backup.
- Giữ replica backup readonly và kiểm soát quyền xóa snapshot/replication task.
Lịch kiểm tra và khả năng phục hồi
Mục có tiêu đề “Lịch kiểm tra và khả năng phục hồi”Kiểm tra hằng tuần
Mục có tiêu đề “Kiểm tra hằng tuần”- Snapshot age, retention, tăng trưởng dung lượng và common snapshot.
- Replication logs/error, destination readonly và lịch thực sự đang áp dụng.
- Scrub schedule, threshold và last scan result.
- Pool capacity/fragmentation trend, disk/SMART trên hardware thực.
- Autostart service và persistent mount/login sau maintenance.
- Effective ACL, tài khoản không còn sử dụng và phạm vi export/network.
Sẵn sàng phục hồi
Mục có tiêu đề “Sẵn sàng phục hồi”Định kỳ theo policy:
- Export configuration backup ra ngoài NAS; bảo vệ Secret Seed.
- Kiểm thử restore một phạm vi nhỏ hoặc clone/restore sang dataset mới.
- Kiểm tra checksum và ứng dụng, không chỉ job SUCCESS.
- Đối chiếu RPO/RTO với lịch và kết quả phục hồi đo được.
- Xác nhận bản backup nằm ở failure domain phù hợp; pool thứ hai trên cùng host chưa đủ chống mất host.
- Kiểm tra alert delivery và quy trình thay disk.
Kiểm thử gián đoạn
Mục có tiêu đề “Kiểm thử gián đoạn”| Protocol | Dấu hiệu khi mất dịch vụ | Kiểm tra sau khi phục hồi |
|---|---|---|
| SMB | TCP/445 mất, mount vẫn có thể hiện, I/O timeout/Host is down | Kiểm tra CIFS reconnect, checksum và khả năng ghi bằng đúng tài khoản |
| NFS | TCP/2049 refused, hard mount chờ/D-state | Theo dõi I/O tiếp tục; kiểm tra bằng đúng UID/GID |
| iSCSI | TCP/3260 refused, session/device có thể vẫn hiện | Kết nối LOGGED IN, mount lại sau planned unmount, checksum đạt |
Sau bài thử, trả cấu hình về chính sách đã xác nhận trước thay đổi. Không tự bật mọi task đang Disabled/manual vì chúng có thể được tắt có chủ đích.
Không dùng thời gian chờ của một lần thử làm timeout cam kết. Nếu dịch vụ không phục hồi, dừng bài thử và chuyển sang Lỗi storage và dịch vụ.
Backup cấu hình
Mục có tiêu đề “Backup cấu hình”Backup dữ liệu không chứa toàn bộ cấu hình hệ thống. Khi boot device hoặc bản cài TrueNAS bị lỗi, quản trị viên còn cần cấu hình user/group, share, service, network, scheduled task và các thiết lập khác. Vì vậy configuration backup phải được lưu bên ngoài NAS cần phục hồi.
Checklist vận hành
Mục có tiêu đề “Checklist vận hành”Hằng ngày
Mục có tiêu đề “Hằng ngày”- Xem alert mới, đặc biệt pool/disk/data protection.
- Kiểm tra pool health và capacity bất thường.
- Kiểm tra replication/backup job có thất bại hoặc stale.
Hằng tuần
Mục có tiêu đề “Hằng tuần”- Rà soát snapshot freshness và retention.
- Rà soát service availability và client issue.
- Kiểm tra tăng trưởng dung lượng theo dataset.
- Xác nhận các scheduled task còn enabled đúng policy.
Hằng tháng / định kỳ
Mục có tiêu đề “Hằng tháng / định kỳ”- Rà soát kết quả scrub và SMART/self-test.
- Kiểm thử restore từ snapshot/replica, không chỉ kiểm tra “job success”.
- Tải và lưu configuration backup ngoài NAS.
- Rà soát user/group/ACL và account không còn sử dụng.
- Rà soát RPO/RTO so với schedule snapshot/replication hiện tại.
Lệnh tra cứu nhanh
Mục có tiêu đề “Lệnh tra cứu nhanh”Lệnh tra cứu
Mục có tiêu đề “Lệnh tra cứu”Các lệnh dưới đây phục vụ quan sát/troubleshooting. Khi thực hiện thao tác thay đổi cấu hình trên TrueNAS, nên ưu tiên GUI hoặc middleware/API phù hợp thay vì chỉnh trực tiếp file hệ thống.
Chạy hai nhóm đầu trên TrueNAS SCALE với quyền phù hợp. Tên phương thức midclt có thể khác theo phiên bản; kiểm tra API của bản đang dùng nếu nhận lỗi phương thức không tồn tại. Thay <pool> và <dataset> bằng tên thực tế.
zpool listzpool statuszfs list -r <pool>zfs list -t snapshot -r <pool>zfs get readonly,quota,refquota,reservation,refreservation <dataset>ss -lntp | grep -E ":445|:2049|:3260"midclt call service.querymidclt call alert.listmidclt call pool.snapshottask.querymidclt call replication.queryNhóm dưới chạy trên client Linux. nc tạo kết nối kiểm tra tới dịch vụ; sha256sum đọc toàn bộ file nên có thể tăng I/O với file lớn. Các lệnh này không ghi dữ liệu, nhưng mount/session tồn tại chưa chứng minh ứng dụng đọc/ghi bình thường.
findmnt <mountpoint>mountpoint <mountpoint>nc -zv -w 3 <server> <port>iscsiadm -m sessionsha256sum <file>