file storage 一种让人易於了解的储存方式
在学完Block storage之後,是否发现如果要和硬碟直接打交道,这是唯一的方式?是的,这就是唯一的方式,只是Block storage对人非常不友好,我们怎麽知道我的资料存在哪里?是连续的存呢?还是分散的存?如果每笔资料都连续的存,那肯定对硬碟的利用率不友好
任何架构的难题只需要加一层就可以解决,如果不行,那就两层
我忘了这是谁说的,但是我非常喜欢和同意这句话,为了让人能够轻松的操作储存数据,在Block storage上面加了一层档案系统,也就是File storage
我们平常用的Windows就是File storage,这大家应该很熟悉,由於File storage就是Block storage上面加一层,所以档案的数据都是存在一个个的block中
除了档案的内容之外,文件的metadata比如创建时间、权限、大小等等也需要存在另一个地方,专门存这些文件metadata的就叫做inode
一个档案的inode可以透过stat来查询
#> stat demo.txt
File: ‘demo.txt’
Size: 12 Blocks: 8 IO Block: 4096 regular file
Device: fd02h/64770d Inode: 238749826 Links: 1
Access: (0644/-rw-r--r--) Uid: (51426876/ ckaijia) Gid: ( 201/ mts)
Access: 2021-08-28 07:27:02.001795167 -0700
Modify: 2021-08-28 07:27:02.001795167 -0700
Change: 2021-08-28 07:27:02.001795167 -0700
Birth: -
inode也会消耗储存空间,所以格式化硬碟的时候,作业系统会将硬碟分成两个区域,一个存数据,一个存inode,并且指定一个inode的大小,所以就算档案很小,一块硬碟里还是有档案数量的限制
那作业系统是如何读取档案资料呢?
首先,不是透过档案名字,文件名字只是让使用者方便识别,作业系统透过inode ID,每个inode都有一个号码,根据使用者点开的文件找到inode号码,可以透过ls -i demo.txt
看到对应的inode号码
第二,根据inode号码找到inode的data
最後,根据indoe的data,找到档案里的数据存在哪个block
<<: Leetcode 挑战 Day 01 [前言与 1. Two Sum]
Aloha!又是我少女人妻 Uerica!今天我家狗狗总算没有一大早叫我起床了,可能之前累爆昨夜一路...
嘿嘿!各位好你最好的朋友老肝哥照惯例又来了 今天老肝哥心情其实不错 因为自己又坚持一天了,但老肝哥在...
今天来介绍运用CSS的flex属性,超简单制作导览列 预想是 电脑版左边有LOGO,右边有nav选单...
今天会写这题目来自於在阅读 Soledad document 的时候有一段是在讲 How to se...
GPU记忆体类别 GPU记忆体类别有非常多种,各有所长,如果善用可进一步提升执行效能,参考下图: 图...