• 莫名
    2020-12-11
    容器 quota 的局限性:容器通常采用 overlay2 driver,仅支持在宿主文件系统 xfs 上开启 quota 功能。意味着 overlay over ext4 不支持 quota 功能,而实际生产环境上 ext4 的使用远多于 xfs。

    作者回复: @莫名, 的确,我一直使用的是xfs, 对于ext4 quota的功能没有测试过。 不过我之前搜索过, ext4在2016年就应该支持project quota了。我们可以一起再确认一下。 ``` commit 689c958cbe6be4f211b40747951a3ba2c73b6715 Author: Li Xi <pkuelelixi@gmail.com> Date: Fri Jan 8 16:01:22 2016 -0500 ext4: add project quota support This patch adds mount options for enabling/disabling project quota accounting and enforcement. A new specific inode is also used for project quota accounting. [ Includes fix from Dan Carpenter to crrect error checking from dqget(). ] Signed-off-by: Li Xi <lixi@ddn.com> Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Reviewed-by: Andreas Dilger <adilger@dilger.ca> Reviewed-by: Jan Kara <jack@suse.cz>

    共 3 条评论
    20
  • Geek2014
    2020-12-11
    上篇的评论中提到:“我们在2019年初就不用docker了。” 这篇中,老师提到了containerd,是说你们已经用containerd替换了docker吗?有机会对containerd和docker之间的使用对比做个介绍吗?

    作者回复: @Geek2014 对的,我们已经使用containerd快两年了。 这是之前我们组做的分享: https://www.infoq.cn/article/odslclsjvo8bnx*mbrbk

    共 2 条评论
    13
  • Sun
    2020-12-22
    老师,我觉得可以补充下 现在k8s 1.14 开始,默认开启 LocalStorageCapacityIsolation, 可以通过限制resources.limits.ephemeral-storage 和resources.requests.ephemeral-storage 来保护宿主机 rootfs了。

    作者回复: @Sun, 谢谢,很好的补充。 k8s 通过du来检查ephemeral-storage相关volume/目录的大小,然后如果超出limit就evict pod。 du的开销会比较大,evict pod比较适合stateless pod。不过最新的k8s应该在用filesystem quota来限制emptyDir的大小了。

    共 2 条评论
    11
  • 徐少文
    2021-07-13
    老师,CGroup子系统中没有对硬盘使用量进行限制的功能模块吗?除了通过文件系统的quota去限制还有其他的方法吗?

    作者回复: cgroup里没有对磁盘容量使用限制的模块。

    
    4
  • Helios
    2020-12-13
    老师能说下你们应用容器Quota的场景么。对于无状态服务一般就是日志会写文件了,离线任务比如机器学习的模型也不敢给人家限制呀😂

    作者回复: 如果用户需要使用大容量的磁盘空间,需要使用volume. Quota主要来限制容器的rootfs, 这个rootfs一般是在host的磁盘会和别的容器共享,所以需要对它做限制。

    共 2 条评论
    3
  • Action
    2020-12-16
    老师 为什么overlayFS 并不是docker_id 呢? [root@localhost overlay2]# docker inspect 5440662c8db [ { "Id": "5440662c8db65d5d9ab522e0be1a3911584c492527fcde334c3fdec090cd3857", "Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55", "GraphDriver": { "Data": { "LowerDir": "/home/data/docker/overlay2/4146b7c314a97b46695a59ccdc323709eda7177b3e91ed30d3f4f9326a061584-init/diff:/home/data/docker/overlay2/dc1e8c89044058319c4e0b6917603f3ed8972cd155bfced0c7c0c2509ddaae14/diff", "MergedDir": "/home/data/docker/overlay2/4146b7c314a97b46695a59ccdc323709eda7177b3e91ed30d3f4f9326a061584/merged", "UpperDir": "/home/data/docker/overlay2/4146b7c314a97b46695a59ccdc323709eda7177b3e91ed30d3f4f9326a061584/diff", "WorkDir": "/home/data/docker/overlay2/4146b7c314a97b46695a59ccdc323709eda7177b3e91ed30d3f4f9326a061584/work" }, "Name": "overlay2" }, } ]
    展开

    作者回复: 看moby(docker)代码里,docker自己对这个目录自己做了一个随机数的生成,具体原因不清楚。

    
    1
  • 宝仔
    2020-12-11
    这个是一定要基于xfs文件系统吗?如果是ext4文件系统呢?

    作者回复: 我没有在ext4上测试过,不过通过内核信息,还有网上别人的尝试,ext4应该也是支持(project)quota的。 https://discuss.linuxcontainers.org/t/how-do-i-set-up-the-project-quota-needed-for-limiting-container-storage-size-for-the-dir-backend-on-ubuntu-18-04/7311 ``` commit 689c958cbe6be4f211b40747951a3ba2c73b6715 Author: Li Xi <pkuelelixi@gmail.com> Date: Fri Jan 8 16:01:22 2016 -0500 ext4: add project quota support This patch adds mount options for enabling/disabling project quota accounting and enforcement. A new specific inode is also used for project quota accounting. [ Includes fix from Dan Carpenter to crrect error checking from dqget(). ] Signed-off-by: Li Xi <lixi@ddn.com> Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Reviewed-by: Andreas Dilger <adilger@dilger.ca> Reviewed-by: Jan Kara <jack@suse.cz>

    
    1
  • DayDayUp
    2021-11-28
    老师讲的太好了,不知道面试贵司会不会有机会呢?老师在eBay哪个team啊?应届生要吗???

    作者回复: eBay cloud team. 我们一直在招人的。

    
    
  • 谢哈哈
    2020-12-11
    可以通过xfs_quota -x -c "report -pbih " 目录名称查询projectid
    
    6
  • 上邪忘川
    2020-12-11
    [root@localhost ~]# xfs_quota -x -c 'report -h /tmp/xfs_prjquota' Project quota on / (/dev/mapper/centos-root) Blocks Project ID Used Soft Hard Warn/Grace ---------- --------------------------------- #0 3.2G 0 0 00 [------] #2 8K 100M 100M 00 [------] #3 100M 100M 100M 00 [------] #101 10M 0 10M 00 [------]
    
    3