问题标签 [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.
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。
任何想法为什么会发生以及如何解决它?
docker - docker-storage-setup 软件包在我的 rhel 7 盒子上不可用?我怎么得到它?我需要使用设备映射器创建一个精简池。
我正在尝试在我的 rhel 盒子上创建一个精简池以与 devicemapper 一起使用,因为这是使用 docker 存储的推荐方式。但不幸的是,我无法在我的机器上找到创建精简池所需的 docker-storage-setup 包。我该怎么做呢?首先,它真的需要吗?
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 设备。
这里有人可以告诉我清除精简池设备的正确步骤吗?该解决方案最好不需要重新启动。
docker - 根据联合文件系统,图像实际上是否包含另一个图像?
在 Docker 中,图像是只读图像层的堆栈。我们也知道图像共享图层或其他图像。我的问题是关于这种共享机制是如何工作的。
图像是否具有指向 Docker 存储驱动程序的指针,或者它们实际上是否包含其他层?如果第一个是真的,这是否意味着 Dockerfile 将这些层保存到守护进程中,并且图像是有序检索这些层的指令?
c - 创建一个重要的设备映射器目标
我正在尝试编写一个重新映射目标以与 DM 一起使用。
我遵循了几个地方(包括这个答案)的说明,它们基本上都给出了相同的代码。
这没关系,但对我来说还不够。
我需要修改struct bio
被重新映射的“在途”数据。
这意味着我需要对 进行深度克隆bio
,包括数据;显然提供的功能(例如:)bio_clone_bioset()
根本不复制数据,而是指向iovec
原始页面/偏移量。
我尝试了以下方案的一些变体:
但是,这不起作用。
当我submit_bio()
使用克隆的生物时,我没有.end_io
接到电话,并且调用任务被阻止(“信息:任务挂载:488 被阻止超过 120 秒。”)。这与一个READ
由单个iovec
(1024 字节)组成的请求。在这种情况下,当然 in 缓冲区不需要复制,因为它们应该被覆盖;请求完成后,我需要将传入的数据复制回原始缓冲区......但我没有到达那里。
我很明显错过了一些东西,但我无法理解是什么。
注意:我没有做任何优化(例如:使用更智能的分配策略),因为我需要先了解基础知识。
注意:我纠正了一个错误(感谢@RuslanRLaishev),不幸的是ininfluent;看我自己的答案。
docker - docker devicemapper 数据文件大小呈指数增长并消耗我的主机磁盘 90%
我的 Docker 详细信息
客户:
服务器:
码头工人信息:
我的 /var/lib/docker 显示:
主机上只有 2 个容器正在运行,但是磁盘大小每天都在增加。在没有报告问题的其他主机/虚拟机上使用相同的 docker 版本。请帮我。
跟随 docker devicemapper 数据文件大小呈指数增长 #22659 但没有发现任何帮助。
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
我应该如何完全删除这些文件?
docker - 如何解决 /dev/mapper/docker 满了?
我正在开发一些 docker 容器。在尝试安装一些 python 包时 /dev/mapper/docker 被填满。我阅读了Clean docker environment: devicemapper,但这将停止破坏容器并影响当前的工作流程。如何在不影响正在运行的容器的情况下减小它的大小?
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 目录的列表。
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 来自哪个图像。
谢谢!