当前位置:网站首页>淘宝分布式文件系统存储引擎(一)
淘宝分布式文件系统存储引擎(一)
2022-08-04 05:31:00 【小羊的预备程序员】
目录
1、文件系统的基本概念
文件系统 -一种把数据组织成文件和目录的存储方式,提供了基于文件的存取接口,并通过文件权限控制访问。
2、存储的基本单位
扇区 - 硬盘的最小存储存储单位(Sector)。一般每个扇区储存512字节(相当于0.5KB)

磁盘的每一面被分为很多条磁道,即表面上的一些同心圆,越接近中心,圆就越小。 而每一个磁道又按512个字节为单位划分为等分,叫做扇区
3、文件存储单位
块 - 文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

一个块通常是八个扇区,上图只画了四个
上图中可以通过stat命令查看创建的demo.txt的文件的详细信息,其中IO块是文件的最小存储单位,为4kb,跟上面所说的一个块是由八个扇区构成吻合。
4、文件结构
Ext*格式化分区 - 操作系统自动将硬盘分成三个区域。
目录项区 - 存放目录下文件的列表信息
数据区 - 存放文件数据
inode区(inode table) - 存放inode所包含的信息
计算机对于整数的处理更加敏感,在寻找一个文件的路径的时候并不是通过字符串,因为字符串要一个个识别,而是通过inode编号来查找(inode编号是唯一的)。

inode信息补充
inode - "索引节点",储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。每个inode都有一个号码,操作系统用inode号码来识别不同的文件。ls -i 查看inode 号
inode节点大小 - 一般是128字节或256字节。inode节点的总数,格式化时就给定,一般是每1KB或每2KB就设置一个inode。一块1GB的硬盘中,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。
5、系统读取文件三部曲

我的理解是,比如我要在linux下编辑demo.txt,指令为: vim /home/xhc/demo.txt,系统查找demo.txt其实是逐级对比,现在跟目录下寻找home的inode编号,然后再在home目录下寻找xhc的inode编号,最后查找到demo.txt的inode编号,然后根据这个最后找到的inode number,去在inode区通过这个编号拿到inode信息(有大小、块、位置等),最后系统调用驱动读取数据。
边栏推荐
猜你喜欢
随机推荐
Copy攻城狮的年度之“战”|回顾2020
文件权限管理 ugo
How to get started with MOOSE platform - an example of how to run the official tutorial
通用解决端口占用问题
LeetCode_22_Apr_2nd_Week
彻底删除MySQL教程
库函数的模拟实现-C语言
LeetCode_22_Apr_4th_Week
Golang环境变量设置(二)--GOMODULE&GOPROXY
AWS uses EC2 to reduce the training cost of DeepRacer: DeepRacer-for-cloud practical operation
LeetCode_Dec_1st_Week
Object.requireNonNull 方法说明
Postgresql snapshot
第三章 标准单元库(上)
MOOSE平台使用入门攻略——如何运行官方教程的例子
AWS使用EC2降低DeepRacer的训练成本:DeepRacer-for-cloud的实践操作
Tencent and NetEase have taken action one after another. What is the metaverse that is so popular that it is out of the circle?
Amazon Cloud Technology Build On 2022 - AIot Season 2 IoT Special Experiment Experience
集合---ArrayList的底层
管道重定向









