【学了就忘Linux文件系统管理】— 2.Linux文件系统

文件系统管理也就是分区管理。

二、文件系统

1、Linux文件系统的特性:

  • super block(超级块):记录整个文件系统的信息,包括block与inode的总量,已经使用的inode和block的数量,未使用的inode和block的数量,block与inode的大小,文件系统的挂载时间,最近一次的写入时间,最近一次的磁盘检验时间等。
  • date block(数据块,也称作block):用来实际保存数据的(相当于柜子的隔断),block的大小(1KB,2KB或4KB->默认)和数量在格式化后就已经决定,不能改变,除非重新格式化(制作柜子的时候,隔断大小就已经决定,不能更改,除非重新制作柜子)。
    每个blcok只能保存一个文件的数据,要是文件数据小于一个block块,那么这个block的剩余空间不能被其他文件使用;要是文件数据大于一个block块,则占用多个block块。
    Windows中磁盘碎片整理工具的原理就是把一个文件占用的多个block块尽量整理到一起,这样可以加快读写速度。
  • inode(i节点,柜子门上的标签,128字节):用来记录文件的权限(r,w、x),文件的所有者和属组,文件的大小,文件的状态改变时间(ctime),文件的最近一次读取时间(atime),文件的最近一次修改时间(mtime),文件的数据真正保存的block编号。每个文件需要占用一个inode。

2、Linux常见文件系统

  • ext:Linux中最早的文件系统,由于在性能和兼容性上具有很多缺陷,现在已经很少使用。
  • ext2:是ext文件系统的升级版本,Red Hat Linux 7.2版本以前的系统默认都是ext2文f系统。于1993年发布,支持最大16TB的分区和最大2TB的文件(1TB=1024GB-1024× 1024KB)。
  • ext3:ext2文件系统的升级版本,最大的区别就是带日志功能,以便在系统突然停止时,提高文件系统的可靠性。支持最大16TB的分区和最大2TB的文件。
  • ext4:是ext3文件系统的升级版。ext4在性能、伸缩性和可靠性方面进行了大量改进。ext4的变化可以说是翻天覆地的,比如向下兼容ext3、最大1EB文件系统和16TB文件、无限数量子目录、Extents连续数据块概念、多块分配、延迟分配、持久预分配、快速FSCK、日志校验、无日志模式、在线碎片整理、inode增强、默认启用barrier等。它是CentOS6.x的默认文件系统。(说这么多,意思就是ext4文件系统比前三个强很多)
  • xfs:XFS最早针对IRIX操作系统开发,是一个高性能的日志型文件系统,能够在断电以及操作系统崩溃的情况下,保证文件系统数据的一致性。它是一个64位的文件系统,后来进行开源并且移植到了Linux操作系统中,目前CentOS 7.x将XFS+LVM作为默认的文件系统。据官方所称,XFS对于大文件的读写性能较好。
    (以上都是Linux系统中的文件系统,知道越新越好就可以了。 )
  • swap:swap是Linux中用于交换分区的文件系统(类似于Windows中的虚拟内存),当内存不够用时,使用交换分区暂时替代内存。一般大小为内存的2倍,但是不要超过2GB,它是Linux的必需分区。
  • NFS:NFS是网络文件系统(Network File System)的缩写,是用来实现不同主机之间文件共享的一种网络服务,本地主机可以通过挂载的方式使用远程共享的资源。
  • iso9660:光盘的标准文件系统。Linux要想使用光盘,必须支持iso9660文件系统。
  • fat:就是Windows下的fat16文件系统,在Linux中识别为fat。
  • vfat:就是Windows下的fat32文件系统,在Linux中识别为vfat。支持最大32GB的分区和最大4GB的文件。
  • NTFS:就是Windows下的NTFS文件系统,不过Linux默认是不能识别NTFS文件系统的,女果需要识别,则需要重新编译内核才能支持。它比fat32文件系统更加安全,速度更快支持最大2TB的分区和最大64GB的文件
  • ufs:Sun公司的操作系统Solaris和SunOS所采用的文件系统。(用不着,了解一下即可)
  • proc:Linux中基于内存的虚拟文件系统,用来管理内存存储目录/proc。(了解一下即可)
  • sysfs:和proc一样,也是基于内存的虚拟文件系统,用来管理内存存储目录/sysfs。(了解一下即可)
  • tmpfs:也是一种基于内存的虚拟文件系统,不过也可以使用swap交换分区。(了解一下即可)

三,整理一下对文件系统的认识

我们以前说一个分区,会分成两个部分,一小部分为上半部分,下面大部分为下半部分。

上半部分会分成一个一个i节点信息,理论上每个文件都会有自己唯一的i节点信息(如果遇到硬链接,两个文件的i节点就会一样)。

下半部分会分成一个一个block(数据块),在Linux系统下默认是4KB,用于存储数据。

如下图:

今天上边说了Linux文件系统,上边的图要稍微变一下。

在我们的电脑上一般一个分区100GB,block块默认是4KB,所以100GB大小的分区,要有2500万+个block块。可以说是一个非常大的数字,这样会非常不好管理。

我们真正分区中系统文件的结构是如下

首先一个分区,会在一个分区的开头,用一部分很小的空间,组成一个超级块。超级块的作用看上边,每个分区都会有一个超级块。

查看超级块信息,用下面命令。
[root@localhost ~ ] # dumpe2fs -h + 分区号(/dev/sda1)

然后该分区中的block块太多了,就在该分区中形成一些块组。在块组中,在进行上面形式的划分。

查看块组信息
[root@localhost ~ ] # dumpe2fs + 分区号(/dev/sda1)

Linux文件系统结构如下:

你可能感兴趣的:(【学了就忘Linux文件系统管理】— 2.Linux文件系统)