社会焦点

TFS:新一代开源文件系统

字号+ 作者: 来源: 2017-05-25

TFS:新一代开源文件系统,tfs如何导出用例,光盘映像文件怎么安装系统,磁盘的文件系统结构已损坏,tfs661法兰撑开器,ghost win7系统镜像文件

  原文 | https://github.com/redox-os/tfs#design-goals/

  翻译 | 王江平

  译者注:这篇文章主要对TFS的设计目标和一些常见的问题进行了描述,结尾部分提供了部分与TFS相关的资源供读者参考。

  TFS是一款模块化,快速且功能丰富的新一代文件系统,采用现代技术使其具有高性能,高空间使用率和高扩展性,代码托管在Github上。

  TFS是由于需要一个用于Redox OS的现代文件系统而被创建的,作为ZFS的替代品,由于其集成设计思想而被证明不会很快的实现。灵感来源于ZFS,同时它的目标是模块化和易于实现。

  TFS与terminalcloud的同名文件系统无关。

  设计目标

  TFS 的设计目标如下:

  并发

  TFS 包含很少的锁,目的是尽可能适用于多线程系统。它利用多个真正的并发结构来管理数据,并按核心的数量进行线性扩展。这也许是 TFS 最重要的特性。

  异步

  TFS 是异步的:操作可以独立进行, 并且从磁盘写入和读取不需要阻塞。

  全磁盘压缩

  TFS是第一个通过我们称之为RACC(随机访问集群压缩)的方案来集成的全盘压缩的文件系统。这意味着每个群集都被压缩, 只会略微影响性能。据估计,可以获得60-120%的可用空间。

  修订记录

  TFS存储每个文件的修订历史记录,而不会增加额外的开销。 这意味着你可以将任何文件还原到较早的版本,自动备份系统,而不会造成复制的开销。

  即写即拷语义(写时复制语义)

  与Btrfs和ZFS类似,TFS使用CoW语义,这意味着不会直接覆盖集群,而是复制并写入新的集群。

  (1) 递归拷贝

  与一些文件系统一样,TFS 可以在不变的时间内执行递归拷贝,但是还有一个独特的补充: TFS 即使在突变之后也不会复制。 那是怎样工作的呢?它单独维护文件的各个部分, 这样只需要复制更新的段。

  保证原子性

  系统永远不会进入不一致状态 (除非硬件出现故障), 这意味着意外断电不会损坏系统。

  缓存改进

  TFS在缓存磁盘时提高了磁盘访问的速度。它使用机器学习方式来学习模式和预测未来的使用, 以减少缓存遗漏的数量。TFS 还压缩内存中的缓存,,减少了所需的内存量。

  更好的文件监控

  CoW非常适合高性能,可扩展的文件监控,但不幸的是,只有很少的文件系统包含在内。 TFS是其中之一。

  所有内存安全

  TFS只使用在Rust中编写的组件。 因此,内存不安全只能在标记为不安全的代码中进行,这是非常仔细的检查。

  全面覆盖测试

  TFS旨在全面覆盖测试。 通过立即显示大类的错误,这对正确性提供了相对较强的保证。

  SSD友好设计

  TFS试图通过重新定位死区来避免SSD中的写入限制。

  改进的垃圾回收

  TFS使用Bloom过滤器进行空间高效和快速的垃圾回收。 TFS允许FS垃圾回收器在后台运行,而不会阻塞文件系统的其余部分。

  常见问题

  为什么使用SPECK作为默认密码?

  SPECK是一个相对较新的密码,但它已经受到了很多 (无效) 的密码分析,所以它是相对安全的。它有非常棒性能和简单的实现。可移植性是 TFS 设计的一个重要部分, 真正可移植的 AES 实现没有旁道攻击, 这比许多人想象的要难 (特别是,大多数便携实现中都存在 SubBytes 问题)。SPECK没有这个问题,因此可以通过最小的努力安全地实现移植。

  TFS 和 ZFS 的相似程度?

  实际上并不那么相似,它们有许多基本的思想类似,但除此之外,它们本质上是不相干的。但ZFS的设计对TFS的形成起了很大的助推作用 。

  TFS是否只有Redox-only?

  不,它从来没有计划仅仅是 Redox-only。

  整个磁盘压缩如何工作?

  根据我的了解,全盘压缩是TFS专有的。它通过将多个“页面”(虚拟数据块)收集到“集群”(分配单元)中起作用。这样,可以通过简单地解压缩各个集群来读取页数据。

  为什么 ZMicro 这么慢?它会影响 TFS 的性能吗?

  ZMicro这么慢的原因是因为它在一定程度上起作用,为性能提供了出色的压缩比。这种可怕的缓慢性能是由减少写入次数为代价的。事实上,ZMicro的50%以上的分配只会写入一个扇区,而不是3个。其次,无论磁盘的速度有多快,它都不会接近 ZMicro 的性能,因为磁盘操作本质上是缓慢的,从这点来看, 压缩的表现确实不重要。

  可扩展哈希或B+树?

  都不是。TFS使用树和哈希表的组合:嵌套的哈希表,一种哈希树的形式。 其思想是,在Bucket(译者注:可理解为容器)中创建一个新的子表,而不是重新分配。

  设计资源

  一些关于TFS设计的文章:

  • SeaHash: Explained. 这描述了TFS设计的默认校验和算法。

  • On Random-Access Compression. 这个帖子描述了用于随机访问压缩的算法。

  • Ternary as a prediction residue code. 使用这一点与创建良好的自适应(无头)熵压缩器有关。

  • How LZ4 works.这描述了LZ4压缩算法的工作原理。

  • Collision Resolution with Nested Hash Tables. 这描述了我们用于目录结构的嵌套哈希表的方法。

  • An Atomic Hash Table. 这描述了并发的内存中哈希表/键值存储。

  •   规范

      完整的规范可以在specification.tex中找到。若要呈现它,请安装 pdflatex, 然后运行。

      然后打开名为 specification.pdf 的文件。

      本文「设计资源」等部分内容所涉文章链接可点击「阅读原文」查看。

    相关阅读:

  • 系统注册表文件丢失或损坏
  • 光盘映像文件怎么安装系统
  • 系统找不到指定的文件
  • 系统休眠文件可以删除吗
  • 系统文件修复工具
  • ghost win7系统镜像文件
  • tfs661法兰撑开器
  • redox操作系统
  • tfs如何导出用例
  • 磁盘的文件系统结构已损坏
  • 系统镜像文件官方下载
  • 文件系统的类型是raw
  • 相关推荐:

  • 华为史上最美操作系统,你绝对不能错过的EMUI5.0
  • 国产操作系统典范:deepin操作系统
  • 娱乐办公两不误!这个笔记本能把屏幕拔下来写字
  • 斗鱼响应新规加强监管,坚持打造优质精品直播
  • SpaceX 火箭爆炸原因确定:液态氧过冷成了固态
  • 华为Mate9中国版真机秀 你绝对没发现它有两种版本
  • 99%的人都不知道的微信高效使用术?
  • 乐视网一周蒸发88亿元 贾跃亭反思节奏发展过快
  • 似乎已经战胜传统渠道的小米 今年为什么被OPPO、vivo 打败?
  • 优雅商务风,性能一鸣惊人—TCL 950体验评测
  • 转载请注明出处。


    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章