硬盘的物理组成:由许许多多的圆形硬盘盘所组成。宜居硬盘盘能够容纳的数据量,而有所谓的单碟或者多碟。

  首先,硬盘里一定会有所谓的磁头(Head)在进行该硬盘上面的读写动作,而磁头是固定在机械手臂上的,机械手臂上有多个磁头可以进行读取的动作。而当磁头固定不动,硬盘转一圈所画出来的圆就是所谓的磁道(Track)。而一个硬盘中可能具有多个硬盘盘,所有硬盘盘上面相同半径的那一个磁道就组成了所谓的磁柱(Cylinder)

  

  1、基本概念

  在计算整个硬盘的存储量时,简单的计算公式就是:Cylinder X Head X Sector X 512 Bytes。另外,硬盘在读取时,主要是 硬盘盘会转动,利用机械手臂将磁头移动到正确的数据位置。然后将数据依序读出。由于机械手臂上的磁头与硬盘盘的接触是很细微的空间,如果有抖动或者是脏污在磁头与硬盘盘之间时,就会造成数据的损毁或者是实体硬盘整个损毁。

  硬盘的分隔(Partition),为什么要进行磁盘分隔?因为我们必须告诉操作系统,可以存储的区域是由A磁柱到BB磁柱,如此一来,操作系统才能够控制磁盘磁头去A-B范围内的磁柱存取数据。也就是记录每一个分割区(Partition)的起始与结束磁柱。

  主要开机扇区(Master Boot Recorder,MBR),MBR就是在一块硬盘的第零轨上,也就是计算机开机之后要去利用该磁盘时,必须要读取第一个区域。在这个区域内记录的就是磁盘里的所有分割信息,以及开机的时候可以进行开机管理程序的写入的处所。

  2、partition与block

  每一个 partition就是一个FileSystem,不论是哪一种filesystem,既然硬盘是用来存储数据的,硬盘的最小存储单位是sector,但是用sector来存储就太没有效率了,一个sector只有512Bytes,而磁头是一个一个sector的读取,也就是说,如果我的档案有10MBytes,那么为了读这个档案,磁头必须要进行(I/O)20480次。难么为了克服这个效率上的问题,逻辑区块 block就诞生了。逻辑区块是在partition进行filesystem的格式化时,所指定的最小存储单位。block的大小为sector的2的次方倍数。如果格式化的时候,指定block为4KBytes,即8个sector所构成一个block,那么同样一个10MBytes的档案,磁头要读取的次数则大幅下降为2560次,这样可以大大的增加档案的读取效能。但是不一定越大越好,因为加入有一个0.1Kbytes的容量的文档,则会占用整个4Kbytes的block。会造成磁盘空间的浪费。

  3、inode

  当我们要将一个partition格式化(format)为ext2时,就必须要指定inode与Block的大小才行。也就是说,当partition被格式化为ext2的文档系统时,他一定会有inode table与block area这两个区域。Block是记录档案内容数据的区域,inode则是记录该档案的属性,以及档案内容放置在哪一个Block之内的信息。inode除了记录档案属性以外,同时还具有指向功能,指向档案内容防止的区域,好让操作系统可以正确的取得档案的内容。

  

  一块partition自ext2底下会被格式化为inode table与block area两个区域,那么读取/etc/crontab的流程为:

  (1)操作系统根据根目录(/)的相关资料可取得/etc这个目录所在的inode,并前往读取/etc这个目录的所有相关路径。

  (2)根据/etc的inode的资料,可以取得/etc这个目录底下所有档案的关联数据是放在哪一个Block当中,并前往该block读取档案的关联性内容。

  (3)由上个步骤的inode当中,可以取得 crontab这个档案的所有属性,并且可前往由 inode所指向的Block区域,顺利的取得crontab的档案内容。

  

  4、Linux 档案系统的运作:

  整个ext2/ext3的数据存取是透过journal与metadata还有数据存放区在记录的。在整部计算机的运作中,数据处理最快速的地方是CPU,接下来则是主存储器(RAM),至于硬盘,会慢很多。为了让Linux加快整个系统的存取效率,Linux上面通常采取 异步处理 的方式。

  当系统读取一个文档时,则该档案所在的区块数据会被加载到内存中,所以该磁盘区块就会被放置在主存储器的缓冲快取区,若这些区块的数据被改变时,刚开始数据仅有主存储器的区块数据会被改变,而且在缓冲区的区块数据会被标记为 Dirty,这个时候磁盘实体区块尚未被修正。这些 Dirty区块的数据必须回写到磁盘中,以维持磁盘实体1区块上的数据与主存储器中的区块数据的一致性。

  但是,如果Linux不正常关机,则由于数据尚未写入磁盘当中,会导致系统在再次开机时,会花相当多的时间进行校验,同时也可能会造成磁盘的损坏。

参考文献:《鸟哥的Linux私房菜》

  

  

  

