干货 | 一文搞懂文件系统

2021-04-20 15:37:28 浏览数 (2)


1、概述

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

2、功能简介

一个分区或者硬盘(包括逻辑卷LV)在使用前,需要初始化(格式化),并记录数据结构到硬盘上。这个过程就叫建立文件系统。文件系统的功能包括:管理和调度文件的存储空间,提供文件的逻辑结构、物理结构和存储方法;实现文件从标识到实际地址的映射,实现文件的控制操作和存取操作,实现文件信息的共享并提供可靠的文件保密和保护措施,提供文件的安全措施。

如果在一个没有文件系统的计算机上,程序要向硬盘上存储一些自己的数据,那么这个程序只能自己调用硬盘控制驱动(无VM的情况下),或者调用VM提供的接口,对硬盘进行写数据。而写完数据后,很有可能被其他程序的数据覆盖掉。引入文件系统之后,各个程序之间通过文件系统接口访问硬盘,将所有被写入的数据都称为一个文件,并且有自己的名字,是一个实体。而且程序写入据时,不会将其他人的文件数据覆盖掉,因为文件系统会计算并且保障这一点。

3、常见的文件系统(参考)

(1)FAT,File Allocation Table,微软在Dos/Windows系列操作系统中共使用的一种文件系统的总称,FAt12、FAT16、FAT32均是Fat文件系统。FAT文件系统将硬盘分为MBR区、DBR区、FAT区、FDT区、DATA区等5个区域;

(2)NTFS,New Technology File System,是 WindowsNT 环境的文件系统。是Windows NT家族(如,Windows 2000、Windows XP、Windows Vista、Windows 7和 windows 8.1)等的限制级专用的文件系统(操作系统所在的盘符的文件系统必须格式化为NTFS的文件系统,4096簇环境下),NTFS取代了老式的FAT文件系统;

(3)CDFS,是大部分的光盘的文件系统,只有小部分光盘使用其他文件系统。这些文件系统只能在CD-R或CD-RW上读取;

(4)exFAT,全称Extended File Allocation Table File System,扩展FAT,即扩展文件分配表,是Microsoft在Windows Embeded 5.0以上(包括Windows CE 5.0、6.0、Windows Mobile5、6、6.1)中引入的一种适合于闪存的文件系统,为了解决FAT32等不支持4G及其更大的文件而推出。对于闪存,NTFS文件系统不适合使用,exFAT更为适用;

(5)RAW,是一种磁盘未经处理或者未经格式化产生的文件系统;

(6)Ext,是GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计,目录结构参考下图:

(7)Btrfs(通常念成Butter FS),是由Oracle于2007年宣布并进行中的copy-on-write文件系统。目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单个文件的大小,总文件系统大小或文件检查和加入目前ext3未支持的功能,像是 writable snapshots、snapshots of snapshots、内建磁盘阵列(RAID)支持,以及 subvolumes。Btrfs 也宣称专注在“容错、修复及易于管理”;

(8)ZFS,源自于Sun Microsystems为Solaris操作系统开发的文件系统。ZFS是一个具有高存储容量、文件系统与卷管理概念整合、崭新的磁盘逻辑结构的轻量级文件系统,同时也是一个便捷的存储池管理系统。ZFS是一个使用CDDL协议条款授权的开源项目;

(9)HFS(HFS ),分层文件系统(Hierarchical File System,HFS)是一种由苹果电脑开发,并使用在Mac OS上的文件系统。最初被设计用于软盘和硬盘,同时也可以在在只读媒体如CD-ROM上见到;

(10)ReiserFS,其特色为能很有效率地处理大型文件到众多小文件都可以用很高的效率处理;实务上 ReiserFS 在处理文件小于 1k 小文件时,甚至效率可以比ext3快约10倍;

(11)JFS,(JOURNAL FILE SYSTEM),一种字节级日志文件系统,借鉴了数据库保护系统的技术,以日志的形式记录文件的变化。JFS通过记录文件结构而不是数据本身的变化来保证数据的完整性。这种方式可以确保在任何时刻都能维护数据的可访问性;

(12)VMFS,VMware Virtual Machine File System (VMFS )是一种高性能的群集文件系统,它使虚拟化技术的应用超出了单个系统的限制。VMFS的设计、构建和优化针对虚拟服务器环境,可让多个虚拟机共同访问一个整合的群集式存储池,从而显著提高了资源利用率;

(13)UFS,基于BSD高速文件系统的传统UNIX文件系统,是Solaris的默认文件系统;

(14)ReFS,Resilient File System,弹性文件系统,是在Windows 8.1和Server® 2012中新引入的一个文件系统。ReFS是与NTFS大部分兼容的,其主要目的 是为了保持较高的稳定性,可以自动验证数据是否损坏,并尽力恢复数据。

0 人点赞