ディスクの容量というのは、通常あまり気にしていないのだけれども、使い切ると結構深刻な事態がが生じる。ディスクの残量が少ない状況では、システムが極めて遅くなることが多いし、ディスクを使い切ると、運が悪いとシステムが立ち上がらなくなることもある。というわけで、quotaで事前に使える要領に制限をかけたり、制限に近づいたりしたときに警告を出すようにしておくと、こゝろ安らかに過ごすことができる。
参考にさせていただいたURL: 【CentOS7】xfsファイルシステムでのクォータ(quota)設定 | server-memo.net
quotaのインストール
以下でインストール。
yum install quota
とはいえ、ミニマルインストールでなければ、入っていることも多い。
quotaでファイルの容量制限ををユーザー単位で設定
quotaでファイルの容量制限がかけられるのは、ユーザー単位、グループ単位、プロジェクト単位がある。ここでは、大学の研究室位を単位とする、小規模なサーバーを念頭に、ユーザーの単位で制限をかけることを考える。
パーティションの設定
quotaを適用するには、mountする際に関連属性を付けておく必要がある。裏を返すと、パーティション単位で監視対象になるか否かが決まる。
一例として、以下のような形で/home
がmountされているとする。(CentOS7を念頭に置いているのでxfsでマウントされているとする)
UUID=hogehogehogehogehogehogehogeohgeohge /home xfs defaults 0 0
この/home
をユーザー単位のquotaで管理には、以下のようにuquota
オプションを付けてマウントする。
UUID=hogehogehogehogehogehogehogeohgeohge /home xfs defaults,uquota 0 0
このように設定ファイルを書き換え、# umount /home
でアンマウントした後に# mount /home
をすることで、quotaが適用できる状態になる。(一般ユーザーでログインしており、かつその${HOME}
が/home
にある場合は、この手続きでbusyになってしまって、umountできない。直接rootにログインする必要がある。)
quotaの設定は# xfs_quota -x -c 'report -h' パーティション
のコマンドで確認できる。この設定の場合は、# xfs_quota -x -c 'report -h' /home
を実行すると以下の感じの出力が得られる。(グループ、プロジェクト単位のquotaも、設定されていればこれに引き続いて表示される)
User quota on /home (/dev/sdb1)
Blocks
User ID Used Soft Hard Warn/Grace
---------- ---------------------------------
root 0 0 0 00 [------]
user1 48K 0 0 00 [------]
user2 48K 0 0 00 [------]
user3 38.1M 0 0 00 [------]
user4 56K 0 0 00 [------]
このsoftとhardの欄に現れている0の表示は、quotaが設定されていないことを意味する。
quotaの制限要領を設定
コマンドは、# xfs_quota -x -c 'limit bsoft=サイズ bhard=サイズ 設定ユーザ' パーティション
で、設定ユーザーにquotaで制限をかけられる。例えば# xfs_quota -x -c 'limit bsoft=400G bhard=500G user3' /home
を実行してから# xfs_quota -x -c 'report -h' /home
を見ると
User quota on /home (/dev/sdb1)
Blocks
User ID Used Soft Hard Warn/Grace
---------- ---------------------------------
root 0 0 0 00 [------]
user1 48K 0 0 00 [------]
user2 48K 0 0 00 [------]
user3 38.1M 400G 500G 00 [------]
user4 56K 0 0 00 [------]
なる出力が得られる。
一般ユーザーの各自の確認
quotaが入っていれば、$ quota -s
で自分のアカウントの状況は確認できる。例えば
Disk quotas for user user3 (uid 1002):
Filesystem space quota limit grace files quota limit grace
/dev/sdb1 39000K 400G 500G 249 0 0
みたいな感じ。
soft limitを超えたらどうなるの?
私の場合は
/usr/bin/xauth: error in locking authority file /home/user/.Xauthority
が出た。それと、ログイン後にすごく時間がかかる。
このメッセージに関連して色々調べてみて処方箋を試してみた(例えば、一回.Xauthority
を消すとか)が、問題は解決せず。多分、soft limitにあたって、新しいファイルを作ることが阻害され、それに関連して問題が現れていた模様。
不要なファイルを消したら、この問題は生じなくなった。