• 初识文件系统


    下面是一段wiki百科的解释:

    计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易,文件系统使用文件树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。在写入新数据之前,用户不必关心硬盘上的那个块地址没有被使用,硬盘上的存储空间管理(分配和释放)功能由文件系统自动完成,用户只需要记住数据被写入到了哪个文件中。

    文件系统通常使用硬盘和光盘这样的存储设备,并维护文件在设备中的物理位置。但是,实际上文件系统也可能仅仅是一种访问资料的界面而已,实际的数据是通过网络协议(如NFS、SMB、9P等)提供的或者内存上,甚至可能根本没有对应的文件(如proc文件系统)。

    严格地说,文件系统是一套实现了数据的存储、分级组织、访问和获取等操作的抽象数据类型(Abstract data type)。

    下面是一段百度百科的解释:

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

     

    文件系统分类

    常见的文件系统分类有:磁盘文件系统、闪存文件系统、数据库文件系统、网络文件系统、集群文件系统。当然还有日志文件系统,分布式文件系统等等。分类就这么多了,具体的就更多了,往往操作系统在使用过程中会出现有不支持的文件系统的情况。

    磁盘文件系统

    磁盘文件系统是一种设计用来利用数据存储设备来保存计算机文件的文件系统,最常用的数据存储设备是磁盘驱动器,可以直接或者间接地连接到计算机上。例如:FAT、exFAT、NTFS、HFS、HFS+、ext2、ext3、ext4、ODS-5、btrfs、XFS、UFS、ZFS。有些文件系统是行程文件系统(也有译作日志文件系统)或者追踪文件系统。

    光盘:ISO 9660和UDF被用于CD、DVD与蓝光光盘。

    闪存文件系统

    闪存文件系统是一种设计用来在闪存上储存文件的文件系统。随着移动设备的普及和闪存容量的增加,这类文件系统越来越流行。

    尽管磁盘文件系统也能在闪存上使用,但闪存文件系统是闪存设备的首选,理由如下:

    • 擦除区块:闪存的区块在重新写入前必须先进行擦除。擦除区块会占用相当可观的时间。因此,在设备空闲的时候擦除未使用的区块有助于提高速度,而写入数据时也可以优先使用已经擦除的区块。
    • 随机访问:由于在磁盘上寻址有很大的延迟,磁盘文件系统有针对寻址的优化,以尽量避免寻址。但闪存没有寻址延迟。
    • 写入平衡(Wear levelling):闪存中经常写入的区块往往容易损坏。闪存文件系统的设计可以使数据均匀地写到整个设备。

    日志文件系统具有闪存文件系统需要的特性,这类文件系统包括JFFS2和YAFFS。也有为了避免日志频繁写入而导致闪存寿命衰减的非日志文件系统,如exFAT。

    数据库文件系统

    文件管理方面的一个新概念是一种基于数据库的文件系统的概念。不仅仅使用分层结构管理,文件按照他们的特征进行区分,如文件类型、专题、作者或者亚数据进行区分。于是文件检索就可以按照SQL风格甚至自然语言风格进行。

    例如BFS和WinFS。

    网络文件系统(是一种分布式文件系统:DFS

    网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制。

    集群文件系统(属于磁盘文件系统或者分布式文件系统,被称为共享磁盘文件系统)

    集群文件系统(英语:clustered file system)是一种通过同时挂载在多个服务器上实现共享的文件系统。有几种实现集群的方法,其中大多数不使用集群文件系统(每个节点只有直连式存储)。集群文件系统可以提供基于位置的寻址和冗余等功能,这些特性可以提高可靠性或降低集群其他部分的复杂性。并行文件系统 是一种跨多个存储节点传播数据的集群文件系统,通常是为了冗余或性能。

    共享磁盘文件系统是一种通过同时挂载在多个服务器上实现共享的文件系统。共享磁盘文件系统 使用存储区域网络(SAN)允许多台计算机在块级别直接访问磁盘。从应用程序使用的文件级操作到SAN使用的块级操作的访问控制和转换必须在客户机节点上进行。最常见的集群文件系统文件系统是共享磁盘文件系统,它通过增加并发控制机制,提供了文件系统的一致性和可串行化的视图,即使多个客户机试图同时访问相同的文件,也能避免损坏和意外的数据丢失。共享磁盘文件系统通常采用某种隔离机制,以防止在节点故障时出现数据损坏,因为非隔离设备如果失去与其姐妹节点的通信并试图访问其他节点正在访问的相同信息,就可能导致数据损坏。底层存储区域网络可以使用任何一种块级协议,包括SCSI、iSCSI、HyperSCSI、ATA over Ethernet(AoE)、光纤通道、网络块设备和InfiniBand。共享磁盘文件系统有不同的体系结构方法。有些在集群中的所有服务器上分发文件信息(完全分布式)。[2] 另一些使用集中的集中式元数据服务器。两者都实现了相同的结果,即允许所有服务器访问共享存储设备上的所有数据。

    示例:

    • Silicon Graphics (SGI) clustered file system (CXFS)
    • Veritas Cluster File System
    • DataPlow Nasan File System
    • IBM General Parallel File System (GPFS)
    • Lustre
    • Microsoft Cluster Shared Volumes (CSV)
    • Oracle Cluster File System (OCFS)
    • OpenVMS Files-11 File System
    • PolyServe storage solutions
    • Quantum StorNext File System (SNFS), ex ADIC, ex CentraVision File System (CVFS)
    • Blue Whale Clustered file system (BWFS)
    • Red Hat Global File System (GFS2)
    • Sun QFS
    • TerraScale Technologies TerraFS
    • Versity VSM
    • VMware VMFS
    • Apple Xsan
    • LizardFS
  • 相关阅读:
    Excel两列查找重复值
    Docker容器的数据卷(data volume),数据卷容器,数据卷的备份和还原
    Ubuntu 搭建 GitLab 笔记 ***
    JIRA使用
    Android.mk文件LOCAL_MODULE_TAGS 说明
    Git Reset 三种模式
    Android常用的编译命令
    Android源码编译
    AOSP---"Android Open-Source Project"
    理解 Android Build 系统
  • 原文地址:https://www.cnblogs.com/still-smile/p/13624467.html
Copyright © 2020-2023  润新知