溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux入門之磁盤管理(6)磁盤配額

發(fā)布時間:2020-06-14 04:04:01 來源:網絡 閱讀:705 作者:mzfiiooooii4455 欄目:數據庫

Linux入門之磁盤管理(6)磁盤配額

linux中使用向磁盤中存入數據時,如果有多個用戶對同個磁盤進行操作,其中一個用戶放了很大數據的文件導致硬盤容量用光,那么其他用戶將無法再存入數據,這時就需要對每個用戶進行存入數據大小的限制,linux中提供了一種磁盤配額的功能來實現。

 

初始化:

添加分區(qū)掛載選項:usrquota、grpquota

初始化數據庫:quotacheck 命令

使用命令

開啟或取消配額:quotaon、quotaoff

直接編譯配額:edquota  [username]

 

案例說明:

創(chuàng)建配額數據庫

#/home目錄會存放不同用戶的文件,大小會相互受影響,因此需要將/home目錄變成分區(qū),這里準備好一個創(chuàng)建好文件系統的分區(qū)。

[root@mzf ~]# blkid /dev/sda5
/dev/sda5: LABEL="myhome" UUID="97f71277-7b31-4bb6-ae0f-949cf8c18e6f" TYPE="ext4"

#對其進行掛載使用

[root@mzf ~]# mkdir /mnt/myhome
[root@mzf ~]# mount  /dev/sda5  /mnt/myhome/
[root@mzf ~]# df | grep 'myhome'
/dev/sda5             2004852    3096   1896584   1% /mnt/myhome

#先將/home下文件的文件進行遷移

[root@mzf ~]# ls /home/
hadoop  mzf  tom  u1  u2
[root@mzf ~]# mv /home/* /mnt/myhome/
[root@mzf ~]# ls /mnt/myhome/
hadoop  lost+found  mzf  tom  u1  u2

#然后將/dev/sda5再次掛載到/home目錄下,并添加用戶和組的磁盤配額功能

[root@mzf ~]# mount -L myhome -o usrquota,grpquota /home/
[root@mzf ~]# df | grep 'home'
/dev/sda5             2004852    3288   1896392   1% /mnt/myhome
/dev/sda5             2004852    3288   1896392   1% /home

#卸載掉在/mnt/myhome下的掛載點

[root@mzf ~]# umount /mnt/myhome/

#這里我們再次掛載指定的用戶磁盤配額和組磁盤配合選項以及添加

[root@mzf ~]# mount | grep 'home'
/dev/sda5 on /home type ext4 (rw,usrquota,grpquota)

#當然也可以寫入/etc/fstab文件進行重新掛載。如,加入內容:

[root@mzf home]# cat /etc/fstab | grep '/home'

Linux入門之磁盤管理(6)磁盤配額 

#然后檢查分區(qū)并創(chuàng)建配額數據庫文件

[root@mzf home]# quotacheck -cgu /dev/sda5
quotacheck: Cannot create new quotafile /home/aquota.user.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied
quotacheck: Cannot create new quotafile /home/aquota.group.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied

解析:這里提示沒有權限,可能是linux內核中默認開啟的selinux安全機制控制導致的,這里我們可以先將其關閉:

#查看當前setlinux是否開啟

[root@mzf home]# getenforce
Enforcing#表示已經啟用
[root@mzf home]# setenforce 0          #設置參數為0表示禁用
[root@mzf home]# getenforce          #再次查看已經顯示為禁用
Permissive

#再次進行磁盤配額數據庫文件創(chuàng)建

[root@mzf home]# quotacheck -cug /dev/sda5

#查看指定分區(qū)單獨掛載點目錄下是否生成了磁盤配額數據庫文件

[root@mzf home]# ls /home  | grep '^aquota\.\<\(user\|group\)\>' 
aquota.group
aquota.user

說明:如果要開啟磁盤配額,內核模塊必須檢查該掛載點中是否有磁盤配額數據庫文件的存在,否則無法開啟或設置成功。

 

啟用磁盤配額:

#開啟指定分區(qū)的磁盤配額

[root@mzf home]# quotaon /dev/sda5

#添加默認磁盤配額成員

[root@mzf home]# edquota -p mzf tom hadoop

#設置指定成員配額

[root@mzf home]# edquota hadoop

#進入vim編輯界面

Linux入門之磁盤管理(6)磁盤配額 

解析:其中第一行表示為哪個用戶設置磁盤配額,下面分為多列,第一列為指定的文件系統,后面6列每3列為一組,blocks表示已經存放的文件大小,默認為k,indodes表示為已經創(chuàng)建了多少個文件,soft表示為軟限制,存放大小超過soft指定將出現警報,hard為硬限制,如果達到此限制,將無法再次寫入數據。


#按文件所占大小設置配額,軟限制為5M,硬限制為10M

Linux入門之磁盤管理(6)磁盤配額 

#切換到設置配額的成員hadoop用戶

[root@mzf home]# su - hadoop

#此目錄已經用了64K,這里我們添加 5M數據

[hadoop@mzf ~]$ dd if=/dev/zero of=/home/hadoop/temp.log bs=5M  count=1
sda5: warning, user block quota exceeded.
1+0 records in
1+0 records out
5242880 bytes (5.2 MB) copied, 0.130323 s, 40.2 MB/s

注意:這里soft已經超過,開始了警報,顯示用戶塊數據配額,但是如果使用echo進行一些小規(guī)模數據追加,磁盤配額是不會警報的:

#顯示出文件多少個字節(jié)

[hadoop@mzf ~]$ ls -l /home/hadoop/temp.log 
-rw-rw-r--. 1 hadoop hadoop 5242912 Aug 17 23:51 /home/hadoop/temp.log

#追加字節(jié)

[hadoop@mzf ~]$ echo "***************" >> /home/hadoop/temp.log

#再次顯示大小已經增加,但是磁盤配額沒有警報

[hadoop@mzf ~]$ ls -l /home/hadoop/temp.log 
-rw-rw-r--. 1 hadoop hadoop 5242928 Aug 17 23:51 /home/hadoop/temp.log

解析:如果再用dd命令對temp.log文件寫入5M是無法寫入的,那么再寫一個5M的新文件進行測試:

#再創(chuàng)建一個5M,那么應該已經達到了10M

[hadoop@mzf ~]$ dd if=/dev/zero of=/home/hadoop/temp2.log bs=5M  count=1
sda5: write failed, user block limit reached.
dd: writing `/home/hadoop/temp2.log': Disk quota exceeded
1+0 records in
0+0 records out
5185536 bytes (5.2 MB) copied, 0.00903 s, 574 MB/s

解析:這里已經顯示了寫入數據錯誤,數據塊配額已經被使用完

#這時寫入一個字節(jié)內容的文件都寫入不了了。

[hadoop@mzf ~]$ echo "1" > file1
-bash: echo: write error: Disk quota exceeded

 

其它磁盤配額管理工具

quota   查看配額信息

[root@mzf home]# quota hadoop
Disk quotas for user hadoop (uid 502): 
    Filesystem  blocks  quota  limit  grace  files  quota  limit  grace
   /dev/sda5   10240*  5120   10240  6days   17   0    0

解析:grace表示為寬限期,及文件大小到到soft指定大小6天后,soft將變成硬限制,將再也無法創(chuàng)建文件和寫入數據了。

requota  #查看指定信息

warnquota  #檢查警告

 

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI