需求描述如下:
每一个请求到来,都会自动在某个确定目录下建立一个对应该请求的目录。在目录已事先存在的情况下,如何限制该目录的大小,保证当目录下所有的文件和文件夹大小之和不能超过指定值。
网上搜到说用xfs_quota,但是很奇怪就是有的时候能限制,有的时候不能限制。所以觉得不靠谱。原谅在下实在弱鸡。。求各位大神支招。
需求描述如下:
每一个请求到来,都会自动在某个确定目录下建立一个对应该请求的目录。在目录已事先存在的情况下,如何限制该目录的大小,保证当目录下所有的文件和文件夹大小之和不能超过指定值。
网上搜到说用xfs_quota,但是很奇怪就是有的时候能限制,有的时候不能限制。所以觉得不靠谱。原谅在下实在弱鸡。。求各位大神支招。
6 回答3k 阅读
2 回答1.9k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
4 回答2.1k 阅读
2 回答1.6k 阅读
2 回答1.5k 阅读✓ 已解决
最终我选择的方案为磁盘限额,xfs quota。具体实施步骤如下:
1.建立一个独立的分区,并且格式化文件系统为xfs。(我用的是ceph的rbd,然后将rbd对应的设备格式化为xfs文件系统,再挂载到本地目录。)
2.问题已经说过,每一个请求到来时都会在某个确定目录(称为父目录我这的父目录是/var/lib/docker)下建立对应的子目录。可以在服务尚未启动前将 /var/lib/docker 挂载到xfs文件系统分区:
注意pquota选项一定要加上,表示启用project quota
3.对于每一个请求,分别执行以下命令。假设当前请求所对应的需要限制的目录路径为:/var/lib/docker/cone
特别注意:上面命令中的id表示数字串,例如123,但不能是单独的0,如果是0那么限制就不会起作用
4.可以使用
xfs_quota -x -c 'report -h' /var/lib/docker
查看配额使用信息可以使用
xfs_quota -x -c 'print' /var/lib/docker
查看限制了哪些目录5.测试
随便进入一个目录,使用dd命令进行测试,例如: