CentOS 7
Sponsored Link

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

[root@dlp ~]#
umount /home

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

/dev/mapper/centos-root /           xfs   defaults               0 0
UUID=c4df086e-3699-4e02-b7cf  /boot xfs   defaults               0 0
/dev/mapper/centos-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: #136 (2 blocks, 2 extents)
Group quota state on /home (/dev/sdb1)
  Accounting: ON
  Enforcement: ON
  Inode: #137 (2 blocks, 2 extents)
Project quota state on /home (/dev/sdb1)
  Accounting: OFF
  Enforcement: OFF
  Inode: #137 (2 blocks, 2 extents)
Blocks grace time: [7 days 00:00:30]
Inodes grace time: [7 days 00:00:30]
Realtime Blocks grace time: [7 days 00:00:30]

# 設定状況のレポートを表示

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 [------]

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

# 「cent」ユーザーに Softリミット 9G, Hardリミット 10G を設定

xfs_quota>
limit bsoft=9g bhard=10g 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     9G    10G  00 [------]
[3] グループクォータを設定する場合は、以下のように -g オプションを付加します。
# 非対話モードでも設定可能

[root@dlp ~]#
xfs_quota -x -c 'limit -g bsoft=9g bhard=10g 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     9G    10G  00 [------]
[4] Warnquota を設定すると、制限を超えて使用しているユーザーに警告メールを送信することができます。
メールを送信するため、SMTPサーバーが稼働していることが前提になります。
# Warnquota インストール

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

/dev/sdb1: Your Home Directory
# メール送信元のドメイン名を修正

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

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

From root@dlp.srv.world  Thu Oct 20 19:08:08 2015
Return-Path: <root@dlp.srv.world>
X-Original-To: cent
Delivered-To: cent@dlp.srv.world
From: root@srv.world
Reply-To: root@srv.world
Subject: NOTE: You are exceeding your allocated disk space limits
To: cent@dlp.srv.world
Cc: root@srv.world
Content-Type: text/plain; charset=UTF-8
Content-Disposition: inline
Date: Thu, 20 Oct 2015 19:08:08 +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      +-   4112M   4096M   5120M  6days       6     0     0

root@srv.world
 
Tweet