Linux磁盘和文件系统简介

1、文件系统:存储设备上存储数据的方式方法

磁盘主要由盘片、机械手臂、磁头和主轴马达组成,而数据的写入实际是写在盘片上,磁盘的最小存储单位为扇区,每
个扇区为512字节,扇区组成一个圆就叫做磁道,而多个盘片的硬盘同一位置的磁道组成柱面

存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节(512字节)

Linux当中,硬盘是以挂载形式存在的,挂载就是利用一个目录当成进入点,将磁盘分区的数据放在该目录下,进入该目
录即进入该分区的意思。

文件系统有:NTFS(New Technology File System)新技术文件系统、Windows专用;FAT、ext系列、xfs等
RHEL5当中默认文件系统为ext3、RHEL6当中默认文件系统为ext4、RHEL7当中默认文件系统为xfs。

每一个磁盘都有MBR,位于0,0,1的位置,存放了引导微代码以及磁盘分区表和校验值,所
以我们来看流程,当我们安装一块硬盘的时候,首先先应该要做的就是分区,分区表大小只有64字节,所以主分区+扩
展分区最多能创建4个,而且扩展分区能且只能创建一个,我们知道了硬盘的物理结构,应该对硬盘有一个认识了。
而分区其实就是告诉操作系统在此硬盘中可以访问的区域是由A柱面到B柱面之间的块,也就是说,磁盘分区就是指定分
区的起始与结束柱面。

2、磁盘分区的目的:方便管理磁盘文件

磁盘在分完区后需要进行格式化,格式化就是为了遵循该系统的存储数据的方式,按照该方式进行写入数据,其实格式
化就是为了将文件系统写入到磁盘当中,让磁盘变成能被操作系统所识别使用的系统格式

文件系统的运行是与操作系统的文件数据有直接关系的,比如RHEL6.5所用的文件系统为ext4,该文件系统中的文件数据
除了文件实际内容外还包含了很多属性,例如Linux操作系统的文件权限rwx和文件属性属主属组时间参数等,文件系统
通常将这两部分数据分别存放在不同的块,权限和属性放置到inode中,至于实际数据则放到data block块中,而且还
有一个超级块(superblock)会记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量以及文件
系统的格式等很多参数信息。

inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在block号
block:实际记录文件的内容,如果文件太大,会占用多个block
superblock:记录此文件系统的整体信息

每个inode和block都有唯一编号,而且每个文件都会占用一个inode,inode中有文件真实数据所在的block号,所以
说,当我们找到一个文件的inode时,同时也就可以通过inode查找到该文件真实数据所在的block位置,即能够读取到
该文件的真实数据,这样一来我们硬盘上的数据在短时间内就都能够被读取出来,读取的性能就比较好
包括磁盘碎片的整理,都是通过将数据真实存放在的block进行整理

当我们的硬盘非常大,到达TB级别的时候,分区后inode和block的数量是非常巨大的,而且除非在修改文件系统的情况
下,inode和block是不会再发生变动的,所以庞大的数据量会导致很难管理,所以其实在我们进行格式化的时候,都是
分为多个块组的,每一个块组都有独立的inode、block和superblock,而且在每一个分区当中,我们在将开机启动流程
的时候有提到过我们每一个系统需要指定的文件系统且在不同分区,而每一个分区的文件系统中最前面有一个启动分
区,就是我们说过的boot loader,这个boot loader可以安装我们的操作系统引导装载程序,所以才有了我们的多引导
环境。

那么我们来详细了解一下上面的各个参数:

block是存放数据的地方,在我们进行格式化的时候,会设定一个“分配单元大小”,这个值决定了我们block的大
小,而这个值也就决定了我们能够存放的单一文件大小以及我们最大文件系统总的容量,”分配单元大小“越小越节省
空间,“分配单元大小”越大越浪费空间。也就是说block的大小和数量在格式化之后就不能够再改变了(除非重新格式
化);每一个block当中只能存放一个文件的数据;如果文件大小大于block的大小,则一个文件占用多个block数量;如
果文件大小小于block的大小,则该block的剩余空间就不能再使用了

