问题标签 [device-mapper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
268 浏览

docker - Docker devicemapper (direct-lvm) 元数据获取大量文件夹

嗨,我在 Centos 7 上有 3 个节点 Swarm docker setup(1 个管理器,2 个节点)。我正在为所有三个 VM 使用 devicemapper 数据存储。问题是,经过一段时间的文件夹:

/var/lib/docker/devicemapper/metadata 和 ../mnt

有这么多文件/文件夹,它们甚至不能被“ls'ed”。docker system prune 和 docker volume prune 不会清除 antyhing。

任何想法为什么会发生以及如何解决它?

0 投票
1 回答
349 浏览

docker - docker-storage-setup 软件包在我的 rhel 7 盒子上不可用?我怎么得到它?我需要使用设备映射器创建一个精简池。

我正在尝试在我的 rhel 盒子上创建一个精简池以与 devicemapper 一起使用,因为这是使用 docker 存储的推荐方式。但不幸的是,我无法在我的机器上找到创建精简池所需的 docker-storage-setup 包。我该怎么做呢?首先,它真的需要吗?

0 投票
0 回答
1297 浏览

docker - 如何清除 docker 的瘦池设备

我正在使用 devicemapper 和 Thinpool 设备的 Redhat 系统上运行 docker,就像推荐用于生产系统一样。现在,当我想重新安装 docker 时,我需要两个步骤:

1)删除 docker 目录(在我的情况下是 /area51/docker)
2)清除 Thinpool 设备

docker文档指出,当使用带有 dm.metadev 和 dm.datadev 选项的 devicemapper 时,清理 devicemapper 的最简单方法是:

如果设置一个新的元数据池,它必须是有效的。这可以通过将前 4k 归零以指示空元数据来实现,如下所示:

不幸的是,根据文档,dm.metadatadev不推荐使用,它说要dm.thinpooldev 改用。

我的瘦池是按照这个 docker 指令创建的 所以,我的设置现在看起来像这样:

在 devicemapper 目录下,我看到以下瘦池设备

因此,在成功运行 docker 后,我尝试如上所述重新安装并通过将 4K 零写入 tmeta 设备并重新启动 docker 来清除瘦池:

并与

我以为我可以通过重新启动来解决“无法获得精简池的所有权”的问题。但是在重新启动并尝试再次启动 docker 后,我收到以下错误:

因此,显然将零写入 Thinpool_meta 设备是不正确的做法,它似乎破坏了我的 Thinpool 设备。

这里有人可以告诉我清除精简池设备的正确步骤吗?该解决方案最好不需要重新启动。

0 投票
1 回答
670 浏览

docker - 根据联合文件系统,图像实际上是否包含另一个图像?

在 Docker 中,图像是只读图像层的堆栈。我们也知道图像共享图层或其他图像。我的问题是关于这种共享机制是如何工作的。

图像是否具有指向 Docker 存储驱动程序的指针,或者它们实际上是否包含其他层?如果第一个是真的,这是否意味着 Dockerfile 将这些层保存到守护进程中,并且图像是有序检索这些层的指令?

0 投票
2 回答
203 浏览

c - 创建一个重要的设备映射器目标

我正在尝试编写一个重新映射目标以与 DM 一起使用。

我遵循了几个地方(包括这个答案)的说明,它们基本上都给出了相同的代码。

这没关系,但对我来说还不够。

我需要修改struct bio被重新映射的“在途”数据。

这意味着我需要对 进行深度克隆bio,包括数据;显然提供的功能(例如:)bio_clone_bioset()根本不复制数据,而是指向iovec原始页面/偏移量。

我尝试了以下方案的一些变体:

但是,这不起作用

当我submit_bio()使用克隆的生物时,我没有.end_io接到电话,并且调用任务被阻止(“信息:任务挂载:488 被阻止超过 120 秒。”)。这与一个READ由单个iovec(1024 字节)组成的请求。在这种情况下,当然 in 缓冲区不需要复制,因为它们应该被覆盖;请求完成后,我需要将传入的数据复制回原始缓冲区......但我没有到达那里。

我很明显错过了一些东西,但我无法理解是什么。

