開発中のマルチユーザーWebアプリケーションにディレクトリごとのクォータを実装したいと思います。問題は...クライアントが独自のプライベートドキュメントを保存するためのドキュメントマネージャーを実装しましたが、この機能のためにスペースが不足したくないので、クライアントに特定の制限を割り当てたいと思います。
Linuxでディレクトリごとのクォータを実装するための標準的な方法は存在しないようです(クォータは主にユーザーまたはグループを対象としていますが、Windows Server2008R2がディレクトリごとのクォータを処理する方法のようなものが必要です。基本)私は「トリック」を使用することを選択しました。私は基本的にこれを行います:
touch client1.ext3
dd if=/dev/zero of=./client1.ext3 bs=1024 count=16384
mkfs.ext3 ./client1.ext3
mount -o loop,rw ./client1.ext3 ./mountpoint
これは単なるコードサンプルですが、それがアイデアです...クライアントに割り当てる仮想の「ボリューム」を作成して、クライアントがプライベートデータを保存できるようにします。さらに必要な場合は、ストレージごとの金額で支払うことができます。基礎。
これに見られる「問題」は、/ dev階層に8つのループデバイスが表示されていることです。現在、アプリケーション用に17のテストクライアントがあるため、現在存在するループデバイスの量が私のニーズをカバーしていません。カーネルバージョン2.6.23までは最大256のループデバイスを割り当てることができ、制限(バージョン2.6.24以降)は理論的には存在しませんが、まだいくつか懸念があります。
正直なところ、/ dev階層を1000以上のループデバイス(システムの存続期間中はまったくマウント解除されない)で埋めるのは非常に間違っており、実行すべき方法ではないように感じますが、中間として実行可能かもしれません-用語の解決策なので、私の質問は次のとおりです。
- シングルループデバイスはどのくらいのメモリを割り当てますか?
- システムがクラッシュしたり、256以上のループデバイスが割り当てられてパフォーマンスが低下したりしますか?
- ループデバイスの数を動的に増やすことはできますか?また...
- 起動時に使用可能なループデバイスの数を事前に定義するにはどうすればよいですか?