次のシナリオがあります。
単一のパーティションが/としてマウントされ、多くのディスク容量が必要です。
ディレクトリには範囲があり(/ pg/tbs1、/ pg/tbs2、/ pg/tbs3など)、これらのディレクトリの合計サイズを制限したいと思います。
1つのオプションは、いくつかの大きなファイルを作成し、それらをmkfsし、ループバックを介してマウントし、クォータを設定することですが、これにより拡張が少し問題になります。
ディレクトリごとにクォータを機能させる他の方法はありますか?
Ext3を使用せざるを得ない場合は、LVMを使用するのがおそらく最善の解決策です。プロジェクトごとに新しいファイルシステムを作成します。これは次のようになります。
# Create a 10g filesystem for "project1" in volume group "vg0"
lvcreate -L 10g -n project1 vg0
# Create an ext3 filesystem.
mke2fs -j /dev/vg0/project1
# Mount it (obviously you would want this in /etc/fstab)
mount /dev/vg0/project1 /projects/project1
プロジェクトファイルシステムの拡張は簡単です。
# Add 2GB to the volume.
lvextend -L +2g /dev/vg0/project1
# Grow the filesystem.
resize2fs /dev/vg0/project1
グループの権限に依存しない場合は、「クォータディレクトリ」ごとに異なるUNIXグループを使用し、各ディレクトリにsgidビットを設定できます(そのため、作成されたファイルとディレクトリは、プライマリグループではなくディレクトリのグループに属します)作成者ユーザーの)、グループクォータを使用します。
すべての仮想メールユーザーに対してシステムユーザーを作成する必要がなかったので、実際にこれをしばらく実行したかったのです。クォータを備えたZFSファイルシステムは素晴らしいですし、zfs-Fuseは毎日進歩していますが、私が欲しかったのは非常に軽量なソリューションでした。最後に、別のファイルシステムの上のレイヤーとしてマウントできるFuseファイルシステムを作成することにしました(ベースディレクトリは実際に機能します)。簡単にスクリプト化できるクォータを管理するためのユーティリティがあり、クォータの値はディレクトリまたはファイルにxattrsとして格納されるだけなので、1つのマウントポイントで任意の数のクォータをサポートできます。
私はしばらくメールサーバーでテストしており、最近、思春期に達し、自然界にリリースする準備ができていると判断しました。興味があれば、 http://code.google.com/p/fusequota/ で確認できます。フィードバックをいただければ幸いです。
はい。 XFSファイルシステムとプロジェクトクォータを確認してください。他のファイルシステムはこの機能を提供していません。
各共有フォルダの新しいファイルシステムは、IMHOの過剰です。共有フォルダごとに新しいグループを作成し、共有フォルダの所有者グループをこのグループに設定し、スティッキービットをグループに設定して(すべての新しいファイルとディレクトリにこのグループが所有者となるように)、ファイルとフォルダのアクセス許可にはACLリストを使用します。次に、これらのグループのクォータを設定します。