TSF – Giải pháp IT toàn diện cho doanh nghiệp SMB | HCM

P7 - Giới Hạn Quota HomeFolder trên TrueNAS | User Quota

🚀 TrueNAS P7 – Cấu Hình Giới Hạn Quota HomeFolder trên TrueNAS (User Quota Setup Guide)

Trong môi trường SMB kết hợp Active Directory, việc kiểm soát dung lượng lưu trữ cho từng người dùng là cực kỳ quan trọng.

Bài viết này hướng dẫn bạn cách cấu hình Giới Hạn Quota HomeFolder trên TrueNAS bằng ZFS userquota một cách chuyên nghiệp và có thể mở rộng cho môi trường doanh nghiệp.

Trong bài này, bạn sẽ:

  • Hiểu rõ sự khác biệt giữa dataset quota và user quota

  • Xuất danh sách user từ Active Directory

  • Tạo file CSV phân bổ quota

  • Sử dụng Python script để tự động áp dụng quota

  • Kiểm tra, giám sát và xử lý lỗi thường gặp

Thiết lập quota đúng cách sẽ giúp tránh lỗi đầy ổ đĩa (disk full), đảm bảo hiệu năng hệ thống và quản lý dữ liệu người dùng hiệu quả.


🧠 Dataset Quota vs User Quota (Khái Niệm Quan Trọng)

Trước khi cấu hình Giới Hạn Quota HomeFolder trên TrueNAS, bạn cần phân biệt:

📦 Dataset Quota

  • Giới hạn toàn bộ dataset

  • Không phân biệt từng người dùng

  • Phù hợp kiểm soát tổng dung lượng

👤 User Quota (Khuyến nghị)

  • Áp dụng riêng cho từng user

  • Sử dụng ZFS userquota

  • Phù hợp môi trường SMB + Active Directory

  • Kiểm soát dung lượng chi tiết theo từng tài khoản

Trong hệ thống HomeFolder Domain User, User Quota là phương pháp chính xác và chuyên nghiệp nhất.


⚙️ Step 0: (Tùy chọn) Giới Hạn Tổng Dataset Homefolder

Bạn có thể đặt giới hạn dung lượng tổng cho dataset Homefolder.

Điều này giúp đảm bảo toàn bộ dataset không vượt quá mức quy định, ngay cả khi quota user bị cấu hình sai.

Bước này không bắt buộc nhưng rất khuyến nghị trong môi trường production.


🔎 Step 1: Lấy Danh Sách User HomeFolder từ Active Directory

Trên máy chủ AD, mở PowerShell và chạy lệnh:

💻
filename.bash
Get-ADUser -Filter * -Properties DistinguishedName |
Select-Object SamAccountName,
@{Name="OU";Expression={($_.DistinguishedName -replace '^CN=[^,]+,', '')}} |
Export-Csv "C:\ad_user_with_ou.csv" -NoTypeInformation -Encoding UTF8

Lệnh này sẽ:

  • Lấy toàn bộ domain user

  • Trích xuất OU

  • Xuất ra file CSV chuẩn UTF-8

Bạn có thể lọc theo phòng ban hoặc OU nếu cần phân bổ quota theo chính sách công ty.


📄 Step 2: Tạo File CSV Import Quota

Tạo file CSV với 2 cột:

 
 
username,quota_gib
 

Trong demo này:

  • Gán quota cho 2 user thông thường

  • User admin it01 không bị giới hạn

⚠ Lưu ý quan trọng:

  • File phải UTF-8

  • Không dùng dấu nháy

  • Phân cách bằng dấu phẩy

Ví dụ nội dung:

 
 
sale01,1
hr01,2
 

Copy file vào TrueNAS:

 
 
/home/admin/quota.csv
 

Kiểm tra file:

 
 
cat /home/admin/quota.csv
 

🐍 Step 3: Tạo Python Script Chuẩn Cho TrueNAS (set_quota.py)

Tạo file:

 
 
sudo nano /home/admin/set_quota.py
 

Toàn bộ nội dung:

 
💻
filename.bash
#!/usr/bin/env python3
import csv
import subprocess

# Dataset chứa Homefolder
DATASET = "volume1/Homefolder" # Name dataset apply

CSV_FILE = "/home/admin/quota.csv" # Link file quota.csv
DOMAIN = "TSF" # your domain

def gib_to_bytes(gib_value):
    return int(float(gib_value) * 1024**3)

with open(CSV_FILE) as f:
    reader = csv.DictReader(f)
    for row in reader:
        username = row["username"].strip()
        quota_gib = row["quota_gib"].strip()

        user_quota_bytes = gib_to_bytes(quota_gib)

        # user format: TSF\username
        zfs_user = f"{DOMAIN}\\{username}"

        # zfs command:
        cmd = [
            "zfs", "set",
            f"userquota@{zfs_user}={user_quota_bytes}",
            DATASET
        ]

        print("Running: ", " ".join(cmd))
        subprocess.run(cmd)