Linux知识体系之磁盘与档案系统管理的更多相关文章

  1. Linux学习日记之磁盘与档案系统

    主要定义 磁盘的物理组成磁盘主要由圆形磁盘(多张).机械手臂.磁头等组成.每张磁盘都有不同的磁道,半径相同的磁道组成了磁柱,沿着中心划线可将磁盘分成若干扇区,每个扇区的大小是512Bytes. 磁盘分 ...

  2. 鸟哥的linux私房菜之磁盘与文件系统管理

    superblock:记录了该文件系统的整体信息包括inode/block的总量,使用量,剩余量以及文件系统的格式与相关信息. inode:记录档案的属性,一个档案占用一个inode,同事记录此档案所 ...

  3. Linux知识体系之路径属性与目录

    最近在看鸟哥的Linux私房菜,我觉得这本书还是很不错的.这里进行相关的总结. 1.Linux目录权限概念   Linux一般讲目录可存取的方式分为三个类别,分别是owner/group/other, ...

  4. linux知识体系

    0. Linux简介与厂商版本 1. Linux开机启动 2. Linux文件管理 3. Linux的架构 4. Linux命令行与命令 5. Linux文件管理相关命令 6. Linux文本流 7. ...

  5. 一、Linux知识体系结构图

    参考: https://blog.csdn.net/Swing_Liu/article/details/79202479

  6. (转)Linxu磁盘体系知识介绍及磁盘介绍

    Linxu磁盘体系知识介绍及磁盘介绍 系统管理 / 2017-01-14 / 0 条评论 / 浴春风 Linu磁盘设备基础知识指南磁盘速度快具备的条件: 1)主轴的转速5400/7200/10000/ ...

  7. linux 运维知识体系

    这里将会介绍一下,LINUX运维工程师的知识体系. 只能说是个人理解吧.并不是必要或者充分的,仅供网友参考. 大部分本博客都有涉及,并不完整. 1.LINUX运维基础 1.1.LINUX系统的简介,分 ...

  8. Linux之磁盘与文件系统管理

    磁盘及文件系统管理详解 [参考文献:马哥视频] 原文:http://blog.csdn.net/u013008795/article/details/51150075 目前市场上主流的磁盘是机械式硬盘 ...

  9. linux(3)磁盘与文件系统管理/查看硬盘、内存空间/文件系统的操作/ 文件的压缩和打包

    一.磁盘与文件系统管理 1.分区与文件系统分区:记录每一个分区的开始柱面和结束柱面主引导区(master boot recorder):记录分区的数据,记录硬盘里所有的分区信息分区划分好后,要将分区格 ...

随机推荐

  1. 从零开始学习前端开发 — 2、CSS基础

    一.CSS简介  1.CSS是什么 CSS是Cascading Style Sheets的简称,中文称为层叠样式表.特点:实现了表现与结构相分离 2.css基础语法 css是由选择符和声明两大部分组成 ...

  2. Tomcat配置虚拟路径访问容器外的硬盘资源

    问题: 如果tomcat中上传了很多的图片,会导致tomcat启动的时候会慢,所以应该把图片上传到tomcat容器外部 那么,问题来了: tomcat出于安全考虑,禁止了直接访问外部硬盘资源. 解决: ...

  3. ThinkPhp_5框架开发【整理】

    ================================================== ThinkPhp_5心得笔记 ---------------------------------- ...

  4. oc 快排算法

    直接复制粘贴就可以用了 - (void)viewDidLoad { [super viewDidLoad]; NSMutableArray *M_arr = [[NSMutableArray allo ...

  5. protobuf 原理

    Protobuf 的优点 Protobuf 有如 XML,不过它更小.更快.也更简单.你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构.你甚至可以在无需重新部署程序的情况下更新 ...

  6. Oracle多表连接查询

    连接:将一张表中的行按照某种条件和另一张表中的行连接起来形成一个新行的的过程. 根据连接查询返回的结果,分为3类: 内连接(inner join) 外连接(outer join) 交叉连接(cross ...

  7. 程序员之殇 —— One program, One king (血月)

    Are we living in the time of the end? (程序员的时代是否已经终结了?) 最近,我时常问自己这个问题. 刚读完了一个美国博士的论文,UDT (UDP-based D ...

  8. Centos7-两台Centos机器间复制文件

    我又两台Centos机器,一台192.168.1.1:另一台192.168.1.2 现在在将192.168.1.1上的一个文件复制到192.168.1.2.登陆到192.168.1.1然后运行命令 命 ...

  9. 浅析final关键字

    浅析final关键字 final单词字面意思是"最终的,不可更改的".所以在java中final关键字表示终态,即最终的状态,"这个东西不能被改变". fina ...

  10. MS SQL 事物日志传送能否跨数据库版本吗?

    SQL SERVER的事物日志传送(log shipping)功能,相信很多人都使用过或正在应用,这是MS SQL提供的一个非常强大的功能,一般需要一个主数据库服务器(primary/producti ...