应用开发基础知识 - 文件系统

用户头像
superman
关注
发布于: 2020 年 08 月 04 日

1:硬盘

机械硬盘

      读写数据时要移动磁头寻址,这是最耗时的地方。因此随机读写都比较慢,移动磁头耗时在毫秒级,因此一次随机读写经常是几十毫秒。

机械盘读取特点与内存读取比较:

磁盘读取时间消耗:寻道时间+旋转时间+传送时间,寻道时间+旋转时间远大于传送时间。一般可初略按寻道时间=旋转时间计算。

随机读取是主要消耗在寻道时间+旋转时间,因此磁盘一次读取一个扇区-512K与读取1个字节时间差异很小。如果可以大块数据顺序读取,则速度比随机小块数据读取速度查几个数量级。

 磁盘随机读取一次的时间大概10ms



内存与磁盘的速度差异

内存是按字节读取的。电子操作没有机械运动。

读取时间跟读取数据量大小成正比,跟是否顺序存放无关

内存读取一个字节的时间大概50ns



速度比:

单个字节随机读:内存是磁盘的10万倍

512K(一个扇区):内存是磁盘的2500倍

超大块随机读:逼近 10倍



针对机械硬盘顺序读写快,随机读写慢的特性,HDFS采用LSM树的方式顺序写提高性能。



固态硬盘

随机读写比机械盘快



2:文件系统

 

2.1 文件系统以固定大小块为单位分配

文件系统将硬盘以块为单位进行划分。每个文件分配的都是整数个块。

文件控制块:记录文件包括哪些块    

文件数据块:记录文件数据。



2.2 Linux文件系统

用INode(固定大小)节点,记录文件大小,块指针,间接索引表指针(文件大12个块存不下,用间接指针执行索引表,索引表里记录块指针。



特点:控制块放元数据与块指针+数据块放数据。数据块大小固定。后续分布式文件系统思想类似。

元数据+数据块,

 

2.3 单机操作系统的问题

访问速度限制,数据安全(硬盘坏),文件大小限制(控制块大小固定)linux最多70G。

2.4 文件系统RAID:

通过多个硬盘组成冗余阵列(RAID卡),通过多写及复制 可提高读写速度及应对单个硬盘毁坏的问题。



2.5 分布式文件系统

 

通过多个计算机分摊数据块,类似RAID,只是将硬盘换为了计算机。

可满足:文件大小无限制,防止计算机故障,读写速度快。



参考:

极客时间训练营-李智慧

用户头像

superman

关注

还未添加个人签名 2018.07.20 加入

还未添加个人简介

评论

发布
暂无评论
应用开发基础知识-文件系统