《云存储系统设计》.pdf
文本预览下载声明
云存储系统设计
邓侃博士 dengkan@
1 / 30
单机文件系统
面临的问题
2 / 30
文件路径
元数据:
文件名、尺寸、类型、时间戳、作者,等等
文件系统的功能:
树形结构的文件目录 创建文件、删除、列清单,
读、写、查、开启、关闭。
3 / 30
Linux Ext2 文件系统数据结构
Ext2 Physical Layer
Ext2 Directory
文件内容
元数据
Ext2 iNode
目录树
4 / 30
Linux Ext2 文件系统功能模块
在读写过程中,
文件内容暂存在内存。
Virtual File System
提供统一的APIs ,
不依赖于文件系统的
具体实现。
统一的驱动接口,
不依赖于具体的设备。
控制信号流
与数据流分离。
5 / 30
Ext2 Physical Layer
• 通常硬盘空间被划分为若干组,每一组又细分为若干块。
• 每一组中的所有块,尺寸都相同。
但是不同组,下属的块的尺寸可以不同。
• 在写入某尺寸的数据前,
先找到可写空间最适宜的块,所谓最适宜,
通常指可写空间比写入内容的尺寸相同或略大。
• 把硬盘划分为组与块的目的,
为了便于增删改,便于重复使用。
如同停车场划分停车位一样。
• 当删除文件时,需要记住被释放的块。
• 问题:1. 有空间被浪费。
2. 文件内容不一定被存储在连续空间,降低读写速度。
6 / 30
• 往现有文件里,写入更多内容时,
硬盘空间的分配,是根据内容占用的空间而定,
所以,无法保证整个文件被存放在连续的硬盘空间。
• 频繁增删改文件内容,会导致文件的内容,
被放置在离散的硬盘空间里,这就是Fragmentation 问题。
• Fragmentation 导致硬盘读写效率下降,
因为在不连续的硬盘区域读写,需要磁头切换硬盘磁道。
• 解决办法:隔一段时间,进行硬盘清理,合并离散存储空间。
7 / 30
• 问题:硬盘“写”操作速度较慢。
尤其是在指定位置的“插入”(Random Acc
显示全部