磁盤配額的概述及管理
為什麼建立磁盤配額
在Linux根分區的磁盤空間耗盡時,Linux将無法再建立新的檔案(包括程式運作的臨時檔案),進而導緻服務程式崩潰,系統無法啟動等故障現象。
為了避免出現類似問題,可以設定啟用磁盤配額功能,對使用者在指定檔案系統(分區)中使用磁盤空間、檔案數量進行限制,以防止個别使用者惡意或無意間占用大量磁盤空間,進而保證系統存儲空間的穩定性和持續可用性。
使用磁盤配額的前提條件
設定磁盤配額,需要安裝 quota 軟體包,用于配置和管理磁盤配額,在RHEL 6中,系統預設安裝了 quota 軟體包。
磁盤配額的作用範圍
quota軟體設定的磁盤配額功能,隻在指定的檔案系統(分區)内有效,使用者使用其他未設定配額的檔案系統時,将不受限制。
磁盤配額的限制對象
quota 主要針對系統中的指定使用者賬号、組賬号進行限制,沒有被設定限額的使用者或組将不受影響。對組賬号設定配額後,組内所有成員使用的磁盤容量、檔案數量的總和不能超過限制。
磁盤配額的限制類型
# 磁盤容量:限制使用者能夠使用的磁盤空間的大小,預設機關為KB
# 檔案數量:限制使用者能夠使用的檔案個數
磁盤配額的限制方法
# 軟限制:指定一個軟性的配額數值(如100MB的磁盤空間、80個檔案),在固定的寬限期限(預設為七天)内允許超過這個限制,但系統會給出警告資訊
# 硬限制:指定一個硬性的配額數值(如120MB的磁盤空間、100個檔案),是絕對禁止使用者超過限制值,當達到硬限制值時,系統會給出警告資訊并禁止繼續寫入資料。硬限制的配額值應該大于軟限制值,否則軟限制将失效
實驗:
下面将上篇建立的 yang 邏輯卷 /dev/ysf/yang 挂載到 /mailbox 目錄下 ,然後在該檔案中配置實作磁盤配額功能。
1.以支援磁盤配額功能的方式挂載檔案系統
将usrquota, grpquota挂載參數寫入到“/etc/fstab”檔案中。
# chmod 777 /mailbox //為後續測試友善,允許任何使用者寫入資料
# vim /etc/fstab //修改 yang 邏輯卷的挂載配置
/dev/ysf/yang /mailbox ext4 defaules,usrquota,grpquota 0 0
2.檢測磁盤配額并生成配額檔案
使用 quotacheck 指令可以對指定的檔案系統進行磁盤配額檢測,也可以用來建立配額檔案,以便儲存使用者、組在該分區的配額設定
例如:執行以下操作将掃描系統中的所有檔案系統,并在支援配額的檔案系統中建立配額檔案
# quotacheck -augcv
-a 表示掃描所有分區,如果不使用,将必須指定一個分區或挂載點目錄作為指令參數
-u 表示檢測使用者配額資訊
-g 表示檢測組配額資訊
-c 表示建立新的配額檔案
-v 表示顯示指令執行過程中的細節資訊
# ls -l /mailbox/aquota.*
可以看到建立立的配置檔案,包括“aquota.user”、“aquota.group”,分别用于儲存使用者、組的配額設定,配置檔案儲存在該檔案系統根下,預設權限為600
3.編輯使用者群組賬号的配額設定
使用 edquota 指令結合 -u、-g 選項可用于編輯使用者群組的配額設定,(預設調用 vi 作為編輯程式),可設定磁盤容量、檔案大小的軟、硬限制數值。
例如:執行以下操作可以對使用者 zhangsan 的配額進行編輯
# edquota -u zhangsan
Filesystem blocks soft hard inodes soft hard
/dev/mapper/ysf-yang 0 0 0 0 0 0
Filesystem:表示本行配置記錄檔案對應的檔案系統(分區),即配額的作用範圍
blocks:表示使用者已使用的磁盤容量,預設機關為KB
inodes:表示使用者目前已擁有的檔案數量
soft:第3列對應為磁盤容量的軟限額數值,機關KB;第6列對應檔案數量軟限額數值,機關個
hard:第3列對應為磁盤容量的硬限額數值,機關KB;第6列對應檔案數量硬限額數值,機關個
例如:若要為 zhangsan 設定配額,磁盤容量軟限制為80MB、硬限制為100MB,檔案數量軟限制40個、硬限制40個,可執行以下操作
/dev/mapper/ysf-yang 0 80000 100000 0 40 50
可以設定軟限制的寬限期限,預設為7天,可以修改。
例如:可以将寬限期限改為10天。
# edquota -t
Filesystem Block grace period Inode grace period
/dev/mapper/ysf-yang 10days 10days
4.啟動檔案系統的磁盤配額功能
啟動和關閉檔案系統的磁盤配額功能分别使用 quotaon、quotaoff 指令執行,需要指定裝置檔案名或檔案系統的挂載點作為參數。quotaon 指令使用的選項與 quotacheck 的選項類似。
例如:執行以下操作可啟用“/mailbox”檔案系統的使用者、組磁盤配額功能,并顯示指令執行的過程資訊。
# quotaon -ugv /mailbox
5.檢視使用者或分區的配額使用情況
可使用 quota 指令、repquota指令,其中,quota 指令可以結合 -u、-g 選項分别檢視指定使用者群組的配額使用情況;而 repquota 指令主要指定檔案系統輸出配額使用情況報告,結合 -a 選項可檢視所有可用分區的配額使用情況報告。
例如:檢視使用者賬号 zhangsan、組賬号 users 的配額使用情況
# quota -u zhangsan
# quota -g users
檢視 /mailmox 檔案系統的配額使用情況
# repquota /mailmox
6.驗證磁盤配額功能
可使用 dd 轉換工具,dd 指令是裝置轉換和複制指令
例如:向 /mailmox 目錄下寫入一個名為 a.txt 的測試檔案,大小為10MB(分10次讀取,每次1MB),複制來源為裝置 /dev/zero
# dd if=/dev/zero of=/mailmox/a.txt bs=1M count=10
if= 指定輸入裝置(或檔案)
of= 指定輸出裝置(或檔案)
bs= 指定讀取資料塊的大小
count= 指定讀取資料塊的數量
本文轉自 楊書凡 51CTO部落格,原文連結:http://blog.51cto.com/yangshufan/1948873,如需轉載請自行聯系原作者