您的当前位置:首页正文

Linux 文件系统 ext4、xfs等详解

2024-11-07 来源:个人技术集锦

?明明跟你说过:个人主页

?个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 ?

?行路有良友,便是天堂?

一、前言

  1、Linux的起源与发展

二、Linux文件系统

1、磁盘的组成

2、磁盘分区表格式

3、Linux文件系统格式 

4、ext4 文件系统重要的概念 

三、数据的存储 

2、挂载点(mount point) 

3、XFS文件系统简介

四、ext4与xfs 


一、前言

  1、Linux的起源与发展


1991年,芬兰赫尔辛基大学的学生林纳斯·托瓦兹(Linus Torvalds)开始编写一个新的操作系统内核,这个内核最初被称为“Freax”。他的初衷只是想学习操作系统内核的开发,并为自己的个人计算机编写一个操作系统。然而,当他将这个内核发布在Internet上并开放源代码后,全球各地的程序员开始参与到这个项目中来,共同完善这个内核。最终,这个内核被命名为Linux,这个名字是由Linus Torvalds的名字和Unix操作系统的名字组合而成的。

Linux从一开始就坚持源代码的公开和免费使用,任何人都可以对其进行修改和分发。这种开放性和自由性吸引了大量的开发者和用户,使得Linux逐渐成长并成熟起来。如今,Linux已经发展成为一个性能稳定、功能强大的多用户网络操作系统,支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。同时,Linux也有上百种不同的发行版,如基于社区开发的Debian、ArchLinux,以及基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

二、Linux文件系统

1、磁盘的组成

2、磁盘分区表格式

磁盘分区表是一种数据结构,用于描述硬盘上的分区信息。

常见的磁盘分区表格式有两种:

  1. MBR(Master Boot Record):MBR是传统的磁盘分区表格式,它位于硬盘的第一个扇区(扇区0),通常为512字节大小。MBR分区表最多支持4个主分区,或者3个主分区和1个扩展分区,每个主分区或扩展分区最多可以有2.2TB的容量限制。由于容量限制和其他限制,MBR分区表在现代计算机中已经逐渐被UEFI和GPT取代。
  2. GPT(GUID Partition Table):GPT是一种更先进的磁盘分区表格式,它使用全局唯一标识符(GUID)来标识分区和磁盘。GPT分区表支持更大的磁盘容量(超过2TB),并且允许最多128个分区。除了提供更大的容量和更多的分区之外,GPT还提供了数据完整性校验和磁盘备份表等功能,使其在现代计算机系统中更为常见。

选择使用MBR还是GPT分区表格式取决于硬件要求、操作系统支持和数据需求。对于大容量硬盘和新型计算机系统,通常建议使用GPT分区表格式以获取更好的性能和可靠性。

3、Linux文件系统格式 

Linux操作系统支持多种文件系统格式,每种格式都有其特定的用途和优势。

以下是一些常见的Linux文件系统格式:

  • ext4:ext4是Linux中最常用的文件系统之一,它是ext文件系统的进化版本。ext4提供了更快的文件系统检查和更好的性能,支持更大的文件和分区大小。它是许多Linux发行版的默认文件系统。
  • XFS:XFS是一种高性能的日志文件系统,适用于大容量存储和大文件。它具有快速的读写速度、高效的空间管理和稳定的性能,在处理大文件和大型数据集时效果显著。
  • Btrfs:Btrfs是一种先进的复制文件系统,具有快速的快照、数据压缩、数据校验和数据恢复等功能。它支持在线扩展和压缩,以及快速的检查和修复功能。
  • ZFS:ZFS是一种先进的文件系统和卷管理器,最初由Sun Microsystems开发,现在在许多Linux发行版中可用。ZFS具有强大的数据完整性检查和修复功能,支持快照、压缩和加密等高级功能。
  • ext3:ext3是ext文件系统的一个稳定版本,它与ext4兼容,并提供了可靠的文件系统和数据保护。尽管已经被ext4取代,但在一些较老的系统上仍然广泛使用。
  • F2FS:F2FS(Flash-Friendly File System)是专门为闪存设备设计的文件系统,具有优化的读写性能和存储寿命管理。它适用于嵌入式设备和闪存存储介质。

选择合适的文件系统取决于系统的需求、硬件配置和预期的性能和功能。通常建议根据具体的用途和环境选择最合适的文件系统。

