ディスク・クォータ


アニメ『アンゴルモア元寇合戦記』

対馬へ流罪となった迅三郎たち強者たちが、蒙古、高麗の大軍勢と戦うってお話ですが、実に面白いです。今期で一番、放送日が待ち遠しいです。迅三郎の武芸もカッコいいのですが、采配にしびれます。休むところ、力の入れる所を知ってる、下々の名前を一発で覚える、言葉でモチベーションを高める。やはりリーダーって、迅三郎のように、皆に伝わる言葉を持ってないといけないと思うんです。輝日姫との関係も気になるところで、もう本当に次回放送が待ち遠しいです。漫画は見ていないのですが、ぜひ映画化もしてほしい。

20年ぐらい前に、とあるプロジェクトで、サーバーの空き容量不足で、ファイル削除依頼が出てから、削除されるのに数日を要するってことがありました。(削除するのにバックアップをRS232Cでやっていたようで)
削除依頼を出すのにも、作業工数がかかるし、消す方も消す方で工数発生するので、誰も面白くない仕事です。
こんなの、システム管理者の範疇だと思うんですよね。容量制限すればいいだけの話。
で、優れたプロマネだったら、容量制限できるぐらいの知識はあるので、システム管理者に設定して、って言うだけ。細かい仕事を自動化(指示)できないプロマネって、結局無知なんですよね。迅三郎を見倣ってほしい。
まあ、昔の話なので、今はこんな話まったく聞かなくなりました。

今回は、quotaで、ユーザに書き込み制限してみます。

手軽に確認するため、ファイルをmkfsして、loopデバイス使います。

takk@deb9:~/tmp$ ls
takk@deb9:~/tmp$ su -
root@deb9:~# ls
root@deb9:~# truncate -s100M a.bin

mkfsでext3ファイルシステムでフォーマット。

root@deb9:~# mkfs -t ext3 a.bin
mke2fs 1.43.4 (31-Jan-2017)
Discarding device blocks: done                            
Creating filesystem with 102400 1k blocks and 25688 inodes
Filesystem UUID: 851bc704-a993-4c65-802f-a769c5f4b31f
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done 

root@deb9:~# 

マウントします。

root@deb9:~# mount -o loop -t ext3 a.bin /home/takk/tmp
root@deb9:~# 

中身を見てみましょう。lost+foundができてますね。

root@deb9:~# ls !$
ls /home/takk/tmp
lost+found
root@deb9:~# 

このままではユーザが書き込めないので、chmod。

root@deb9:~# chmod 777 !$
chmod 777 /home/takk/tmp
root@deb9:~# 

次に、quotaを有効にするため、usrquotaを指定して、再mount。

root@deb9:~# mount -o remount,usrquota !$
mount -o remount,usrquota /home/takk/tmp
root@deb9:~# 

quotacheckでquota用のデータベースを作成します。

root@deb9:~# quotacheck !$
quotacheck /home/takk/tmp
root@deb9:~# 

lsで生成されたものを確認。

root@deb9:~# ls !$
ls /home/takk/tmp
aquota.user  lost+found
root@deb9:~# 

では、quotaを有効にします。

root@deb9:~# quotaon !$
quotaon /home/takk/tmp
root@deb9:~# 

最後に、edquotaで、ユーザを指定して、制限する数値を記入します。
edquota ユーザ名を実行すると、Vimが起動して以下のテキストが現れます。

root@deb9:~# edquota takk
Disk quotas for user takk (uid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/loop0                        0          0          0          0        0        0

今回、ユーザtakkには、/home/takk/tmp配下には、1ファイルしか書けない設定をします。

hardの列を、1に設定して、Vimを保存して終了。

Disk quotas for user takk (uid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/loop0                        0          0          0          0        0        1

さて、quotaの設定はできたので、takkにsuします。

root@deb9:~# su - takk
takk@deb9:~$ cd tmp
takk@deb9:~/tmp$ 

/home/takk/tmpの中は、rootが作ったこの2つのファイルだけです。

takk@deb9:~/tmp$ ls
aquota.user  lost+found
takk@deb9:~/tmp$ 

ユーザtakkが、ファイルa生成してみます。1つはファイルが書けるはずです。

takk@deb9:~/tmp$ touch a
takk@deb9:~/tmp$ 

成功しました。

次に、もう一つファイルを生成。

takk@deb9:~/tmp$ touch b
loop0: write failed, user file limit reached.
touch: 'b' に touch できません: ディスク使用量制限を超過しました
takk@deb9:~/tmp$ 

quotaで指定したファイル数しかかけないようにしているので、touchできませんでしたね。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA