我想为我们正在开发的多用户Web应用程序实现每个目录的配额。问题是...我们已经为任何客户端实现了一个文档管理器来存储他们自己的私人文档,但是由于这个功能我们不想用尽空间,所以我们想给它们指定一个限制。我可以在现代Linux(2.6.30+内核)系统上创建(并挂载)多少个环路设备?
由于在Linux中似乎没有实现每个目录配额的标准方法(我知道,配额主要针对用户或组,但我们需要类似于Windows Server 2008 R2处理配额的方式每个目录的基础)我选择使用'技巧'。我基本上做到这一点:
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个测试客户端,所以当前存在的循环设备的数量不能满足我的需求。我知道你可以分配多达256个循环设备直到内核版本2.6.23,并且限制(从版本2.6.24开始)在理论上不再存在,尽管我仍然有一些担忧。
老实说,我觉得用1000+循环设备填充/ dev层次结构(在系统整个生命周期中根本不会被卸载)是非常错误的,而不是它应该完成的方式,但也许它是可行的作为中期解决方案,所以我的问题是:
- 单个循环设备分配多少内存?
- 系统崩溃或性能命中256+分配 循环设备?
- 我可以动态增加循环设备的数量吗?或...
- 如何在开机 时间预定义可用循环设备的数量?
会创建一个组来拥有该目录并为其分配一个配额工作吗? – slezica 2012-03-03 17:59:21
只需尝试一下,看看它是否有效。内存使用似乎并不是问题。 – Tobu 2012-03-03 18:02:32
此外,这个重复。 LVM是一个好主意:http://serverfault.com/questions/100596/linux-quota-per-directory – Tobu 2012-03-03 18:04:50