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