devome / dockerfiles

一些Dockerfile
https://evine.win
GNU General Public License v3.0
200 stars 22 forks source link

一个关于选择保存文件夹的小建议 #112

Open 188334911 opened 1 year ago

188334911 commented 1 year ago

首先感谢作者。 现在很多朋友都是用多个硬盘在下载,一些看过的没有保存意义的就会删掉,逐渐积累之后就会造成每个硬盘都有一定空间空余,能不能增加一个功能就是在下载的时候根据设定的条件(比如最大剩余空间、最小剩余空间)等来选择下载到哪个盘?

devome commented 1 year ago

这个实现不了。docker使用的是overlay文件系统,和你理解的硬盘不一样,你可以简单地理解为每一个映射就是一个独立的硬盘。那么假如我一块硬盘上的文件夹分别进行了映射,对容器来讲,映射几次它就当做多了几块硬盘,而事实上在宿主机上它们都是一块硬盘上的。 另外,下载到哪里是必须在上传种子或者链接时就要确定了。脚本只能做到当有新任务时执行相应任务,即使能做到你所说的,也只能在新任务添加之后执行。那么在添加之后假如检测到所设置的位置不是最大剩余空间,那么就要将种子保存路径移动到最大剩余空间下。你知道种子越大,这个移动有多费时吗(一般大家都是开启预占用空间的)?即使在宿主机上源路径和目标路径在一块硬盘,但只要分处在不同的映射上,docker就会当做是两块硬盘,移动也会很慢。并且移动的时候是不会下载的,不知道的人会以为他的qb出问题了。

188334911 commented 1 year ago

感谢回复,如果不能在下载前选择的话,能不能换个思路,在下载完成后执行脚本,自动根据就设置的条件(比如剩余空间大小)将相应的文件转移到其他文件夹?

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2023年10月22日(星期天) 上午6:18 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [devome/dockerfiles] 一个关于选择保存文件夹的小建议 (Issue #112)

这个实现不了。docker使用的是overlay文件系统,和你理解的硬盘不一样,你可以简单地理解为每一个映射就是一个独立的硬盘。那么假如我一块硬盘上的文件夹分别进行了映射,对容器来讲,映射几次它就当做多了几块硬盘,而事实上在宿主机上它们都是一块硬盘上的。 另外,下载到哪里是必须在上传种子或者链接时就要确定了。脚本只能做到当有新任务时执行相应任务,即使能做到你所说的,也只能在新任务添加之后执行。那么在添加之后假如检测到所设置的位置不是最大剩余空间,那么就要将种子保存路径移动到最大剩余空间下。你知道种子越大,这个移动有多费时吗(一般大家都是开启预占用空间的)?移动的时候是不会下载的,不知道的人会以为他的qb出问题了。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

devome commented 1 year ago

出于对整体磁盘io影响考虑,这不是个好建议。

另外,你还要考虑移动是怎么移。/media1/movies移动到/media2还是/media2/movies?怎么区分不同的资源类型?短时间内下完多个种子,结果A种子从磁盘1向磁盘2移,B种子从磁盘2向磁盘3移,而C种子刚好比他们晚一些,刚下到磁盘3,结果现在是磁盘1空间最小,它又得向磁盘1移。这不是不可能的。你知道这对hdd影响有多大吗?