1. 程式人生 > >Linux 磁盤配額 quota

Linux 磁盤配額 quota

partition align 服務器 span 關閉selinux 警戒線 建立 mapper 啟動

Linux 磁盤配額 quota



Quota一直就是個很有用的東西。如果您曾經申請過網絡的mail服務時,那麽肯定就會明白什麽是20MB的郵件空間、 30MB的免費網頁空間,這個20MB,30MB就是quota這個東西搞出來的。如果我們要限制用戶使用硬盤的容量使用大小,就需要quota來處理。


一、什麽是quota

簡單的說就是限制用戶對磁盤空間的使用量。

在Linux系統中,由於是多人多任務的環境,所以會有多人共同使用一個硬盤空間的情況發生,如果其中有少數幾個使用者大量的占掉了硬盤空間的話,那勢必壓縮其它使用者的使用權力,因此管理員應該適當的開放硬盤的權限給使用者,以妥善的分配系統資源。為了合理的分配磁盤空間,於是就有了quota的出現。



二、quota的用途

quota命令用於顯示用戶或者工作組的磁盤配額信息。輸出信息包括磁盤使用和配額限制。

作用對象:

針對Web服務器,例如:每個人的網頁空間的容量限制。

針對Mail服務器,例如:每個人的郵件空間限制。

針對File服務器,例如:每個人最大的可用網絡硬盤空間。



三、quota的使用限制

僅針對整個partition:quota實際在運作的時候,是針對『整個partition』進行限制的,例如:如果你的/dev/hda5是掛載在/home底下,那麽在/home底下的所有目錄都會受到限制!

核心必須支持quota:Linux系統核心必須有支持quota這個模塊才行。如果您是使用FC4的預設核心,系統已經預設有開放quota這個模塊。如果您是自行編譯核心的,那麽請特別留意您是否已經開啟了quota這個模塊。

只對一般身份使用者有效:並不是所有在Linux上面的賬號都可以設定quota,例如root就不能設定quota,因為整個系統所有的數據幾乎都是他的。



四、quota的使用

quota 選項 參數

選項:

-g:列出群組的磁盤空間限制;

-q:簡明列表,只列出超過限制的部分;

-u:列出用戶的磁盤空間限制;

-v:顯示該用戶或群組,在所有掛入系統的存儲設備的空間限制;

-V:顯示版本信息。

參數:

用戶或者工作組:指定要顯示的用戶或者工作組

[root@localhost(yuaning) ~]# quota -vs -u liubei     #查看指定用戶quota
quota: Cannot open quotafile /mydata/aquota.user: No such file or directory
quota: Cannot open quotafile /root/ccc/aquota.user: No such file or directory
Disk quotas for user liubei (uid 1001): 
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
       /dev/md6      0K      0K      0K               0       0       0        
[root@localhost(yuaning) ~]# quota -guvs    # 查看當前用戶的quota限制
quota: Cannot open quotafile /mydata/aquota.user: No such file or directory
quota: Cannot open quotafile /root/ccc/aquota.user: No such file or directory
Disk quotas for user root (uid 0): 
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
       /dev/md6      0K      0K      0K               3       0       0        
quota: Cannot open quotafile /mydata/aquota.group: No such file or directory
quota: Cannot open quotafile /root/ccc/aquota.group: No such file or directory
Disk quotas for group root (gid 0): 
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
       /dev/md6      0K      0K      0K               3       0       0



五、quota的相關命令

1. 掃描指令,quotacheck 參數

參數:

-a :掃瞄所有在/etc/mtab內,含有quota支持的filesystem

-u :針對使用者掃描文件與目錄的使用情況,會建立aquota.user

-g :針對群組掃描文件與目錄的使用情況,會建立aquota.group

-v :顯示掃描過程的信息;

-M :強制進行quotacheck的掃描。

