Locality and The Fast File System

“old UNIX file system” looked like this:

super block(S): contains information about the entire file system
inode region: contains all the inodes for the file system
data region: contains user data

1. The Problem: Poor Performance

The problem: performance was terrible. The file system was delivering only 2% of overall disk bandwidth.

The main issue was that the old UNIX file system treated the disk like it was a random-access memory. For example, the data blocks of a file were often very far away from its inodes, thus inducing an expensive seek whenever one first read the inode and then the data blocks of a file.

Worse, the file system would end up getting quite fragmented, as the free space was not carefully managed.

when accessing E, you don’t get peak (sequential) performance from the disk.

One other problem: the original block size was too small (512 bytes). 对于每个块而言,太小有利于减少块内部碎片化,但是不利于传输,块太小导致定位查找开销增加。

故关键问题为:如何组织磁盘数据去提升性能?

2. FFS:Disk Awareness Is The Solution

Fast File System(FFS):简而言之,就是保持以前文件系统的原有接口(相同的APIs,包含open()read()write()close()和其他的文件系统调用接口)但是改变内部实现。

3. Organizing Structure: The Cylinder Group

第一步就是改变磁盘结构。FFS将磁盘分成多个柱面组(cylinder groups)。单个圆柱体是硬盘驱动器不同表面上的一组磁道,这些磁道距驱动器中心的距离相同。

如下所示,显示了具有6个盘片的驱动器的四个最外轨道,以及一个由三个圆柱组成的圆柱组:

现代文件系统会导出块的逻辑地址空间,故无法为文件系统导出足够的信息,无法真正了解是否正在使用特定的柱面。

文件系统将驱动器组织成块组(block groups),每个块组为磁盘连续的空间。如下所示:每8个块分成一组

如果文件系统把两个文件放到同一个组,那么接连获取两个文件不会造成很长的寻道时间。

FFS里单个圆柱组如下所示:

FFS保留了超级块(S)的副本,故当一个超级快失效后,还有其他块可用;FFS需要追踪组中哪个索引节点和数据块已经被使用。

4. Policies: How To Allocate Files and Directories

为了提升性能,FFS在磁盘中放置文件、目录和相关元数据的原理非常简单:保持相关内容在一起(keep related stuff together)。为了达到这个目的,FFS利用了一些简单的布局试探法。

首先是目录的放置:找到分配的目录数量少和大量的空闲索引节点的柱面组,然后将目录数组和索引节点放入该组中。

对于文件:首先确保将文件的数据块与索引节点分配在同一组中,确保查找时间最小;然后将所有文件放在其所在目录的柱面组中的同一目录中。

41. Fast File System (FFS)相关推荐

  1. 13.19. File system test

    写写空文件 $ dd bs=1 seek=2TB if=/dev/null of=test $ time dd if=/dev/zero of=/srv/file bs=1M count=1000 写 ...

  2. GFS - The Google File System

    The Google File System http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.125.789&rep=rep1 ...

  3. oracle数据库read only,oracle 报错Linux-x86_64 Error: 30: Read-only file system

    本帖最后由 ccton 于 2014-2-18 12:08 编辑 [root@**** hydata]# cat /etc/redhat-release Red Hat Enterprise Linu ...

  4. The Google File System

    摘要 我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的.可伸缩的分布式文件系统.GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性 ...

  5. MapReduce论文中文版--The Google File System

    摘要 MapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现.用户首先创建一个Map函数处理一个基于 key/value pair的数据集合,输出中间的基于key/valu ...

  6. 【翻译】Xv6 book Chapter 8:File system

    Chapter 8 File system 文件系统的目的是阻止和存储数据.文件系统持久地支持在用户和应用之间分享数据,所以这些数据在重启之后仍然是可以得到的. xv6的文件系统提供了类Unix的文件 ...

  7. Google File System中文版

    英文原文地址: Google File system 译文原文地址: The Google File System中文版 Google File System中文版 摘要 我们设计并实现了Google ...

  8. The Google File System 中文版论文(下)(转载)

    5. 容错和诊断 我们在设计GFS时遇到的最大挑战之一是如何处理频繁发生的组件失效.组件的数量和质量让这些问题出现的频率远远超过一般系统意外发生的频率: 我们不能完全依赖机器的稳定性,也不能完全相信硬 ...

  9. The Google File System 中文版论文(转载)

    The Google File System 中文版论文(转载) 肯定有很多人云亦云博友已经看过这篇论文的英文版,但如果有机会再看一遍中文版的话,估计会更理解GFS的精髓,原文地址,中文版地址,并在这 ...

最新文章

  1. 2012年我的十大工程9——形象工程
  2. 解决Sqlite UTF-8中文数据格式在DOS窗口下中文乱码
  3. 八进制、十进制、十六进制及字符相互对应表
  4. python脚本怎么使用_在Python中使用next()方法操作文件的教程
  5. python统计自己微信好友并抓取信息
  6. docker和虚拟机的区别_详解win7操作系统下安装部署Docker环境
  7. 【Redis】redis开机自启动、设置守护进程、密码设置、访问权限控制等安全设置(redis默认端口6379)...
  8. Codeforces 650 D. Zip-line
  9. java 父类私有成员_java父类私有成员
  10. ECMAScript 2021 特性
  11. 面向对象的两大迷思,再给你们解答一次
  12. manifest.json文件的 “name” “description” “version 字段解释
  13. 50多条mysql数据库优化建议
  14. MYSQL 表左连接 ON AND 和ON WHERE 的区别
  15. PHP+Redis实现高并发
  16. 排序(使用插入法对数组元素从小到大排序)
  17. 京东2016春招(实习)笔试+编程题
  18. linux命令之partprobe
  19. 1170111415杨宇-微信小程序MiniProgramForHD
  20. 负数的补码计算,简洁明了

热门文章

  1. UTD2102CEX 示波器波形数据导出注意事项
  2. 干货分享 | 用Pyecharts绘制20钟不同风格的炫酷交互式图表,建议收藏
  3. HR提出的面试问题参考答案
  4. 为什么IM不适合直接运行在公链上?
  5. 研电赛项目之双目测距,涉及matlab相机标定,opencv多线程编程,摄像头读取,行人检测、BM立体匹配等等
  6. 头歌:打印直角三角形
  7. OpenCV开发笔记(七十一):红胖子8分钟带你深入级联分类器训练
  8. 如何30秒做出精美的Word排版?
  9. 《信用管理》--信用评分方法
  10. 捷联惯导知识点之非直角坐标系到直角坐标系