磁盘管理及Linux文件系统 ext2 一

磁盘管理

Hardware Disk 物理组成
    .圆形的磁盘
    .机械手臂

    .主轴马达


单个磁盘的物理主成:
    .扇区Sector为最小的物理存储单位,每个扇区512byte
    .将扇区组成一个圆,那就是磁柱(Cylinder),磁柱的分隔槽(partition)的最小单位;
    .第一个扇区最重要,里面有:(MBR),(partition table)

    注:存储是按柱面存储,磁盘分区是按柱面分区    ,越靠近外面柱面的磁道,读写速率跟快


机械式硬盘:
    U盘,光盘,软盘,硬件,磁盘
低级格式化
    划分磁道,扇区
Partition
    创建文件系统
MBR
    Master Boot Record(主引导记录)(512byte)
        -446 byte:Bootloader ,引导加载器
         64 byte:
            16 byte:标识一个分区
        -2 byte:Magic Number

            标记MBR是否有效


一般一个磁盘的分区为四个主分区或三个主分区一个扩展分区

    .主要分区和扩展分区最多可以有四个(硬盘的限制)
    .扩展分区最多只能有一个(操作系统的限制)
    .逻辑分区是由扩展分区持续切分出来的分区;
    .能够被格式化后,作为数据存取的分区主要分割与逻辑分割,扩展分割无法格式化;
    .逻辑分区的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分区(5到63)
     SATA硬盘则有11个逻辑分割(5到15)

文件系统特性

我们都知道磁盘分区完毕后,还需要进行格式化(format),之后操作系统才能使用这个分区。为什么
要格式化呢?
应为每种操作系统所设定的文件属性/权限并不相同,为了存放这些文件,就需要进行格式化。

传统的磁盘于文件系统只应用中,一个分区就只能被格式化为一个文件系统,所以我们可以说一个filesysytem
就是一个partition,但是由于新技术的使用,例如LVM和software Raid,这些技术奖一个分区格式化多个文件系统(LVM),
也可以将多个分区合成一个文件系统filesystem,所以在格式化时我们已经不再说成针对partition来格式化了,
通常我们可以称呼一个可挂载的数据为一个文件系统而不是一个分区。


文件系统会将权限和属性放置到inode中,至于实际数据则被放置到data block,还有一个超级块(superblock)会记录
整个文件系统的整体信息,包括inode与block的总量。

    .superblock:记录此filesystem的整体信息,包括inode/block的总量,使用量,剩余量,以及filesystem格式的相关信息。
    .inode:记录文件的属性,一个文件占用一个inode,同时记录此档案的数据所在的block号;
    .block:实际存储数据的内容,若文件太大将会占用多个block

由于每个inode和block都有唯一编号,inode指向文件所占的block,所以所以只要找到inode,就可以找到文件
原理图如下:


这种存取方式我们称为索引式文件系统(index allocation)
我们常用的闪存文件系统时FAT,这种文件系统就没有inode存在,所以FAT没有办法将所有的block在一开始就读取出来,每一个block号码记录在前一个block里,
类似于链表。
原理图如下:
    
    

如果一个文件的存储的block太过离散,就会造成文件的读取效率很低,这就是为什么使用这种文件系统的需要碎片整理功能,将一个文件所属的block汇聚在一起,加快
IO,而ext2/ext3文件系统一般不需要碎片整理

EXT2文件系统(inode)
    linux的文件除了原有的数据内容外,还有非常多的权限于属性,这些权限和属性是为了保护每一个用户所拥有的数据的隐秘性。
    文件系统里可能包涵inode/block/superblock等,为什么要谈这个,应为linux系统ext2就是这种inode为基础的文件系统。
    
    文件系统一开始就将inode与block规划好了,除非重新格式化(或者利用resize2fs等指令变更文件系统的大小),否则inode与block
    固定后就不能变动,但是如果如果文件系统比较庞大,那么将inode和block通通放置在一起讲很难管理。
    
    因此ext2文件系统的格式化的时候基本上区分为多个区块群主(block group),每个区块群组都有独立的inode/block/superblock系统。

在整体发规划当中,文件系统最前面有一个启动扇区(boot sector),这个启动扇区可以安装开机管理程序。
这个设计非常重要的设计,因此我们就能将不同的开机管理程序安装到个别的文件系统最前端,而不用覆盖正科硬盘唯一的mbr,这样
也能制作出多重引导的环境
ext2文件系统示意图
    

date block(数据区)
    EXT2文件系统所支持的block大小有1k,2k,及4k三种,由于block大小的差异,会导致该文件系统所支持的最大磁盘容量于最大单一文件容量不同。
        ext2文件系统的限制
            。原则上,block的大小与数理的格式化完就不能再改变了
            。每个block内最多只能放置一个文件

inode table(inode 表格)
记录档案的属性以及该档案实际数据放在那几个block内
    inode特色:
            。每个inode大小均固定128byte;
            。每个文件都仅会占用一个inode而已;
            。文件系统能建立文件数理与inode的数量有关
            。系统读取档案时需要先找到哦inode,并分析inode所记录的权限于用户是否符合,若符合才能进行实际读取block内容
            

inode结构图如下


superblock(超级块)
superblock是记录整个filesystem相关的地方,没有superblock,就没有这个filesysytem.
他记录的信息主要有:
        。block与inode的总量
        。未使用与已使用的inode/block总量
        。block与inode的大小(block为1,2,4k,inode 为128bytes);
        。filesystem的挂载时间,最近一次写入数据的时间,最近一次检验磁盘(fsck)的时间等文件系统的相关的信息
        。一个vail bit 数值,若此文件系统已被挂载,则vaild bit 为0,若未被挂载vaild bit为1.

superblock是非常重要的,应为我们这个文件系统的基本信息都写在这里,如果superblock坏掉,那么文件系统需要花费很多时间去挽救,一般
superblock的大小为1024bytes。每一个block group都可能含有superblcok,但是我们文件系统应该仅有一个superblock而已,除了第一个block group
内会含有superblock之外,后续的block group不一定含有superblock,若含有superblock主要是做为第一个block group内的superblock

的备份,这样可以进行superblock的救援。       

Filesystem Description(文件系统描述说明)
 这个区段可以描述每一个block group的开始于结束的block号码,已经每个区段(superblock,bitmap,inodemap,data block)分别介于哪一个block号码之间。可以使用
dumpe2fs来观察。

block bitmap(区块对照表)
当你添加文件会使用空的block来记录数据,那么就要透过block bitmap的辅助,从block bitmap当中可以知道哪些block是空的,因此我们的系统就能勾很快速的找到可以使用的block。
同时当删除某些文件时,那么原先哪些文件爱你占用的block号就要释放出来,此时block bitmap当中相对应该block号码标志就得修改为0.

inode bitmap(inode 对照表)
 这其实与block bitmap类似的功能,只是block bitmap记录的block的的使用情况,而inode bitmap记录的是inode的
 使用情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值