存储基础知识三 文件系统

一、概述
文件系统定义了把文件存储于磁盘时所必须的数据结构及磁盘数据的管理方式。我们知道,磁盘是由很多个扇区( Sector )组成的,如果扇区之间不建立任何的关系,写入其中的文件就无法访问,因为无法知道文件从哪个扇区开始,文件占多少个扇区,文件有什么属性。为了访问磁盘中的数据,就必需在扇区之间建立联系,也就是需要一种逻辑上的数据存储结构。建立这种逻辑结构就是文件系统要做的事情,在磁盘上建立文件系统的过程通常称为 格式化

Windows 平台下最常见的 FAT 文件系统为例。 FAT 文件系统有两个重要的组成部分: FAT 表( File Allocation Table )和数据存储区。 FAT 表是 FAT 文件系统的名称来源,它定义了存储数据的簇( Cluster ,由 2 n 次方个 Sector 组成, n 值根据分区大小而定,需综合考虑数据存取效率和存储空间的利用率)之间的链接关系,这种链接关系是一个单向链表,指向 0xFF 表示结束。依据一个簇编号所用 bit 数的不同,可分为 FAT12 FAT16 FAT32 文件系统。数据区存储的数据包含文件目录项( Directory Entries )和文件数据。文件目录项存储的是一个文件或目录的属性信息,包括文件名称(把目录也看成是文件)、读写属性、文件大小、创建时间、起始簇编号等,一个目录下的每个子目录和文件都对应一个表项记录。文件目录项以固定 32 字节的长度存储,以树型结构管理,其中根目录的位置是确定的。也就是说,根据分区根目录可以找到下级子目录和文件的起始簇编号,根据下级子目录又可以找到更下级目录或文件的起始簇编号。可见, FAT 表和文件目录项是为了文件的访问和管理而建立的。应用程序要访问一个文件时,根据文件路径(逻辑分区号+目录,如 F:\software )和文件名称(如 setup.exe )可从文件目录项中获得存储文件数据的起始簇号,之后从 FAT 表查询这个簇号对应的链表,就可以获得该文件对应的全部簇编号。从这些簇中读出全部数据,就得到一个完整的文件。

一般来说,文件系统是和操作系统紧密结合在一起的,不同的操作系统使用不同的文件系统,但有时为了兼容,不同操作系统也使用相同的文件系统。

二、主流文件系统特点

Windows 系列操作系统中, MS-DOS Windows 3.x 使用 FAT16 文件系统,默认情况下 Windows 98 也使用 FAT16 Windows 98 Windows Me 可以同时支持 FAT16 FAT32 两种文件系统, Windows NT 则支持 FAT16 NTFS 两种文件系统, Windows 2000 可以支持 FAT16 FAT32 NTFS 三种文件系统 . 每一种文件系统提供的功能与特点各不相同。比如 FAT32 文件系统。,采用 32 位的文件分配表,磁盘的管理能力大为增强。但由于文件分配表的增大,性能相对来说有所下降。此外,这个版本的文件系统不能向下兼容。

NTFS
是随着 Windows NT 操作系统而产生的,它的优点和 FAT 文件系统相比是有更好的安全性和稳定性,在使用中不易产生文件碎片, NTFS 分区对用户权限作出了非常严格的限制,同时它还提供了容错结构日志,从而保护了系统的安全。但 NTFS 分区格式的兼容性不好, Windows 98/ME 操作系统均不能直接访问该分区。对于超过 4GB 以上的硬盘,使用 NTFS 分区,可以减少磁盘碎片的数量,大大提高硬盘的利用率; NTFS 可以支持的文件大小可以达到 64GB ,远远大于 FAT32 下的 4GB ;支持长文件名,支持的最大分区为 2TB