inode是存放文件属性及block块位置等信息的,所以肯定是以表的形式存在的,在inode当中至少记录了:文件的
权限rwx;文件的属主属组;文件的大小;文件的atime、ctime、mtime;文件特性标志,如Set位等;文件实际数据的
位置等信息。
inode的大小固定为128字节;每一个文件只会占用一个inode;所以,我们能创建的文件数量与inode的数量有关;系统
读取文件的时候先找inode,并查询inode中记录的权限与用户是否符合,符合才继续读取文件的真实内容。

inode和block的关系:
inode当中记录了非常多的信息,而inode固定大小为128字节,单记录一个block位
置需要占用4字节,当inode记录的文件A大小为1GB时且block块大小为4k时,A文件就会占用十多万个block,而inode
当中也需要记录十多万的block位置,就会出现冲突,为了解决这一冲突,系统将inode记录block号码的区域定义为12
个直接、1个间接、一个双间接、和一个三间接记录。

这种情况下,我们通过inode能指定的block的数量(block大小以1k为例)如下:
12个直接指向:12*1K=12K \\由于是直接指向,所以可以有12条记录
间接:256*1K=256K \\每个block记录占4字节,因此1K能指定256个记录
双间接:256*256*1K=256^2K \\第一层的指向有256个记录指向二层,二层每个记录能指定256个
三间接:256*256*256*1K=256^3K \\同上
总额为 12+256+256*256+256*256*256(K)=16GB
所以当文件系统将block大小定义为1k时,单个文件大小最大为16G
这个计算方法不能用在2k和4k等更大上,大于2k的block会受到文件系统自身的限制,所以计算结果会有偏差。

superblock是记录整个文件系统相关信息的地方,没有超级块,就没有文件系统了,它主要记录了:block与inode
的总量;未使用和已使用了的block和inode数量;block和inode的大小;文件系统挂载的时间、最近一次写入数据的时
间等相关信息;以及一个文件系统是否被挂载的数值validbit,已挂载为0,未挂载为1。

当我将一个分区进行格式化之后,文件系统为ext4,(200G),假设分成了10个块组block group,即有10个
superblock,但是ext机制让系统在读取该分区的时候首先读取第一个块组当中的超级块(后面的块组没有超级块),来
确定该分区的文件系统

原文地址:https://www.cnblogs.com/luoyan01/p/9733753.html

时间: 2024-10-08 23:43:11

Linux磁盘和文件系统简介的相关文章

Linux磁盘及文件系统的管理

Linux磁盘及文件系统的管理 我们计算机当中的核心部件并不包括磁盘,磁盘对我们的计算机来说属于外部I/O设备,我们目前主流的硬盘是机械式硬盘,我们的CPU以及内存设备属于电子设备,而我们的硬盘属于机械设备,所以说在发展速度上,CPU和内存要比硬盘快很多,我们通常所说的磁盘格式化分为两种,一种叫做低级格式化,低级格式化是硬盘厂商在出厂前就已经做好的,低级的格式化的目的是为了划分好磁盘上的磁道等物理边界,而当我们将磁盘拿到自己手里之后都会对磁盘进行分区(partition),我们对磁盘进行分区的目

2018-1-17Linux系统管理(1)Linux磁盘及文件系统的概念

在本章当中,我们开始对于Linux的系统篇的介绍,我们首先了解一下磁盘的构造以及文件系统的概念,在上一篇的基础中,主要介绍了Linux的命令的用法等其它的一些概念,知识比较琐碎,希望将这些基础知识多看得以巩固,唉...日子不好过啊,学习本来就很难.那么在这一章当中我们来讲述Linux磁盘及文件系统的概念. 一.操作系统的组成部分 我们操作系统组成部分大致分为硬件和软件,硬件设备是最底层的,这是计算机的一个运行的基础,冯诺依曼定义了硬件部件,分别为是CPU(由运算器和控制器组成)然后是Memory

Linux磁盘和文件系统