🔍 Script này làm gì?

  • Đọc danh sách user và quota từ CSV

  • Chuyển GiB sang byte

  • Áp dụng userquota cho từng user

  • Tự động hóa quá trình cấu hình hàng loạt

Giải pháp này cực kỳ phù hợp khi triển khai cho hàng chục hoặc hàng trăm user.


▶️ Step 4: Cấp Quyền và Chạy Script

Cấp quyền thực thi:

 
 
sudo chmod +x /home/admin/set_quota.py
 

Chạy script:

 
 
sudo /home/admin/set_quota.py
 

Hoàn tất ✅

Tất cả user trong file CSV đã được áp dụng giới hạn quota.


📊 Kiểm Tra Quota Sau Khi Thiết Lập

Kiểm tra quota đã gán:

 
 
zfs get userquota@TSF\\sale01 volume1/Homefolder
 

Kiểm tra dung lượng sử dụng:

 
 
zfs userspace volume1/Homefolder
 

Các lệnh này giúp:

  • Theo dõi dung lượng từng user

  • Phát hiện user gần chạm quota

  • Chủ động xử lý trước khi xảy ra lỗi đầy ổ đĩa


🛠 Xử Lý Lỗi Thường Gặp

Nếu quota không áp dụng:

✔ Kiểm tra đúng tên dataset
✔ Kiểm tra format domain: TSF\username
✔ Đảm bảo file CSV đúng UTF-8
✔ Xác nhận user tồn tại trong AD
✔ Kiểm tra tích hợp SMB + AD

Phần lớn lỗi do sai định dạng CSV hoặc sai cú pháp domain.


🏢 Chiến Lược Quota Khuyến Nghị Cho SMB + AD

Trong môi trường doanh nghiệp:

  • 1–2 GiB cho nhân viên phổ thông

  • 5–10 GiB cho quản lý

  • Không giới hạn cho IT admin

  • Giới hạn tổng dataset làm tầng bảo vệ thứ hai

  • Kiểm tra dung lượng định kỳ hàng tháng

Cấu hình Giới Hạn Quota HomeFolder trên TrueNAS đúng cách sẽ giúp:

  • Hệ thống ổn định

  • Dự đoán được tăng trưởng dung lượng

  • Tránh rủi ro gián đoạn dịch vụ

  • Quản lý dữ liệu tập trung và an toàn


🎯 Kết Luận

Việc triển khai Giới Hạn Quota HomeFolder trên TrueNAS là bước quan trọng trong quản trị hệ thống lưu trữ chuyên nghiệp.

Sau khi hoàn tất:

  • Mỗi user có giới hạn dung lượng rõ ràng

  • Ngăn chặn lạm dụng lưu trữ

  • Tránh lỗi disk full bất ngờ

  • IT admin kiểm soát hoàn toàn tài nguyên

Đây là cấu hình bắt buộc nếu bạn muốn xây dựng môi trường TrueNAS ổn định, bảo mật và sẵn sàng cho doanh nghiệp. 🚀

Tham khảo thêm bài viết cùng chủ đề

P21 – Hướng Dẫn Cài Đặt WordPress Trên TrueNAS Dễ Dàng

P21 – Hướng Dẫn Cài Đặt WordPress Trên TrueNAS Dễ Dàng 🚀 TrueNAS P21 – Demo TrueNAS Apps Cài Đặt WordPress Trên TrueNAS (Không Cần Docker) Việc cài đặt WordPress trên TrueNAS trước đây thường yêu cầu kiến thức về Docker, container hoặc cấu hình thủ công khá phức tạp....

Read More

P20 – Disk Scrubbing TrueNAS Bảo Vệ Dữ Liệu

P20 – Disk Scrubbing TrueNAS Bảo Vệ Dữ Liệu 🚀 TrueNAS – P20: ZFS Disk Scrubbing – Cấu Hình Từng Bước & Best Practices Duy trì tính toàn vẹn dữ liệu là một trong những nhiệm vụ quan trọng nhất của quản trị hệ thống lưu trữ. Ngay cả ổ...

Read More

P18 – Hướng Dẫn Tối Ưu Xác Thực MFA TrueNAS An Toàn

P18 – Hướng Dẫn Tối Ưu Xác Thực MFA TrueNAS An Toàn 🚀 TrueNAS – P18: Bảo Mật TrueNAS Với Xác Thực MFA (Google Authenticator) – Full Configuration Tutorial Bảo mật là yếu tố sống còn đối với bất kỳ hệ thống lưu trữ nào, đặc biệt là TrueNAS –...

Read More