Linux 系统中,每个分区都是一个文件系统,都有自己的目录层次结构。 Linux 的最重要特征之一就是支持多种文件系统 , 并可以和许多其它种操作系统共存。随着 Linux 的不断发展,它所支持的文件格式系统也在迅速扩充。特别是 Linux 2.4 内核正式推出后,出现了大量新的文件系统。 Linux 系统可以支持十多种文件系统类型包括: JFS ext ext2 ext3 ISO9660 XFS Minx MSDOS UMSDOS VFAT NTFS HPFS NFS SMB SysV PROC 等。

操作系统 文件系统 特点
Windows 95
Windows 98 OSR2 Windows 98 SE Windows Me Windows 2000 Windows XP Fat 文件系统
FAT12/FAT16
FAT32 可以允许多种操作系统访问,如 MS-DOS Windows 3.x Windows 9x Windows NT OS/2 等。这一文件系统在使用时遵循 8.3 命名规则 ( 即文件名最多为 8 个字符,扩展名为 3 个字符 ) 。最大的限制在于兼容性方面, Fat32 不能保持向下兼容。当分区小于 512M 时, Fat32 不会发生作用。单个文件不能大于 4G
Windows NT/2000 NTFS
文件系统 支持文件系统故障恢复,尤其是大存储媒体、长文件名。分区大小可以达到 2TB 。通过使用标准的事物处理日志和恢复技术来保证分区的一致性。只能被 Windows NT/2000 所识别,不能被 FAT 文件系统所存取。
Windows longhorn Winfs
用以组织、搜索和共享多种多样的信息的存储平台。 WinFS 被设计为在无结构文件和数据库数据之间建立起更好的互操作性,从而提供快捷的文件浏览和搜索功能。

Linux Ext2/ ext3/ XFS
等文件系统 是一种日志式文件系统。日志式文件系统的优越性在于:由于文件系统都有快取层参与运作,如不使用时必须将文件系统卸下,以便将快取层的资料写回磁盘中。因此每当系统要关机时,必须将其所有的文件系统全部卸下后才能进行关机。
UNIX
系统 NFS 网络文件系统,允许多台计算机之间共享文件系统,易于从所有这些计算机存放文件。
Windows
系列 CIFS 网络文件系统,允许多台计算机之间共享文件系统,易于从所有这些计算机存放文件。
AIX JFS
具有可伸缩性和健壮性,与非日志文件系统相比,它的优点是其快速重启能力: Jfs 能够在几秒或几分钟内就把文件系统恢复到一致状态。为满足服务器(从单处理器系统到高级多处理器和群集系统)的高吞吐量和可靠性需求而设计的。使用数据库日志处理技术, jsf 能在几秒或几分钟之内把文件系统恢复到一致状态。
Solaris Vxfs
日志式文件系统 . 建立文件的索引区,将操作记录在事件日志中,当系统发生意外时,能让系统迅速、完全地得到恢复。提供文件系统的照相功能,保证了数据的在线备份,提供文件系统的在线扩展,并提高了 I/O 吞吐率。

三、 NFS CIFS 网络文件系统

NFS (Network File System
,网络文件系统 ) 是当前主流异构平台共享文件系统之一 . 主要应用在 UNIX 环境下。 最早是由 SUN microsystem 开发,现在能够支持在不同类型的系统之间通过网络进行文件共享,广泛应用在 FreeBSD SCO Solaris 等等异构操作系统平台, 允许一个系统在网络上与它人共享目录和文件。通过使用 NFS ,用户和程序可以象访问本地文件一样访问远端系统上的文件,使得每个计算机的节点能够像使用本地资源一样方便地使用网上资源。换言之, NFS 可用于不同类型计算机、操作系统、网络架构和传输协议运行环境中的网络文件远程访问和共享。

