临时文件系统

临时文件系统

我有一个 Jenkins 构建服务器(Linux)和一个代理(Windows),它们都创建了大型临时工作区,可以有效地像缓存一样处理:

  • 如果他们保留下来就好了
  • 如果丢失可以恢复
  • 如果丢失,数据应该是丢失的而不是损坏的

是否存在一个文件系统,允许我牺牲数据的持久性来换取速度,仍然允许我在重启后保留数据,但会丢弃可能受到不正常关机影响的数据,理想情况下粒度为“顶级目录”?

典型的情况是,这会被挂载到包含工作区的目录中,因此每个作业都会创建一个顶层目录。作业运行时,会读取和写入层次结构深处的各种文件。如果机器在作业运行时崩溃,并且文件可能处于不一致状态,则应在文件系统检查期间删除整个作业目录,因为它可以轻松重新创建。

答案1

不要以为你会在文件系统中找到你想要的东西。

不过,您可以做的是,作为作业的最后一步(在您想要保存缓存的某个时刻),让它创建一个具有一致名称的文件 -/storage/jobID/job_complete或者其他名称。启动时,如果该文件不存在于作业目录中,则 rm -r 作业目录。这解决了您的“半成品作业”问题。

接下来,您需要速度。是时候考虑使用 SSD 等新硬件或考虑实施 RAID 0 了。虽然 0 表示如果一个驱动器坏了您可以恢复多少数据,但您可以获得写入和读取速度的大幅提升。(我在当地一所大学支持的媒体中心使用 RAID-1 进行实时视频捕获,然后将生成的文件移动到 SAN 存储)。

相关内容