『學了就忘』Linux文件系統管理 — 63、磁碟配額介紹

1、磁碟配額概念

磁碟配額是限制用戶或者用戶組在一個分區上可以使用的空間大小和文件個數的限制。

擴展:

  • 管理員可以為用戶所能使用的磁碟空間進行配額限制,每一用戶只能使用最大配額範圍內的磁碟空間。
  • 磁碟配額針對的是分區,Windows系統也有磁碟配額功能。
  • 這是一個基礎的功能,如果真要在實際工作中使用,還需要結合其他的其他的服務。比如上傳文件,需要結合FTP伺服器等。

2、磁碟配額條件

(1)內核必須支援磁碟配額

[root@localhost ~]# grep CONFIG_QU0TA /boot/config-2.6.32-279.e16.i686
# 執行上面命令,如果搜索到下面內容,說明Linux內核載入了磁碟配額功能。
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
#CONFIG_QUOTA_DEBUG is not set 
CONFIG_QUOTA_TREE=y 
CONFIG QUOTACTL=y

#我搜索的結果是
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_XFS_QUOTA=y
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
CONFIG_PRINT_QUOTA_WARNING=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y

一般情況下,那怕是最小化安裝的Linux系統中,磁碟配額都是配置好的。

(2)系統中必須安裝了quota工具。

我們的Linux默認是安裝了quota工具的,查看命令如下:

[root@localhost ~]# rpm -qa | grep quota
quota-3.17-16.e16.i686

提示:如果內核不支援,就要重新編譯內核,一般不會出現這樣情況。如果沒有quota工具,直接用yum安裝。

3、磁碟配額的相關概念

(1)用戶配額和組配額

能限制用戶的配額,也能限制組的配額。在實際日常中,組配額很少用。

說明:為什麼組配額很少用?

比如我給一個組限制600MB的空間配額,這個組中有三個用戶,而組配額並不是按照每個人200MB的方式進行劃分,而是先到先得的方式進行劃分,有可能user1一個人把600MB的空間全部佔用了,而另外兩個人一點空間都沒有。

(2)磁碟容量限制和文件個數限制

磁碟配額是可以對一個分區的磁碟容量文件個數進行限制。

為什麼要限制文件個數?

因為每個文件都會佔用一個i節點號,而i節點號是有限的,分區大小不同,i節點號的數量是不一樣的。如果i節點佔滿了,也同樣存儲不了數據。

(3)軟限制和硬限制

  • 軟限制可以理解為警告限制,如果你超過了軟限制,你還可以寫入數據,只是每次寫入都會有提示,你的空間快佔滿了,請你儘快清理。
  • 硬限制就是實際限制,到了限制,你一個位元組都存儲不了了。

(4)寬限時間

如果用戶的空間佔用大小,處於軟限制和硬限制之間,系統會在用戶登陸時警告用戶磁碟將滿,這個時間就是寬限時間,默認是7天。如果達到了寬限時間,用戶的磁碟佔用量還超過軟限制,那麼軟限制就會升級為硬限制。(這個時間能修改,但是沒有必要。)

4、磁碟配額實踐規劃

我們開始磁碟配額實驗,首先我們來規划下:

  • 磁碟配額是限制的普通用戶分區上使用磁碟空間和文件個數的,所以我們需要指定一個分區。那麼我們手工建立一個5GB的/dev/sdb1分區,把它掛載到/disk目錄當中。(swap分區和boot分區不能做實驗)。
  • 還有需要建立被限制的用戶和用戶組。假設需要限制user1user2user3用戶,這三個用戶屬於test用戶組。(組配合不好用,上面說了,不進行說明了,這裡只說明普通用戶的磁碟配額)
  • 為了便於測試,三個用戶的磁碟容量硬限制為50MB,軟限制為40MB,文件個數硬限制限制為11個,軟限制為8個。
  • 系統寬限時間我們改為8天。

提示:

  • 關於磁碟配額配額的操作,下一篇文章會詳細說明。

  • 還有磁碟陣列(Redundant Arrays of Independent Disks,RAID)的內容,自己有時間可以自己了解一下。