最终我选择的方案为磁盘限额,xfs quota。具体实施步骤如下:

1.建立一个独立的分区,并且格式化文件系统为xfs。(我用的是ceph的rbd,然后将rbd对应的设备格式化为xfs文件系统,再挂载到本地目录。)

2.问题已经说过,每一个请求到来时都会在某个确定目录(称为父目录我这的父目录是/var/lib/docker)下建立对应的子目录。可以在服务尚未启动前将 /var/lib/docker 挂载到xfs文件系统分区:

mount -o pquota /dev/rbd0 /var/lib/docker

注意pquota选项一定要加上,表示启用project quota

3.对于每一个请求,分别执行以下命令。假设当前请求所对应的需要限制的目录路径为:/var/lib/docker/cone

(1)echo "id:/var/lib/docker/cone" >> /etc/projects

(2)echo "projectName:id" >> /etc/projid

(3)xfs_quota -x -c 'project -s projectName'

(4)xfs_quota -x -c 'limit -p bhard=1G projectName' /var/lib/docker

特别注意:上面命令中的id表示数字串,例如123,但不能是单独的0,如果是0那么限制就不会起作用

4.可以使用 xfs_quota -x -c 'report -h' /var/lib/docker 查看配额使用信息

可以使用 xfs_quota -x -c 'print' /var/lib/docker 查看限制了哪些目录

5.测试

随便进入一个目录,使用dd命令进行测试,例如:

dd if=/dev/zero of=data bs=1G count=3

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