Linux知识体系之磁盘与档案系统管理
硬盘的物理组成:由许许多多的圆形硬盘盘所组成。宜居硬盘盘能够容纳的数据量,而有所谓的单碟或者多碟。
首先,硬盘里一定会有所谓的磁头(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知识体系之磁盘与档案系统管理的更多相关文章
- Linux学习日记之磁盘与档案系统
主要定义 磁盘的物理组成磁盘主要由圆形磁盘(多张).机械手臂.磁头等组成.每张磁盘都有不同的磁道,半径相同的磁道组成了磁柱,沿着中心划线可将磁盘分成若干扇区,每个扇区的大小是512Bytes. 磁盘分 ...
- 鸟哥的linux私房菜之磁盘与文件系统管理
superblock:记录了该文件系统的整体信息包括inode/block的总量,使用量,剩余量以及文件系统的格式与相关信息. inode:记录档案的属性,一个档案占用一个inode,同事记录此档案所 ...
- Linux知识体系之路径属性与目录
最近在看鸟哥的Linux私房菜,我觉得这本书还是很不错的.这里进行相关的总结. 1.Linux目录权限概念 Linux一般讲目录可存取的方式分为三个类别,分别是owner/group/other, ...
- linux知识体系
0. Linux简介与厂商版本 1. Linux开机启动 2. Linux文件管理 3. Linux的架构 4. Linux命令行与命令 5. Linux文件管理相关命令 6. Linux文本流 7. ...
- 一、Linux知识体系结构图
参考: https://blog.csdn.net/Swing_Liu/article/details/79202479
- (转)Linxu磁盘体系知识介绍及磁盘介绍
Linxu磁盘体系知识介绍及磁盘介绍 系统管理 / 2017-01-14 / 0 条评论 / 浴春风 Linu磁盘设备基础知识指南磁盘速度快具备的条件: 1)主轴的转速5400/7200/10000/ ...
- linux 运维知识体系
这里将会介绍一下,LINUX运维工程师的知识体系. 只能说是个人理解吧.并不是必要或者充分的,仅供网友参考. 大部分本博客都有涉及,并不完整. 1.LINUX运维基础 1.1.LINUX系统的简介,分 ...
- Linux之磁盘与文件系统管理
磁盘及文件系统管理详解 [参考文献:马哥视频] 原文:http://blog.csdn.net/u013008795/article/details/51150075 目前市场上主流的磁盘是机械式硬盘 ...
- linux(3)磁盘与文件系统管理/查看硬盘、内存空间/文件系统的操作/ 文件的压缩和打包
一.磁盘与文件系统管理 1.分区与文件系统分区:记录每一个分区的开始柱面和结束柱面主引导区(master boot recorder):记录分区的数据,记录硬盘里所有的分区信息分区划分好后,要将分区格 ...
随机推荐
- UserView--第一种方式set去重,基于Spark算子的java代码实现
UserView--第一种方式set去重,基于Spark算子的java代码实现 测试数据 java代码 package com.hzf.spark.study; import java.util.Ha ...
- gettype
取得变量的类型. 语法: string gettype(mixed var); 返回值: 字符串 函数种类: PHP 系统功能 内容说明 本函数用来取得变量的类型.返回的类型字符串可能为下列字符串其中 ...
- CSS3 background-size 属性
定义和用法 background-size 属性规定背景图像的尺寸. 默认值: auto 继承性: no 版本: CSS3 JavaScript 语法: object.style.background ...
- Hadoop集群的JobHistoryServer详解(转载)
Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行完的Mapreduce作业记录,比如用了多少个Map.用了多少个Reduce.作业提交时间.作业启动时间.作业完成时间等信息.默认情况下 ...
- CCF系列之Z字形扫描(201412-2)
试题编号:201412-2试题名称:Z字形扫描时间限制: 2.0s内存限制: 256.0MB 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n ...
- mybatis_SQL映射(1)
文章摘录自:http://blog.csdn.net/y172158950/article/details/17258377 1. select的映射 <select id="sele ...
- 解决svn--Unable to connect to a repository at URL ‘https://xxxxxx’ 问题
在checkout项目时,出现如下错误: Error Unable to connect to a repository at URL 'https://XXXX' Error Access to ...
- Django_xadmin_应用外键搜索功能错误
问题: 当我在给某一张表加上外键搜索的时候,会出现 TypeError: Related Field got invalid lookup: icontains 问题原因: a 表关联 b表,也就是说 ...
- localhost或本机ip无法连接数据库问题解决与原因
解决办法:将localhost替换为127.0.0.1 原因@参考文章:navicat在电脑没有联网的情况下,并不会把localhost解析成127.0.0.1,而mysql默认情况下只支持127.0 ...
- redis数据类型-有序集合
有序集合类型 在集合类型的基础上有序集合类型为集合中的每个元素都关联了一个分数,这使得我们不仅可以完成插入.删除和判断元素是否存在等集合类型支持的操作,还能够获得分数最高(或最低)的前N个元素.获得指 ...