使用 DeviceMapper 设置磁盘配额

Posted

技术标签:

【中文标题】使用 DeviceMapper 设置磁盘配额【英文标题】:Set disc quota with DeviceMapper 【发布时间】:2016-02-12 06:57:27 【问题描述】:

我已将存储插件更改为DeviceMapperDocker info 给出以下输出。

Server Version: 1.9.0
Storage Driver: devicemapper
 Pool Name: docker-253:1-16-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 107.4 GB
 Backing Filesystem: extfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 1.821 GB
 Data Space Total: 268.4 GB
 Data Space Available: 11.66 GB
 Metadata Space Used: 2.101 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.145 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.90 (2014-09-01)
Execution Driver: native-0.2

首先,我不知道如何设置每个容器的配额。我应该在docker run 命令中使用flgas 吗?

【问题讨论】:

【参考方案1】:

使用 devicemapper 作为存储插件,您不能设置每个容器的磁盘大小。每个容器的大小都是固定的。根据docker info 的输出,它表明固定大小约为100GB。但是,根据您的要求,您可以选择以下 2 个选项之一。

a.) 您可以将此固定大小从 100GB 更改为其他值,例如 20GB,但在这种情况下,所有容器的固定磁盘大小都将是 20GB。如果您想继续使用此选项,可以按照以下步骤操作:

    停止 docker 服务,sudo service docker stop

    删除现有的 docker 目录(在你的情况下是默认的 一个,即/var/lib/docker)--注意这将删除你所有的 现有的 docker 镜像和容器。

    使用选项 docker daemon -s devicemapper --storage-opt dm.basesize=20G 启动 docker 守护进程

    或者代替步骤3,在文件/etc/default/docker中添加选项DOCKER_OPTS='-g /var/lib/docker -s devicemapper --storage-opt dm.basesize=5G'并重启docker服务

    sudo service docker start

现在,无论您生成什么容器,磁盘大小都将是 20GB。

b.) 作为第二种选择,您可以从您设置的任何基本磁盘大小增加现有容器的磁盘大小。 (默认情况下为 100GB,如果您遵循第一个选项,则为 20GB)。为此,here 是一篇非常有用的文章,您可以关注。这可能有助于让您为不同的容器设置不同的磁盘大小。

希望这个答案对您的要求有用,谢谢。

【讨论】:

我之前和 Jérôme Petazzoni 谈过这个问题。他说,这个解决方案已被弃用,所以不起作用。 我已将解决方案与 docker 1.9 及其工作一起使用。甚至我已经使用此解决方案根据我们的要求修改了 docker 源代码,即仅在创建容器时,我发送容器的磁盘大小并更改其磁盘大小并调整 FS 大小,它也可以在那里工作。即使我看到here 一些工作将在未来的 docker 版本中实现类似的方法。如果有帮助,你可能会遵循这个。 您是否有关于此解决方案的教程或文章?听起来很有趣。磁盘配额限制是当今 Docker 非常有趣的部分!

以上是关于使用 DeviceMapper 设置磁盘配额的主要内容,如果未能解决你的问题,请参考以下文章

Linux磁盘管理系列 — 磁盘配额管理

linux磁盘配额可以通过哪两种方法对用户进行限制?

磁盘配额的设置

磁盘配额设置及使用

centos7的磁盘配额有啥特点

怎么设置 磁盘配额