Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 磁盤配額實戰:新增硬盤分區、文件系統掛載與用戶/組限額全流程

編輯:Linux 教學

環境準備與軟件包

# RHEL/CentOS 確認安裝
rpm -q quota
# 未安裝則
yum install -y quota

# Debian/Ubuntu
apt-get install -y quota

硬盤分區與文件系統創建

# 1. 識別新硬盤 (假設 /dev/sdb)
lsblk
fdisk -l

# 2. 分區規劃 (示例:主分區 + 擴展分區 + 邏輯分區)
fdisk /dev/sdb
# n -> p -> 1 -> +20G   # 主分區 sdb1
# n -> e -> 2 -> Enter  # 擴展分區 sdb2 (佔用剩餘空間)
# n -> l -> +10G        # 邏輯分區 sdb5
# n -> l -> +10G        # 邏輯分區 sdb6
# w                     # 寫入分區表

# 3. 內核重讀分區表
partprobe /dev/sdb
# 或 reboot

# 4. 格式化為 ext4/xfs (支持配額)
mkfs.ext4 -L QUOTA_PART1 /dev/sdb1
mkfs.ext4 -L QUOTA_PART2 /dev/sdb5
mkfs.xfs -L QUOTA_PART3 /dev/sdb6  # XFS 專用配額工具不同

掛載配置與配額啟用

/etc/fstab 關鍵選項

# ext4 文件系統
/dev/sdb1  /quota1  ext4  defaults,rw,usrquota,grpquota  0  2
/dev/sdb5  /quota2  ext4  defaults,rw,usrquota,grpquota  0  2

# XFS 文件系統 (內建配額,掛載選項不同)
/dev/sdb6  /quota3  xfs   defaults,rw,uquota,gquota      0  2

# 掛載點預創建
mkdir -p /quota1 /quota2 /quota3

掛載與驗證

mount -a
# 或單獨掛載
mount /quota1

# 驗證掛載選項生效
mount | grep quota
# /dev/sdb1 on /quota1 type ext4 (rw,relatime,usrquota,grpquota)
# /dev/sdb6 on /quota3 type xfs (rw,relatime,uquota,gquota)

配額文件初始化

ext4: quotacheck 創建 aquota.user/group

# 掃描文件系統構建配額數據庫(需掛載後、業務低峰期)
quotacheck -cugm /quota1
quotacheck -cugm /quota2

# 參數解析:
# -c  創建新配額文件(不讀取舊)
# -u  用戶配額
# -g  組配額
# -m  不強制只讀掃描(允許讀寫,生產環境用)

# 驗證生成
ls -l /quota1/aquota.user /quota1/aquota.group
# -rw------- 1 root root 6144 Jan 1 00:00 aquota.user

XFS: 內建配額無需 quotacheck

# XFS 配額元數據在文件系統內部,掛載選項 uquota/gquota 即啟用
# 直接進入 edquota/xfs_quota 管理

用戶/組限額設置 (edquota / xfs_quota)

ext4: edquota 交互式編輯

# 為用戶 user1 設置配額
edquota -u user1

# 彈出編輯器(vi),修改 soft/hard 限制
# Filesystem  blocks  soft  hard  inodes  soft  hard
# /dev/sdb1   10240   500M  600M  100     500   600
# 說明:
# blocks  - 已用空間 (KB 為單位)
# soft    - 軟限制(可超過,寬限期內)
# hard    - 硬限制(絕對不可超過)
# inodes  - 已用文件數
# 建議:僅限制 blocks,inodes 通常設為 0 (不限制)

# 複製模板給多用戶
edquota -p user1 user2 user3 user4

# 組配額
edquota -g group1

XFS: xfs_quota 命令行管理

# 進入交互模式
xfs_quota -x -c 'limit bsoft=500m bhard=600m user1' /quota3
xfs_quota -x -c 'limit bsoft=1g bhard=1.2g group1' /quota3

# 批量設置
xfs_quota -x -c 'limit -u bsoft=500m bhard=600m user1 user2 user3' /quota3

# 查看報表
xfs_quota -x -c 'report -h' /quota3

啟用配額強制執行

# ext4
quotaon -avug
# /dev/sdb1 [/quota1]: user quotas turned on
# /dev/sdb1 [/quota1]: group quotas turned on

# XFS 已在掛載時啟用,可用 quotaon 確認
quotaon -avug

# 關閉配額
quotaoff -avug

寬限期設置

# ext4: 編輯寬限期 (默認 7 天)
edquota -t
# Time units may be: days, hours, minutes, seconds
# Filesystem  Block grace  Inode grace
# /dev/sdb1   3days        7days

# XFS
xfs_quota -x -c 'timer bsoft=3d' /quota3

驗證配額生效測試

# 切換到受限用戶
su - user1

# 測試寫入超過硬限制
dd if=/dev/zero of=/quota1/testfile bs=1M count=700
# dd: error writing '/quota1/testfile': Disk quota exceeded

# 查看當前使用情況
quota -v
# Disk quotas for user user1 (uid 1001):
#      Filesystem  blocks  quota  limit  grace  files  quota  limit  grace
#      /dev/sdb1   512000  512000 614400       100     0      0      0

配額管理最佳實踐原則

  1. 只限制空間不限制文件數:inode 限制極易導致應用報錯難排查
  2. Soft < Hard 原則:預留 10-20% 緩衝,避免業務突發中斷
  3. 限制值 > 當前使用量:設置前先 du -sh /quota1/user1 確認基線
  4. Root 用戶慎配配額:系統維護、日誌寫入、軟件更新均需 root 寫入權限
  5. 監控告警:腳本定期 repquota -a 推送至監控系統,觸及 80% Soft 限制告警
  6. 定期 quotacheck:ext4 建議每週維護窗口 quotacheck -avugm 同步實際使用量

常見故障排查

現象原因解決
quotaon: Cannot find quota file未運行 quotacheck 或掛載選項缺失檢查 fstab usrquota/grpquota → 重新 quotacheck -cugm
配額不生效文件系統不支持 / 掛載選項未生效mount | grep quota 確認;ext4 需內核 CONFIG_QUOTA=y
NFS 客戶端配額異常服務端/客戶端版本不匹配服務端啟用 rpc-rquotad;客戶端掛載選項 quota
XFS 配額報表為空未指定 -x 專家模式xfs_quota -x -c 'report' /mount
Copyright © Windows教程網 All Rights Reserved