[root@localhost(yuaning) ~]# quotacheck -avug
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/md4 [/mydata] done
quotacheck: Checked 3 directories and 2 files
quotacheck: Skipping /dev/md6 [/backup]
quotacheck: Scanning /dev/mapper/vgcyn-lvcyn [/root/ccc] done
quotacheck: Checked 3 directories and 2 files

2. 配置指令,edquota 參數

參數:

-u :後面接賬號名稱。可以進入quota的編輯畫面(vi)去設定username的限制值;

-g :後面接群組名稱。可以進入 quota 的編輯畫面(vi)去設定groupname的限制值;

-t :可以修改寬限時間(就是超過quota的soft limit值後,還能使用硬盤的寬限期限)

-p :復制範本。那個username_demo為已經存在並且已設定好quota的使用者

[root@localhost(yuaning) ~]# edquota -u liubei     #給用戶配置quota

Disk quotas for user liubei (uid 1001):
  Filesystem                   blocks       soft       hard     inodes     soft     hard   #blocks是文件大小限制,inodes是文件個數限制
  /dev/md4                          0          0          0          0        0        0   #soft是警戒線,當使用的值不小於這個值的時候會警告用戶
  /dev/md6                          0          0          0          0        0        0   #hard是底線,一旦達到這個值,停止使用
  /dev/mapper/vgcyn-lvcyn           0          0          0          0        0        0
  
[root@localhost(yuaning) ~]# edquota -t   #修改系統寬恕時間

Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
  Filesystem             Block grace period     Inode grace period
  /dev/md4                      7days                  7days
  /dev/md6                     14days                  7days
  /dev/mapper/vgcyn-lvcyn                  7days                  7days

3. 開啟指令,quotaon 參數

參數:

-u :針對用戶啟動quota(aquota.user)

-g :針對群組啟動 quota(aquota.group)

-v :顯示啟動過程的相關訊息;

-a :根據/etc/mtab內的filesystem設定啟動有關的quota,若不加-a的話,則後面就需要加上特定的那個filesystem!

[root@localhost(yuaning) ~]# quotaon -auvg   #啟動所有的有quota限制的文件系統
/dev/md4 [/mydata]: group quotas turned on
/dev/md4 [/mydata]: user quotas turned on
/dev/mapper/vgcyn-lvcyn [/root/ccc]: group quotas turned on
/dev/mapper/vgcyn-lvcyn [/root/ccc]: user quotas turned on

4. 關閉指令,quotaoff 參數

參數:

-a :全部的filesystem的quota都關閉(根據/etc/mtab)

-u :僅針對後面接的那個/mount_point關閉user quota

-g :僅針對後面接的那個/mount_point關閉group quota




六、quota舉例

那麽quota從開始準備filesystem的支持到整個設定結束的主要的步驟大概是:

1. 設定partition的filesystem支持quota參數

由於quota必須要讓partition filesystem支持才行,一般來說,支持度最好的是ext2/ext3,啟動filesystem支持quota最簡單就是編輯/etc/fstab,使得準備要開放的quota磁盤可以支持quota

2. 建立quota記錄文件

整個quota進行磁盤限制值記錄的檔案是aquota.user/aquota.group,要建立這兩個檔案就必須要先利用quotacheck掃描才行。接下來的步驟就是:使用quotacheck來掃描一下我們要使用的磁盤

3. 編輯quota限制值數據

使用edquota來編輯每個使用者或群組的可使用空間

4. 重新掃描與啟動quota

設定好quota之後,建議可以再進行一次quotacheck,然後再以quotaon來啟動

註意:當開啟quota的時候,配置好參數,掃描磁盤的時候,有時候會quotacheck失敗,是因為在生成quota數據庫的時候,沒有關閉selinux,操作如下:

[root@localhost(yuaning) ~]# setenforce 0
setenforce: SELinux is disabled
[root@localhost(yuaning) ~]# vim /etc/selinux/config 


# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled                                            #將enforcing 改為disabled 即可
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted




Linux 磁盤配額 quota