天天看點

在Linux上建立磁盤配額

磁盤配額的概述及管理

為什麼建立磁盤配額

    在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,如需轉載請自行聯系原作者

繼續閱讀