2022年linux课件linux文件系统管理 .pdf





《2022年linux课件linux文件系统管理 .pdf》由会员分享,可在线阅读,更多相关《2022年linux课件linux文件系统管理 .pdf(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 4 章 文件系统管理4.1.1 Linux文件系统概述文件系统对于任何一种操作系统来说都是非常关键的。Linux 中的文件系统是Linux 下所有文件和目录的集合。Linux 系统中把CPU 、内存之外所有其他设备都抽象为文件处理。文件系统的优劣与否和操作系统的效率、稳定性及可靠性密切相关。从系统角度看, 文件系统实现了对文件存储空间的组织和分配,并规定了如何访问存储在设备上的数据。文件系统在逻辑上是独立的实体,它可以被操作系统管理和使用。Linux 系统自身的文件系统称为ext2 , 它是 Linux 默认的文件系统。 通常把 ext2 及 Linux支持的文件系统称为逻辑文件系统。系统
2、中所有的设备,包括字符设备、 块设备和网络设备,都按照某种方式由逻辑文件系统统一管理。一般不同的逻辑文件系统具有不同的组织结构和文件操作函数,相互之间差别很大。Linux 的内核使用了虚拟文件系统VFS (Virtual File System)技术,即在传统的逻辑文件系统的基础上,增加了一个称为虚拟文件系统的接口层,如图 4-1 所示。 虚拟文件系统用于管理各种逻辑文件系统,屏蔽了它们之间的差异,为用户命令、 函数调用和内核其他部分提供访问文件和设备的统一接口,使得不同的逻辑文件系统按照同样的模式呈现在使用者面前。 对于普通用户来讲,觉察不到逻辑文件系统之间的差异,可以使用同样的命令来操作不
3、同逻辑文件系统所管理的文件。图 4-1 Linux文件系统结构示意图从用户角度看, 文件系统也是操作系统中最重要的组成部分。因为 Linux 系统中所有的程序、 库文件、 系统和用户文件都存放在文件系统中,文件系统要对这些数据文件进行组织管理。Linux 下的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统 VFS ,三是挂载到VFS中的各种实际文件系统,例如ext2 ,jffs等。VFS是一种软件机制,称它为Linux的文件系统管理者更确切,与它相关的数据结构只存在于物理内存当中。 所以在每次系统初始化期间,Linux 都首先要在内存当中构造一棵VFS的目录树 (在
4、Linux 的源代码里称之为namespace),实际上便是在内存中建立相应的数据结构。 VFS目录树在 Linux 的文件系统模块中是个很重要的概念,VFS中的各目录其主要用途是用来提供实际文件系统的挂载点。Linux 不使用设备标志符来访问独立文件系统,而是通过一个将整个文件系统表示成单一实体的层次树结构来访问它。Linux 在使用一个文件系统时都要将它加入到文件系统层次树中。不管是文件系统属于什么类型,都被连接到一个目录上且此文件系统上的文件将取代VFS 逻辑文件系统设备缓冲区网络协议名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
5、 - - 名师精心整理 - - - - - - - 第 1 页,共 35 页 - - - - - - - - - 此目录中已存在的文件。这个目录被称为挂载点或者安装目录。当卸载此文件系统时这个安装目录中原有的文件将再次出现。磁盘初始化时(fdisk),磁盘中将添加一个描述物理磁盘逻辑构成的分区结构。每个分区可以拥有一个独立文件系统如EXT2 。文件系统将文件组织成包含目录、软连接等存在于物理块设备中的逻辑层次结构。包含文件系统的设备叫块设备。Linux 文件系统认为这些块设备是简单的线性块集合,它并不关心或理解底层的物理磁盘结构。这个工作由块设备驱动来完成,由它将对某个特定块的请求映射到正确的
6、设备上去。每个实际文件系统从操作系统和系统服务中分离出来,它们之间通过一个接口层:虚拟文件系统或VFS来通讯。Linux 核心的其它部分及系统中运行的程序将看到统一的文件系统。Linux 的 VFS允许用户透明地安装许多不同的文件系统。虚拟文件系统的设计目标是为Linux 用户提供快速且高效的文件访问服务。同时它必须保证文件及其数据的正确性。这两个目标相互间可能存在冲突。当安装一个文件系统并使用时,Linux VFS为其缓存相关信息。此缓存中数据在创建、写入和删除文件与目录时如果被修改,则必须谨慎地更新文件系统中对应内容。4.1.2 Linux文件系统类型Linux 是一种兼容性很高的操作系统
7、,支持的文件系统格式很多,大体可分以下几类。 磁盘文件系统。 指本地主机中实际可以访问到的文件系统,包括硬盘、 CD-ROM 、DVD 、USB存储器、 磁盘阵列等。 常见文件系统格式有:autofs 、coda、Ext(Extended File sytem,扩展文件系统)、Ext2、Ext3、Ext4 、VFAT 、ISO9660(通常是CD-ROM )、 UFS (Unix File System,Unix 文件系统)、FAT (File Allocation Table,文件分配表)、FAT16、FAT32、NTFS (Network Technology File System)等。
8、 网络文件系统。是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户机通过网络远程访问数据。常见文件系统格式有:NFS (Network File System,网络文件系统)、Samba (SMB/CIFS)、 AFP (Apple Filling Protocol,Apple 文件归档协议)和WebDAV 等。 专有 / 虚拟文件系统。不驻留在磁盘上的文件系统。常见格式有:TMPFS (临时文件系统)、 PROCFS(Process File System, 进程文件系统) 和 LOOPBACKFS(Loopback File System,回送文件系统)。Linu
9、x最早的文件系统是Minix ,它受限甚大且性能低下。其文件名最长不能超过14个字符(虽然比8.3 文件名要好)且最大文件大小为64M字节。 64M字节看上去很大,但实际上一个中等的数据库将超过这个尺寸。第一个专门为Linux 设计的文件系统被称为扩展文件系统 EXT 。它出现于1992 年四月,虽然能够解决一些问题但性能依旧不好。1993 年扩展文件系统第二版或EXT2被设计出来并添加到Linux 中。将 EXT文件系统添加入 Linux 产生了重大影响。 每个实际文件系统从操作系统和系统服务中分离出来,它们之间通过一个接口层:虚拟文件系统或VFS来通讯。 但随着 Linux 在关键业务中的
10、应用,ext2非日志文件系统的弱点也逐渐显露出来了。为了弥补其弱点,在ext2 文件系统基础上增加日志功能开发了升级的ext3 文件系统。目前 Ext3 是 Linux 系统广泛使用的一种文件格式。在 Ext2 基础上, 对有效性保护、 数据完整性、数据访问速度、向下兼容性等方面做了改进。Ext3 最大特点是:可将整个磁盘的写入动作完整地记录在磁盘的某个区域上,以便在必要时回溯追踪。从 2.6.28版本开始,Linux Kernel 开始正式支持新的文件系统EXT4 , 在 EXT3的基础上增加了大量新功能和特性,并能提供更佳的性能和可靠性。EXT3其实只是在EXT2的基础上增加了一个日志功能
11、,而 EXT4的变化可以说是翻天覆地的,比如向下兼容EXT3、最大 1EB文件系统和16TB文件、无限数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 35 页 - - - - - - - - - 量子目录、 Extents连续数据块概念、多块分配、延迟分配、持久预分配、快速FSCK 、日志校验、无日志模式、在线碎片整理、inode 增强、默认启用barrier等等。需要说明的是,FAT16、FAT32 、NTFS是 Windows NT 、Windows 2000、Wi
12、ndows XP系统主要的文件系统格式。Linux 系统同样可以很好的支持这些文件系统格式。不过,以往版本的 Linux 系统需要单独挂载Windows 文件系统,而RHEL 6可以自动识别这些文件格式,以只读方式访问计算机磁盘中Windows 系统上的文件。1.ext3文件系统由于 ext4 还未作为标准文件系统,在此先介绍ext3 文件系统, 其把磁盘划分为4 个部分:引导块:在文件系统的开头,通常为一个扇区,其中存放引导程序,用于读入并启动操作系统。超级块:用来记录文件系统的配置方式,其中包括i-node数量、磁盘区块数量、未使用的磁盘区块, 以及 i 节点表、 空闲块表在磁盘中存放的位
13、置信息。由于超级块保存了极为重要的文件信息,因此系统将超级块冗余保存。系统在使用fsck等命令修复处于严重瘫痪状态的文件系统时,实际上是在对超级块进行恢复操作。i-nide (索引节点) :索引节点是一个结构,它包含了文件大小、用户 UID、用户组 GID、文件存取模式(包括读、写、执行)、链接数(每创建一个连接,链接数加1;删除一个链接,链接数减1)、文件最后修改时间、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组, 系统给每个索引节点分配了一个索引节点号,就是该节点在数组中的索引号。一个文件或目录占据一个索引节点。第一个索引节点是该文件系统的根节点。索引节点之后的数据块用于存放文
14、件内容。文件系统采用了一对一映射的方法来实现文件名到i 节点的转换。 Linux 文件系统将文件索引节点号和文件名同时保存在目录中。因此,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中的每文件,在目录表中都会有一个入口项,入口项中含有文件名和与文件相应的i 节点号。目录中每一对文件名称和索引节点号称为一个链接。对于一个文件来说,有唯一的索引节点号与之对应,而对于一个索引节点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问它。可以用 ln 命令对一个已经存在的文件再创建一个新的链接,而不必复制文件的内容,后面详细介绍ln 命令的用法。链接分为硬链
15、接(hard link )和符号链接(symbolic link )两种,符号链接又称为软链接(soft link)。它们各自的特点如下:硬链接:(1)原文件名和链接文件名都指向相同的物理地址。(2)目录不能有硬链接,硬链接不能跨越文件系统(不能跨越不同的分区)。(3)文件在磁盘中只有一个复制,以节省硬盘空间。(4)删除文件时要在同一个索引节点属于唯一的链接时才能完成。每删除一个硬链接文件只能减少其硬链接数目,只有当硬链接数目为1 时才能真正删除,这就防止了误删除。符号链接:(1)用 ln s 命令创建文件的符号链接。(2)可以指向目录或跨越文件系统。(3)符号链接是Linux 特殊文件的一种
16、,作为一个文件,它的内容是它所链接的文件或目录的路径, 类似于 Windows系统中的快捷方式。可以删除原有的文件或目录而保存链接文件,这是链接文件就没有应用价值了。因而它没有防止误删除功能。2.Linux日志文件系统名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 35 页 - - - - - - - - - 日志文件系统是在传统文件系统的基础上,加入文件系统更改的日志记录,它的设计思想是: 跟踪记录文件系统的变化,并将变化内容记录入日志。日志文件系统在磁盘分区中保存有日
17、志记录,写操作首先是对记录文件进行操作,若整个写操作由于某种原因( 如系统掉电) 而中断,系统重启时,会根据日志记录来恢复中断前的写操作。在日志文件系统中,所有的文件系统的变化都被记录到日志,每隔一定时间, 文件系统会将更新后的元数据及文件内容写入磁盘。在对元数据做任何改变以前,文件系统驱动程序会向日志中写入一个条目,这个条目描述了它将要做些什么,然后它修改元数据。目前Linux的日志文件系统主要有:在 Ext2 基础上开发的Ext3 ,以及在Ext3 基础上开发的Ext4 ,根据面向对象思想设计的ReiserFS ,由 SGI IRIX系统移植过来的XFS ,由 IBM AIX 系统移植过来
18、的JFS,其中 EXT4完全向下兼容Ext3 、EXT2 。3. 实践指南(1)在小型系统,如:邮件系统或小规模的电子商务系统应用时,ReiserFS 和 Ext3的性能是比较好的。但由于 Ext3 的目录项是线型的,而 ReiserFS 的目录项是树型的,故当目录下文件较多时,ReiserFS 的性能更优。(2)在对于上G的这种大文件做I/O 时,各种文件系统间的性能差距很小,性能瓶颈往往在磁盘上。(3)虽然 XFS和 JFS 在设计结构上都比较好,但它们主要是针对大中型系统的,在小型系统中由于硬件的原因性能发挥不明显。(4)全日志模式和预定、写回这两种模式相比,性能差距是比较大的;而预定和
19、写回之间的性能差距不大。所以性能和安全兼顾时,文件系统的缺省安全模式,即预定模式是比较好的选择。4.2 Linux文件组织结构一直使用微软Windows操作系统的用户似乎已经习惯了将硬盘上的几个分区,并用A、B、C、D等符号标识。采取这种方式,在存取文件时一定要清楚文件存放在哪个磁盘的哪个目录下。Linux 的文件组织模式犹如一棵倒挂的树。Linux 文件组织模式中所有存储设备作为这棵树的一个子目录,存取文件时只需确定目录就可以了,无需考虑物理存储位置。这一点其实并不难理解,只是刚刚接触Linux 的读者会不太习惯。4.2.1 文件系统结构计算机中的文件可以说是不计其数,如何组织和管理文件,及
20、时响应用户的访问需求,就需要构建一个合理、高效的文件系统结构。1文件系统结构某所大学的学生可能在一万人到两万左右,通常将学生分配在以学院- 系- 班为单位的分层组织机构中。 若需要查找一名学生,最笨的办法是依次询问大学中的每一个学生,直到找到为止。如果按照从学院到系,再到班的层次查询下去,必然可以找到该学生,且查询效率高。如果把学生看作文件,院- 系- 班的组织结构看作是Linux 文件目录结构, 同样可以有效地管理数量庞大的文件。这种树形的分层结构就提供了一种自顶向下的查询方法。Linux 文件系统就是一个树形的分层组织结构,根(/)作为整个文件系统的惟一起点,其他所有目录都从该点出发。Li
21、nux 的全部文件按照一定的用途归类,合理地挂载到这棵“大树”的“树枝”或“树叶”上,如图 4-2 所示,而这些全不用考虑文件的实际存储位置是在硬盘上,还是在CD-ROM 或 USB存储器中,甚至是在某一网络终端里。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 35 页 - - - - - - - - - 图 4-2 文件系统此时,读者应该明白Linux 的文件系统的组织结构类似于一棵倒置的树。那么如何知道文件存储的具体硬件位置呢?在 Linux 中,将所有硬件都视为文
22、件来处理,包括硬盘分区、CD-ROM 、软驱以及其他USB移动设备等。为了能够按照统一的方式和方法访问文件资源,Linux 提供了每种硬件设备相应的设备文件。一旦 Linux 系统可以访问到某种硬件,就将该硬件上的文件系统挂载到目录树中的一个子目录中。例如,用户插入USB移动存储器, RHEL 6自动识别USB存储器后,将其挂载到“ /media/ ”目录下,而不像Windows系统将 USB存储器作为新驱动器,表示为“F : ”盘。2绝对路径和相对路径Linux 文件系统是树形分层的组织结构,且只有一个根节点,在Linux 文件系统中查找一个文件, 只要知道文件名和路径,就可以惟一确定这个文
23、件。例如“/usr/games/gnect”就是位于“ /usr/games/ ”路径下的4 子连线游戏应用程序文件,其中第一个“ / ”表示根目录。这样就可以对每个文件进行准确的定位,并由此引出两个概念: 绝对路径。 指文件在文件系统中的准确位置,通常在本地主机上,以根目录为起点。例如“ /usr/games/gnect”就是绝对路径。 相对路径。指相对于用户当前位置的一个文件或目录的位置。例如用户处在usr 目录中时,只需要“ games/gnect”就可确定这个文件。其实,绝对路径和相对路径的概念都是相对的。就像一位北京人在中国作自我介绍时,不必在强调“中国/北京”。 若这个人身在美国,
24、介绍时就有必要强调“中国/ 北京”了。 因此,在什么场合使用绝对路径和相对路径,要看用户当前在文件系统所处的位置。4.2.2 基本目录由于 Linux 是完全开源的软件, 各 Linux 发行机构都可以按照自己的需求对文件系统进行裁剪, 所以众多的Linux 发行版本的目录结构也不尽相同。为了规范文件目录命名和存放标准,颁发了文件层次结构标准(FHS ,File Hierarchy Standard), 2004 年发行最新版本 FHS 2.3 。RHEL 6系统同样遵循这个标准。表4-1 列出了 RHEL 6基本目录。表 4-1 RHEL 6 基本目录目录名描述/ Linux文件系统根目录/
25、bin 存放系统中最常用的可执行文件(二进制)/boot 存放 Linux 内核和系统启动文件,包括Grub、lilo启动器程序/cgroup 存放被 cgconfig服务控制的资源分配情况,如CPU time, 系统内存 , 网络带宽等名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 35 页 - - - - - - - - - /dev 存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB 、tty等/etc 存放系统的所有配置文件,例如passwd 存放用户账户信息,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年linux课件linux文件系统管理 2022 linux 课件 文件系统 管理

限制150内