4、ext4 文件系统重要的概念 

  1. inode(索引节点):inode 是文件系统中的一个数据结构,用于存储文件或目录的元数据信息,如文件类型、权限、拥有者、大小、时间戳等。每个文件或目录都有一个对应的 inode 来描述其属性和位置。
  2. 数据区块:数据区块是用于存储文件内容的实际数据块。当文件被创建或修改时,其内容被存储在数据区块中。ext4 文件系统将文件内容分散存储在多个数据块中,以提高文件系统的效率和性能。
  3. 超级块:超级块是 ext4 文件系统的关键数据结构之一,它存储了文件系统的元数据信息,如文件系统的大小、inode 数量、数据块数量、挂载选项等。每个文件系统只有一个超级块,位于文件系统的开头位置。
  4. 块组(Block Group):块组是 ext4 文件系统的逻辑单元,用于组织和管理文件系统中的数据。每个块组包含一组连续的数据块、inode 和位图等。块组有助于提高文件系统的性能和可管理性。
  5. 位图:位图是用于跟踪数据块和 inode 的使用情况的数据结构。每个块组都有自己的位图,用于标记已分配和未分配的数据块和 inode。

三、数据的存储 

1、目录与文件在文件系统当中如何记录数据

对于文件来说,inode 中存储了文件的元数据信息以及指向文件数据块的指针。文件数据块则用于存储文件的实际内容。

2、挂载点(mount point) 

mount /dev/sdb1 /mnt

挂载点的作用:

  1. 扩展文件系统空间:通过将新的文件系统挂载到现有目录下,可以扩展该目录下的文件存储空间。
  2. 分离文件系统:将不同用途的文件系统挂载到不同的目录下,可以对文件进行分组和管理,提高文件系统的组织性和可管理性。
  3. 网络文件共享:通过将远程服务器上的文件系统挂载到本地目录下,可以实现网络文件共享和访问。
  4. 安装新设备:将新设备(如磁盘、光驱等)上的文件系统挂载到系统中,使得系统可以识别和使用该设备上的内容。

挂载点在操作系统中扮演着重要的角色,是文件系统管理和访问的核心概念之一。

3、XFS文件系统简介

XFS(X File System)是一个高性能、高可靠性的日志文件系统,旨在提供对大型存储设备的高效管理。它采用了许多先进的技术,如延迟分配、日志化结构等,以提供出色的读写性能。同时,XFS使用了元数据日志来保证文件系统的一致性和可靠性,避免数据损坏和文件系统崩溃问题。

XFS文件系统具有快速恢复机制,可以在文件系统错误或意外断电后更快地进行修复和恢复。此外,它还支持诸如快照、在线扩容、透明压缩等高级特性,提供了更灵活和强大的功能。

XFS(eXtended File System)最初由SGI(Silicon Graphics, Inc.)开发,旨在用于 UNIX 类操作系统。它具有以下特点:

  • 高性能: XFS设计用于高性能工作负载,能够处理大型文件和大容量文件系统。
  • 大容量支持: XFS支持非常大的文件系统和文件,最大文件系统大小和最大文件大小都非常高。
  • 日志功能: XFS使用日志来跟踪文件系统的更改,这使得在意外断电或系统崩溃时可以更快速地恢复文件系统的一致性。
  • 高并发性: XFS支持高并发访问,可以有效地处理多个并发读写请求。
  • 灵活性: XFS提供了灵活的配置选项,可以根据不同的应用场景进行调整和优化。

 

四、ext4与xfs 

ext4和XFS它们各自具有一些特点和优势,适用于不同的使用场景。

ext4(Fourth Extended File System):

  • 成熟稳定: ext4是Linux中最常见的文件系统之一,它是ext3文件系统的改进版本,因此在Linux系统中被广泛使用。
  • 向下兼容: ext4保留了ext3的许多特性,并提供了更高的性能和更大的文件系统支持。
  • 易于维护: ext4提供了较好的稳定性和易于维护的特性,适合用于标准的桌面和服务器环境。

XFS(eXtended File System):

  • 高性能: XFS专为高性能工作负载而设计,能够处理大型文件和大容量文件系统,适用于需要高并发和高吞吐量的场景。
  • 日志功能: XFS使用日志功能来跟踪文件系统的更改,提高了系统的稳定性和恢复能力。
  • 大容量支持: XFS支持非常大的文件系统和文件,适合用于大型服务器和存储环境。

选择使用ext4还是XFS取决于具体的需求和应用场景。一般来说,在标准的桌面和服务器环境中,ext4是一个不错的选择,而在需要处理大型文件和高性能工作负载的情况下,XFS可能更适合。

???每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Linux的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!???

???让我们一起在技术的海洋中探索前行,共同书写美好的未来!!! 

Top