CentOS 8
Sponsored Link

ディスククォータを設定する
2020/01/09
 
ディスククォータを設定して、ユーザー毎にディスクの使用量を制限します。
例として、[/home] にマウントした XFS ファイルシステムに対してディスククォータを設定します。
ext4 ファイルシステムの場合はこちらを参照ください (Ubuntu 18.04)
[1] マウントオプションを追加してクォータを有効にします。
# ユーザークォータとグループクォータのオプションを付加して再マウント

[root@dlp ~]#
umount /home

[root@dlp ~]#
mount -o uquota,gquota /dev/sdb1 /home
[root@dlp ~]#
vi /etc/fstab
# 起動時も有効となるようオプション追記

/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=b7886c5b-b915-4b00-aaa0-2cc856645e3d /boot ext4    defaults        1 2
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
/dev/sdb1               /home                   xfs     defaults,uquota,gquota 0 0
[2] クォータを設定します。例として [cent] ユーザーにクォータを適用します。
# クォータツールをエキスパートモードで起動

[root@dlp ~]#
xfs_quota -x /home
# 現在の状態を表示

xfs_quota>
state

User quota state on /home (/dev/sdb1)
  Accounting: ON
  Enforcement: ON
  Inode: #131 (2 blocks, 2 extents)
Group quota state on /home (/dev/sdb1)
  Accounting: ON
  Enforcement: ON
  Inode: #132 (2 blocks, 2 extents)
Project quota state on /home (/dev/sdb1)
  Accounting: OFF
  Enforcement: OFF
  Inode: N/A
Blocks grace time: [7 days]
Inodes grace time: [7 days]
Realtime Blocks grace time: [7 days]

# 設定状況のレポートを表示
xfs_quota> report -h 
User quota on /home (/dev/sdb1)
                        Blocks
User ID      Used   Soft   Hard Warn/Grace
---------- ---------------------------------
root            0      0      0  00 [------]
cent          16K      0      0  00 [------]
redhat        12K      0      0  00 [------]

Group quota on /home (/dev/sdb1)
                        Blocks
Group ID     Used   Soft   Hard Warn/Grace
---------- ---------------------------------
root            0      0      0  00 [------]
cent          16K      0      0  00 [------]
redhat        12K      0      0  00 [------]

# [cent] ユーザーに Soft リミット 4G, Hard リミット 5G を設定
xfs_quota> limit bsoft=4g bhard=5g cent 

# 設定確認
xfs_quota> report -h -u 
User quota on /home (/dev/sdb1)
                        Blocks
User ID      Used   Soft   Hard Warn/Grace
---------- ---------------------------------
root            0      0      0  00 [------]
cent          16K     4G     5G  00 [------]
redhat        12K      0      0  00 [------]
[3] グループクォータを設定する場合は、以下のように [-g] オプションを付加します。
# 非対話モードでも設定可

[root@dlp ~]#
xfs_quota -x -c 'limit -g bsoft=4g bhard=5g cent' /home
[root@dlp ~]#
xfs_quota -x -c 'report -h -g' /home

Group quota on /home (/dev/sdb1)
                        Blocks
Group ID     Used   Soft   Hard Warn/Grace
---------- ---------------------------------
root            0      0      0  00 [------]
cent          16K     4G     5G  00 [------]
redhat        12K      0      0  00 [------]
[4] Warnquota を設定すると、制限を超えて使用しているユーザーに警告メールを送信することができます。
メールを送信するため、SMTP サーバーが稼働していることが前提になります。
# Warnquota インストール

[root@dlp ~]#
dnf -y install quota-warnquota
[root@dlp ~]#
vi /etc/quotatab
# クォータを設定したデバイスと要約を追記

/dev/sdb1: Your Home Directory
# メール送信元のドメイン名を修正 (自身のドメイン名に置き換え)

[root@dlp ~]#
sed -i -e "s/example\.com/srv\.world/g" /etc/warnquota.conf
# warnquota 実行

[root@dlp ~]#
warnquota -s
# warnquota 実行時に制限を超えているユーザーには以下のようなメールが送信される

From root@dlp.srv.world  Thu Jan  8 19:32:10 2020
Return-Path: <root@dlp.srv.world>
X-Original-To: root@dlp.srv.world
Delivered-To: root@dlp.srv.world
From: root@dlp.srv.world
Reply-To: root@dlp.srv.world
Subject: NOTE: You are exceeding your allocated disk space limits
To: cent@dlp.srv.world
Cc: root@dlp.srv.world
Content-Type: text/plain; charset=UTF-8
Content-Disposition: inline
Date: Thu,  8 Jan 2020 19:32:10 +0900 (JST)
Status: R

Your disk usage has exceeded the agreed limits on this server
Please delete any unnecessary files on following filesystems:

Your Home Directory (/dev/sdb1)

                        Block limits               File limits
Filesystem           used    soft    hard  grace    used  soft  hard  grace
/dev/sdb1      +-   4449M   4096M   5120M  6days       8     0     0

root@dlp.srv.world
関連コンテンツ