注意:我没有做任何优化(例如:使用更智能的分配策略),因为我需要先了解基础知识。

注意:我纠正了一个错误(感谢@RuslanRLaishev),不幸的是ininfluent;看我自己的答案。

0 投票
1 回答
2305 浏览

docker - docker devicemapper 数据文件大小呈指数增长并消耗我的主机磁盘 90%

我的 Docker 详细信息

客户:

服务器:

码头工人信息:

我的 /var/lib/docker 显示:

主机上只有 2 个容器正在运行,但是磁盘大小每天都在增加。在没有报告问题的其他主机/虚拟机上使用相同的 docker 版本。请帮我。

跟随 docker devicemapper 数据文件大小呈指数增长 #22659 但没有发现任何帮助。

0 投票
1 回答
1008 浏览

docker - 从 RHEL 卸载 Docker 后,删除关联文件时遇到问题

我在 RHEL 上安装了 Docker EE。现在,当我需要卸载时,按照文档上的说明,我需要运行sudo rm -rf /var/lib/docker. 然而,这给了我以下错误:

rm: cannot remove ‘/var/lib/docker/plugins/11d2935e42e055dda59b62977de0c00bb18d820c6eccdff964f232276a6e7cd7/rootfs/dev’: Device or resource busy rm: cannot remove ‘/var/lib/docker/plugins/11d2935e42e055dda59b62977de0c00bb18d820c6eccdff964f232276a6e7cd7/rootfs/etc/resolv.conf’: Device or resource busy rm: cannot remove ‘/var/lib/docker/plugins/11d2935e42e055dda59b62977de0c00bb18d820c6eccdff964f232276a6e7cd7/rootfs/etc/hosts’: Device or resource busy rm: cannot remove ‘/var/lib/docker/plugins/11d2935e42e055dda59b62977de0c00bb18d820c6eccdff964f232276a6e7cd7/rootfs/proc’: Device or resource busy rm: cannot remove ‘/var/lib/docker/plugins/11d2935e42e055dda59b62977de0c00bb18d820c6eccdff964f232276a6e7cd7/rootfs/run/docker’: Device or resource busy rm: cannot remove ‘/var/lib/docker/plugins/11d2935e42e055dda59b62977de0c00bb18d820c6eccdff964f232276a6e7cd7/rootfs/sys’: Device or resource busy rm: cannot remove ‘/var/lib/docker/devicemapper’: Device or resource busy

我应该如何完全删除这些文件?

0 投票
0 回答
1258 浏览

docker - 如何解决 /dev/mapper/docker 满了?

我正在开发一些 docker 容器。在尝试安装一些 python 包时 /dev/mapper/docker 被填满。我阅读了Clean docker environment: devicemapper,但这将停止破坏容器并影响当前的工作流程。如何在不影响正在运行的容器的情况下减小它的大小?

0 投票
0 回答
438 浏览

docker - Docker设备映射器:找不到存储图像的位置

使用 ECS AMI 运行 AWS ec2。我从私人存储库中提取了一个图像。图像被拉取,其大小为 19.37GB。存储驱动程序是设备映射器。做一个 docker system df -v 显示:

19.37GB 存储在哪里?另外,docker的文档链接说,层存储在/var/lib/docker/storage-driver/layers/中,但我似乎找不到/var/lib/docker/devicemapper/layers。此外,这里是 devicemapper 目录的列表。

0 投票
1 回答
171 浏览

docker - docker - 如何确定哪个挂载属于哪个映像?

我们使用设备映射器存储驱动程序。这可能更像是一个 docker 而不是 k8s 的问题。

有没有办法确定这个坐骑的来源

/opt/dsx/ibm-data-platform/docker/devicemapper/mnt/b1127f21d5fd96b2ac862624d80b928decc1d60b87ec64d98430f69f360d3cee/rootfs/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.39.x86_64/jre/lib

您将devicemapper/mnt/b1127f21d5fd96b2ac862624d80b928decc1d60b87ec64d98430f69f360d3cee其视为路径的一部分..

我们使用捆绑了 67 个不同图像的商业产品。上面的一个特定的有一个非常旧的 Java .. 我们想知道 docker mount 来自哪个图像。

谢谢!