当前位置: 首页 > 面试题库 >

泊坞窗中的“瘦池”是什么意思?

袁奇文
2023-03-14
问题内容

我想这应该很基本,但是我已经尝试过搜索它,并且阅读了docker文档。但是,我仍然无法理解“ Thin Pool ”的确切含义以及它在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为单位)。此检查适用于可用数据空间以及可用元数据空间。

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

链接:

  • 精简配置Wikipedia页面
  • lvmthin Linux手册页
  • 设备映射器


 类似资料:
  • 问题内容: 我正在docker容器内的GCE上运行jenkins实例,并希望从此Jenkinsfile和Github执行多分支管道。我正在为此使用GCE詹金斯教程。这是我的 我总是得到一个错误: 为了使docker在jenkins中工作,我需要更改什么? 问题答案: 看起来像DiD(Docker中的Docker),最近的一期杂志指出这是有问题的。 请参阅“ 在您的CI或测试环境中使用Docker-

  • 问题内容: 可以使用命令(mirror)(在Docker 1.13.0中引入)来查看Docker磁盘的使用情况,例如: 如何计算“ RECLAIMABLE” ?即,它代表什么? (mirror)上的Docker 文档没有对此进行解释。所述多克尔词汇表(镜)不包含的术语“可回收”。 问题答案: 嗨@Franck Dernoncourt! 是“未使用”的图像所消耗的空间(意味着没有基于这些图像的容器正

  • 我在windows 10 home上工作。 当我运行docker快速启动终端快捷方式或直接运行 start.sh 时,我收到消息: Docker Machine未安装。请重新运行工具箱安装程序,然后重试。看起来“查找vboxmanage.exe”步骤出错…按任意键继续。。。 我尝试重新安装,选择了所有选项,包括NDIS5驱动程序,但我没有帮助。运动学工作正常,但我无法在终端中运行docker。 我

  • 我已经在windows10机器上设置了docker。 我的docker在命令行上工作正常。 但Kitematic不工作,并出现以下错误 命令失败:C:\程序文件\Docker工具箱\docker-machine.exe -D 创建 -d 虚拟盒 --虚拟盒内存 2048 默认,Docker 机器版本: 0.13.0, build 9ba6da9,在 C:\程序文件\Docker 工具箱\docke

  • 问题内容: 我想在使用Selenium WebDriver和Docker而不是虚拟机的同一台计算机上运行多个Internet Explorer版本。据我所知,Docker完全在Linux上运行,这将使Docker中的IE无法实现。我之所以问是因为我看到Docker在Microsoft Azure上运行。 问题答案: Docker当前不适用于基于Windows的应用程序。Azure上的Docker是

  • 我总是被告知以root用户身份登录是不好的做法。然而,这是Docker在其容器中默认做的事情,因此某些包会打印警告。 我应该切换到标准用户并在我的容器中使用sudo吗?或者这并不比在Docker容器中使用root用户有什么好处? 我的容器运行的是php8.1:apache(在Debian 11上),我在我网站的服务器上使用它。它有两个打开的端口和一个共享卷(在< code>/var/www/hmt