내 설정은 다음과 같습니다.
QEMU/KVM이 있는 물리적 호스트 -> Docker가 있는 가상 머신 -> rtorrent Docker 컨테이너
내부에 "data"라는 데이터 세트가 있는 "main"이라는 ZFS 풀이 있습니다. "데이터" 데이터 세트는 제안된 대로 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
이것이 제가 혼란스러워하는 부분입니다. 컨테이너에 연결되면 터치, wget을 통해 문제 없이 데이터 세트에 쓸 수 있습니다. 그런데 rtorrent에 torrent를 추가하면 아무 것도 쓰여지지 않습니다. "다운로드" 상태이며 다운로드 속도가 없습니다. Docker VM 로컬 디스크를 가리키도록 컨테이너 볼륨을 변경하면 모든 것이 제대로 작동합니다.
나는 rtorrent 프로세스를 추적했습니다(여기 링크) 하지만 여기에는 나에게 깊은 인상을 주는 것이 별로 없습니다. 어떤 조언이라도 대단히 감사하겠습니다.
답변1
이 문제는 다음을 통해 해결됩니다.https://unix.stackexchange.com/a/212014/245005
즉, 마운트 옵션에 "cache=mmap"이라는 플래그를 추가해야 작동합니다. 이제 잘 작동합니다.