docker中的“精简池”是什么意思?

我想这应该是非常基本的,但我试图谷歌它,我已经阅读了码头文件。 然而,我仍然无法理解“ 精简池 ”究竟是什么意思,以及它在码头世界扮演的角色。


短篇故事:

精简池是为存储空间提供按需分配的存储源。 它或多或少类似于虚拟内存,它为每个进程提供完整的地址空间。

很长的故事:

脂肪供应

传统的存储分配方法被称为“胖”或“厚”配置。

例如,用户声称使用10G存储空间。 然后,胖配置为该用户保留10G物理存储空间,即使他/她只使用1%。 没有人可以使用这个保留的空间。

精简配置

自动精简配置提供按需存储分配机制,允许用户申请比为该用户物理保留的更多存储空间。

换句话说,它可以实现存储空间的过度分配。 考虑RAM的过度提交功能。

精简池

精简池是一个概念性术语,代表精简配置使用的后备存储源。 精简配置从精简池分配虚拟存储块,而胖配置则从传统存储池分配物理存储块。

Docker中的精简池

Docker引擎可以配置为使用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的最小可用空间,以便新设备创建成功。 此检查适用于免费数据空间以及免费元数据空间。

如果精简池中的可用空间小于Thin Pool Minimum Free Space可用空间中的值,则容器创建(在docker pulldocker run期间)会失败。 空间不足需要将更多存储添加到精简池中或清除未使用的映像。


链接:

  • 精简配置维基百科页面
  • lvmthin Linux手册页
  • 设备映射器
  • 链接地址: http://www.djcxy.com/p/41425.html

    上一篇: What does "Thin Pool" in docker mean?

    下一篇: state returned as function or object literal