我想这应该是非常基本的,但我已经尝试谷歌了,我已经阅读了docker documentation。但是,我仍然无法理解" 精简池"意味着它在码头工人世界中扮演的角色。
答案 0 :(得分:27)
短篇小说:
精简池是一种存储源,可为存储空间提供按需分配。它或多或少类似于虚拟内存,它为每个进程提供完整的地址空间。
长篇故事:
传统的存储分配方法被称为" fat"或"厚"供应
例如,用户声称使用10G存储空间。然后,胖配置为该用户保留10G物理存储空间,即使他/她仅使用其1%。没有其他人可以使用这个预留空间。
自动精简配置提供按需存储分配机制,允许用户声称拥有的存储空间超过为该用户物理保留的存储空间。
换句话说,它可以实现存储空间的过度分配。想想RAM的过度提交功能。
精简池是一个概念术语,代表精简配置使用的后备存储源。精简配置从精简池分配虚拟存储块,而胖配置从传统存储池分配物理存储块。
可以将Docker Engine配置为使用Device Mapper作为其存储驱动程序。这是您处理精简配置的地方。根据Docker的文档:
使用devicemapper存储驱动程序的生产主机必须使用direct-lvm模式。此模式使用块设备创建精简池。
需要处理两个不同的精简池空间:元数据空间(存储指针)和数据空间(存储真实数据)。在一开始,元数据空间中的所有指针都指向池中没有真正的块。在写请求到达之前,实际上没有分配数据空间中的块。如果你熟悉的话,这并不是什么新鲜事 虚拟内存机制。
让我们来看看docker info
的输出:
Data Space Used: 11.8 MB
Data Space Total: 107.4 GB
Data Space Available: 7.44 GB
Metadata Space Used: 581.6 kB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.147 GB
Thin Pool Minimum Free Space: 10.74 GB
在这里,唯一令人困惑的是Thin Pool Minimum Free Space
。它代表什么?
它指定新设备创建成功所需的精简池中GB的最小可用空间。此检查适用于可用数据空间以及可用元数据空间。
如果精简池中的可用空间小于docker pull
中的值,则容器创建(在docker run
或Thin Pool Minimum Free Space
期间)将失败。空间不足需要在精简池中添加更多存储空间或清除未使用的映像。
链接: