首頁 > 軟體

在Linux上建立磁碟配額

2020-06-16 17:09:56

磁碟配額的概述及管理

為什麼建立磁碟配

    在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個,可執行以下操作

   # edquota   -u    zhangsan                          

   Filesystem              blocks       soft      hard     inodes      soft      hard

   /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=   指定讀取資料塊的數量

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-07/145865.htm


IT145.com E-mail:sddin#qq.com