web-dev-qa-db-ja.com

Linux-ディレクトリあたりのクォータ?

次のシナリオがあります。

単一のパーティションが/としてマウントされ、多くのディスク容量が必要です。

ディレクトリには範囲があり(/ pg/tbs1、/ pg/tbs2、/ pg/tbs3など)、これらのディレクトリの合計サイズを制限したいと思います。

1つのオプションは、いくつかの大きなファイルを作成し、それらをmkfsし、ループバックを介してマウントし、クォータを設定することですが、これにより拡張が少し問題になります。

ディレクトリごとにクォータを機能させる他の方法はありますか?

21
user13185

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
17
larsks

グループの権限に依存しない場合は、「クォータディレクトリ」ごとに異なるUNIXグループを使用し、各ディレクトリにsgidビットを設定できます(そのため、作成されたファイルとディレクトリは、プライマリグループではなくディレクトリのグループに属します)作成者ユーザーの)、グループクォータを使用します。

6
jpetazzo

すべての仮想メールユーザーに対してシステムユーザーを作成する必要がなかったので、実際にこれをしばらく実行したかったのです。クォータを備えたZFSファイルシステムは素晴らしいですし、zfs-Fuseは毎日進歩していますが、私が欲しかったのは非常に軽量なソリューションでした。最後に、別のファイルシステムの上のレイヤーとしてマウントできるFuseファイルシステムを作成することにしました(ベースディレクトリは実際に機能します)。簡単にスクリプト化できるクォータを管理するためのユーティリティがあり、クォータの値はディレクトリまたはファイルにxattrsとして格納されるだけなので、1つのマウントポイントで任意の数のクォータをサポートできます。

私はしばらくメールサーバーでテストしており、最近、思春期に達し、自然界にリリースする準備ができていると判断しました。興味があれば、 http://code.google.com/p/fusequota/ で確認できます。フィードバックをいただければ幸いです。

5
August Sodora

はい。 XFSファイルシステムとプロジェクトクォータを確認してください。他のファイルシステムはこの機能を提供していません。

5
ondra

各共有フォルダの新しいファイルシステムは、IMHOの過剰です。共有フォルダごとに新しいグループを作成し、共有フォルダの所有者グループをこのグループに設定し、スティッキービットをグループに設定して(すべての新しいファイルとディレクトリにこのグループが所有者となるように)、ファイルとフォルダのアクセス許可にはACLリストを使用します。次に、これらのグループのクォータを設定します。

3
user207604

ディレクトリごとに引用符を設定する方法を知りません。

しかし、限られたサイズのファイルシステムを作成するというあなたの考えに沿って。これは lvm が良い解決策になる場所かもしれません。

バックアップ/再インストールして lvm を使用して、論理ボリュームに必要な最小限のスペースのみを割り当てることができます。拡張は非常に簡単です lvm 論理ボリューム。

1
Zoredache