Linux磁盘和文件系统 ??当我们拿到一块全新的磁盘的时候,我们并不能直接使用,而是需要经过分区.格式化.挂载后,才能被操作系统识别并写入和读取数据.不同的操作系统的文件系统有所不同,因此对磁盘的划分方式也不一样. 一.磁盘 1.结构 ??在计算机领域,磁盘是现在使用最多.性价比最高的存储介质.随着存储技术的不断发张,磁盘又分为机械硬盘和固态硬盘.机械硬盘主要由:盘片.磁头.盘片转轴和磁头控制器.数据转换器.接口等几部分组成.数据存储在盘片上,在电机的带动下盘片高速旋转,每个盘片的存储面上有一

Linux磁盘及文件系统(三)Linux文件系统

一.文件系统的组成 Linux常见的文件系统类型有ReiserFS,ext2,ext3,ext4,vfat,XFS等,文件系统是对一个存储设备上数据和元数据进行组织的机制.他的最终目的是把大量数据有组织的放入持久性的存储设备中,比如硬盘和磁盘.文件系统就是文件在逻辑上组织形式,他以一种更加清晰的方式来存放各个文件.数据被存放到某个分区中.一个典型的Linux分区包含有以下各个部分: boot block:任何分区的第一个块,存放系统的引导程序. super block(超级块):保存整个分区的全

Linux基础之文件系统简介及其系统管理工具

常见的文件系统 Linux文件系统: ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap swap: 交换分区 光盘:iso9660 Windows:fat32, ntfs Unix: FFS, UFS, JFS2 网络文件系统:NFS, CIFS 集群文件系统:GFS2, OCFS2 分布式文件系统:ceph, moosefs, mogilefs, GlusterFS, Lustre 实验环境CentOS7.2 Linux根据其是否支持"jour

Linux磁盘及文件系统(二)Linux下磁盘命名和分区

在为主机添加硬盘之前,首先需要了解Linux系统下对硬盘和分区的命令方法 一.磁盘命名 Linux下对SCSI和SATA设备是以sd命名的,第一个SCSI设备是sda,第二个是sdb....以此类推.一般主板上有两个SCSI接口,因此一共可以安装4个SCSI设备.主SCSI上的两个设备分别对应sda和sdb,第二个SCSI口上的设备对应sdc和sdd.一般硬盘安装在SCSI的主接口上,所以是sda和sdb,而光驱一般安装在第二个SCSI的主接口上,所以是sdc.IDE有两个口,第一个IDE口叫做

Linux磁盘及文件系统的创建,查看及管理

用到的命令有:fdisk,mkfs,mke2fs,tune2fs,blkid,fsck,e2fsck,dumpe2fs,e2label,mount,umount,partx,kpartx,mkswap,swapon,swapoff,free 1.手动添加一块新磁盘,启动系统查看是检测到新磁盘 #fdisk -l /dev/sd[a-z] 2.创建3个分区,分别为主分区,swap分区,扩展分区 常用到的命令分别为 m:查看帮助 n:创建新分区 p:创建主分区 e:创建扩展分区 l:在扩展分区的基础

Linux磁盘及文件系统(一)

一.磁盘 1.IO接口类型 (1)传输类型分类 并口:同一个线缆可以接多块设备 IDE口:两个,一个主设备,一个从设备 SCSI:宽带:16-1:窄带:8-1 串口:同一个线缆只可以接一个设备 (2)硬盘类型分类(理论传输数据) IDE(ata):并口,133MB/s SCSI:并口,Ultrascsi320,320MB/s,UltraSCSI640,640MB/s SATA:串口,6gbps SAS:串口,6gbps USB:串口,480MB/s 2.硬盘种类和磁盘 (1)机械硬盘:内部真空

linux磁盘以及文件系统

df 查看磁盘总容量 -i 显示inodes号 -h 使用合适的单位显示磁盘大小 -m 以M为单位显示 -k 以K为单位显示 默认K显示 du 用来查看某个目录或者文件所占空间大小 参数:-abckmsh 如果不加任何选项和参数只列出目录(包含子目录)大小. -a 全部文件和目录大小都列出来. 指定单位列出 -b -k -m -h(系统自动调节单位) -c 最后加总和 -s 只列出总和 一般使用 du -sh 硬盘分区工具: fdisk 选项只有一个-l fdisk -l 后面不加设备名会直接列