VM 上的 Docker 容器未写入 ZFS 数据集

VM 上的 Docker 容器未写入 ZFS 数据集

我的设置如下:

带有 QEMU/KVM 的物理主机 -> 带有 Docker 的虚拟机 -> rtorrent Docker 容器

我有一个名为“main”的 ZFS 池,其中有一个名为“data”的数据集。 “数据”数据集通过 virtio 内核模块安装在虚拟机上,如建议的那样这个链接。从这里,我的 rtorrent Docker 容器将其下载卷映射到虚拟机上已安装的数据集:

$ docker run -dt --name rtorrent-rutorrent --network=host -p 8080:80 -p 49160:49160/udp -p 49161:49161 -v /data/rtorrent:/downloads -e "NOIPV6=1" diameter/rtorrent-rutorrent:latest

这就是我感到困惑的地方:当我附加到容器时,我可以通过 touch、wget 写入数据集而不会出现问题。然而,当我向 rtorrent 添加 torrent 时,没有任何内容写入。它处于“下载”状态,没有下载速度。一旦我将容器卷更改为指向 Docker VM 本地磁盘,一切都会正常运行。

我对 rtorrent 进程做了一些跟踪(链接在这里)但这里并没有太多让我印象深刻的东西。任何意见将不胜感激。

答案1

这是通过以下方式解决的:https://unix.stackexchange.com/a/212014/245005

简而言之,需要在挂载选项中添加一个标志才能使其工作 - “cache=mmap”。现在可以正常工作了。

相关内容