Linux磁盘管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux磁盘管理相关的知识,希望对你有一定的参考价值。
一、磁盘物理结构
举例重要的概念,如下
1、磁道:当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。
2、扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区。硬盘的读写以扇区为基本单位。
3、扇面:多个扇区组成,跟数学上的扇面一个概念
4、柱面:磁盘柱面是磁盘的一个物理结构部分。磁盘的主体部分是由铝合金材料制成的涂以磁性介质的数个圆形盘片,每个盘片的两面涂有磁涂层,用来记录数据。
二、关于Linux的部分
1、MBR主引导记录:MBR不属于任何的操作系统,但他先于所有的操作系统被调入内存;引导完毕后会将控制权交予主分区的操作系统。
2、Linux文件系统中重要的两个概念:block和inode
block:真正存储数据,是最小存储单元
inode:存储元数据,包括文件的属性,文件位置指针。用户访问数据实际需要通过inode的指针找到数据块的位置。
3、文件系统
1)定义:文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法
2)文件系统的组成
Boot Block(引导块):真正安装操作系统的文件系统才会存在的,是操作系统分区的第一个块,占用1024B(字节)。是操作系统分区的Boot Loader,事实上,开机首先加载磁盘MBR的Boot Loader,然后加载该引导块的Boot Loader。
Super Block(超级块):文件系统的重要组成部件。记录了整个文件系统的相关信息、block和inode的使用情况、文件系统的各个时间、有效位的值。如果超级块损坏,则文件系统也会损坏。
block bitmap(块位图):此处记录block是否使用。在向硬盘存储数据时,文件系统需要知道哪些块是空闲的,哪些块是已经占用了的,位图只使用0和1标识对应block是空闲还是被占用,0和1在位图中的位置和block的位置一一对应,第一位标识第一个块,第 二个位标识第二个块,依次下去直到标记完所有的block。1G的文件只需要128个block做位图就能完成一一对应。通过扫描这100多个block就能知道哪些block是空闲的,速度提高了非常多。但是要注意,bmap的优化针对的是写优化,因为只有写才需要找到空闲block并分配空闲block。对于读而言,只要通过inode找到了block的位置,cpu就能迅速计算出block在物理磁盘上的地址。
inode bitmap(inode位图):此处记录inode是否使用。标识inode号是否被分配的位图称为inode bitmap简称为imap。这时要为一个文件分配inode号只需扫描imap即可知道哪一个inode号是空闲的。
inode table(inode表):为每个inode的数据存放区。
data block(数据块):为每个block的数据存放区。
block group(块组):对用户是不可见的,子逻辑区域,有个超级标示区。为了解决bmap、inode table和imap太大的问题,引入块组概念,在物理层面上的划分是将磁盘按柱面划分为多个分区,即多个文件系统;在逻辑层面上的划分是将文件系统划分成块组。每个文件系统包含多个块组,每个块组包含多个元数据区和数据区:元数据区就是存储bmap、inode table、imap等的数据;数据区就是存储文件数据的区域。
3、链接
1)软链接:也称符号链接。建立一个独立的文件,这个文件会让数据的读取指向它链接接的文件内容。可以对目录创建,可以跨文件系统,不会增加被链接文件的链接次数,其大小为指定路径所包含的字符个数。相当于windows快捷方式。
2)硬链接:在某个目录下的block中增加一个文件关联数据,不会用到inode与磁盘空间只能对文件进行创建,为了避免循环引用,不能跨文件系统,可以在不同目录下创建硬链接可以增加文件被连接的次数。相当于备份一个的文件inode。
以上是关于Linux磁盘管理的主要内容,如果未能解决你的问题,请参考以下文章