磁盘管理
硬件简介
由一张张圆盘碟在一起,圆心轴带动圆盘转动,机械臂接近盘面,利用电磁效应读取和写入数据;每一张圆盘正反两面均可读写数据,机械臂的读取点十分接近盘面,距离只有几个微米,所以磁盘一般是设计在真空中使用,拆开后>再合上磁盘,磁盘很大几率会坏掉;由于磁盘是利用自旋转和机械臂移动读取数据,所以在日常操作磁盘的时候尽量不要抖动磁盘
注意:机械臂是每张盘面的正反面都有一个机械臂
特性及组成
名词解释
磁道:圆盘上的区域被划分成一个个同心圆
扇区:一个角度延伸出去的扇形区域,每个扇区要存储自己的ID号、扇道号
柱面:不同盘面的相同圆环组成一个圆柱体,即相同编号的磁道
读取率:机械臂移动到磁盘上的任意位置进行速度读取,这个时间的长短决定了磁盘的读取效率
特性
- 外环扇道存储的数据多余内环,而且速度也快于内环
- 利用上述外环扇道应该存储读取频繁的数据文件,内环则存取读取不频繁的数据
- 同一柱面上的数据读取是最快的,所以分区一般是以柱面分区
磁盘出厂
低级格式化
根据磁盘的旋转速度等特性划分好磁道、扇区
分区(用户自行分区)
分区用于安装多个文件系统
MBR - Master Boot Record 512byte
此数据存放在0磁道0扇区,不属于任何操作系统,必须有它才能启动操作系统
446byte:存放BootLoader程序,用于加载内核的
64byte: 每16个字节标识一个分区,所以MBR最多只能有4个分区,可以用一个分区存放指针,指向其他一个区域,叫做扩展分区
2byte: 魔数,标识MBR是否可用
磁盘读取文件逻辑 即文件系统
文件系统本身是一个软件,他存放在磁盘上,但是不是在分区上,管理分区上的文件
名词解释
磁盘块:为了便于管理,将磁盘上的扇区分为一个个磁盘块
磁盘块位图:每个磁盘快占一位位图,用此位图标识磁盘块是否被占用,写入数据时直接扫描块位图,快速找到磁盘快写入
inode号:每个文件或目录对应一个inode号,iNode号全局唯一,iNode号包含:文件或目录属组等、磁盘块位置、文件副属性等,但是不包括文件名和目录
索引:索引存放了所有的iNode号,通过在索引中搜索到iNode号并找到存放文件的块磁盘
索引图:磁盘现如今很大了,索引也会变得很大,当写入一个索引时要先从索引中去找空的位置很耗时的,所以做了一个和磁盘块位图类似的索引图,快速找到空的索引以写入
磁盘内部逻辑划分如下:
查找文件例子:
查找/var/log/message文件
1. 内核启动后,会自索引根目录,在索引表中,根据根目录的iNode号查找到对应的磁盘块
2. 在磁盘块中,大致存放着两列数据,iNode号序列与其对应的根目录下的路径名和文件名,此时查找到var路径及其对应iNode号
3. 回到索引根据var的iNode号查找到var对应的磁盘块
4. 在磁盘块中,与第2条类似,根据log路径名查找,与之对应的iNode号
5. 对应第3条根据iNode号查找到log的磁盘块,在磁盘块中根据文件名message查找到iNode号
6. 回到索引表,根据iNode号查找到message的磁盘块,这样就找到message文件了
创建文件例子:
创建/dev/message,基于/dev路径存在的前提下
1. 先扫描索引图,查找空索引,为其分配一个iNode号,占用此位
2. 扫描空的位图,拿到空的磁盘块,写入message的文件,并把占用的磁盘快号写入到iNode信息里面去
3. 在把iNode号和文件名写到dev对应的磁盘快
删除件例子:
删除/dev/message
1. 找到Message后,清楚掉索引图对应的这个iNode号的索引位置,置为可用
2. 并把iNode对应磁盘块的位图置为可用即可,没有去修改磁盘块上的位置