NFS
的工作原理是使用客户端 / 服务器架构,由一个客户端程序和服务器程序组成。服务器程序向其它计算机提供对文件系统的访问,其过程就叫做 输出 NFS 客户端程序对共享文件系统进行访问时,把它们从 NFS 服务器中 输送 出来。文件通常以 为单位进行传输 . 其尺寸是 8K ( 虽然它可能会将操作分成更小尺寸的分片 ).NFS 传输协议用于服务器和客户机之间文件访问和共享的通信,从而使客户机远程地访问保存在存储设备上的数据。

CIFS
Common Internet File Syste ,公共互联网文件系统)是当前主流异构平台共享文件系统之一。主要应用在 NT/Windows 环境下,是由 Microsoft 公司开发。其工作原理是让 CIFS 协议运行于 TCP/IP 通信协议之上,让 Unix 计算机可以在网络邻居上被 Windows 计算机看到。

共享文件系统特点:
1
、异构平台下的文件共享:不同平台下的多个客户端可以很容易的共享 NAS 中的同一个文件。
2
、充分利用现有的 LAN 网络结构,保护现有投资。
3
、容易安装,使用和管理都很方便,实现即插即用。
4
、广泛的连接性:由于基于 IP/Ethernet 以及标准的 NFS CIFS ,可以适应复杂的网络环境。
5
、内部资源的整合:可以将内部的磁盘整合成一个统一的存储池,以卷的方式提供给不同的用户,每一个卷可以格式化成不同的文件系统。
6
、允许应用进程打开一个远地文件,并能够在该文件的某一个特定的位置上开始读写数据。 NFS 可使用户只复制一个大文件中的一个很小的片段,而不需复制整个大文件,在网络上传送的只是少量的修改数据。

需要注意的是, CIFS NFS 虽然同样也是文件系统( File System ),但它并不能用于在磁盘中存储和管理数据,它定义的是通过 TCP/IP 网络传输文件时的文件组织格式和数据传输方式。利用 CIFS NFS 共享文件实际涉及到两次的文件系统转换。客户端从服务器端申请一个文件时,服务器端首先从本地读出文件(本地文件系统格式),并以 NFS/CIFS 的格式封装成 IP 报文并发送给客户端。客户端收到 IP 报文以后,把文件存储与本地磁盘中(本地文件系统格式)。

四、存储系统与文件系统

提到 NAS ,通常会想到传统的 NAS 设备,它具有自己的文件系统,具有较大的存储容量,具有一定的文件管理和服务功能。 NAS 设备和客户端之间通过 IP 网络连接,基于 NFS/CIFS 协议在不同平台之间共享文件,数据的传输以文件为组织单位。虽然 NAS 设备常被认为是一种存储架构,但 NAS 设备最核心的东西实际上在存储之外,那就是文件管理服务。从功能上来看,传统 NAS 设备就是一个带有 DAS 存储的文件服务器。从数据的 IO 路径来看,它的数据 IO 发生在 NAS 设备内部,这种架构与 DAS 毫无分别。而事实上,很多 NAS 设备内部的文件服务模块与磁盘之间是通过 SCSI 总线连接的。至于通过 NFS/CIFS 共享文件,完全属于高层协议通信,根本就不在数据 IO 路径上,所以数据的传输不可能以块来组织。正是由于这种功能上的重叠,在 SAN 出现以后, NAS 头设备(或 NAS 网关)逐渐发展起来, NAS over SAN 的方案越来越多, NAS 回归了其文件服务的本质。

由此可知, NAS 与一般的应用主机在网络层次上的位置是相同的,为了在磁盘中存储数据,就必须要建立文件系统。有的 NAS 设备采用专有文件系统,而有的 NAS 设备则直接借用其操作系统支持的文件系统。由于不同的 OS 平台之间文件系统不兼容,所以 NAS 设备和客户端之间就采用通用的 NFS/CIFS 来共享文件。至于 SAN ,它提供给应用主机的就是一块未建立文件系统的 虚拟磁盘 。在上面建立什么样的文件系统,完全由主机操作系统确定。

你可能感兴趣的:(基础,职场,文件系统,知识,休闲)