文件系统概述

来源:互联网 发布:mac充电器怎么用 编辑:程序博客网 时间:2024/05/17 23:38

文件系统概述

一、文件系统的定义

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

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

二、常见文件系统

l  FAT/FAT32/NTFS

Windows系统下有FAT、FAT32、NTFS,我们重点要了解几种文件系统的区别,他们各自的优点,一般来说后出现的文件系统各方面都比老的文件系统要好,但实际上也不一定,在实际情况下,要根据满足不同的需求进行选择。比如对于小容量磁盘,适合用FAT32,可以提高磁盘利用率,对于装多个操作系统,也要求在启动分区使用FAT32格式。

NTFS

FAT32

FAT

推荐的最小卷大小约10MB,也可使用大于2TB的卷,无法在软盘上使用

卷的容量从512MB 到2TB在Windows XP中,只能格式化最大到32GB 的FAT32卷

不支持域

容量可从软盘大小到4GB

不支持域

 

文件大小只受卷的容量限制

最大文件大小为4GB4G

最大文件大小为2GB

NTFS比FAT 或 FAT32的功能更强大,它包括提供Active Directory所需的功能以及其他重要安全性功能。将分区转换为NTFS很容易。要维护文件和文件夹访问控制并支持有限个帐户,必须使用 NTFS。NTFS 是一种最适合处理大磁盘的文件系统。

l  EXT2与EXT3

EXT2和EXT3是linux下最常用的两种文件系统,EXT3较EXT2,主要有以下优点:

可用性高

在异常断电或系统崩溃发生时,每个在系统上挂载了ext2文件系统必须使用e2fasck程序来检查其一致性。在这期间,经历的时间很长,而且文件卷上的所有数据都不能访问,使用了ext3文件系统后,即使在非正常关机后,系统也不需要检查文件系统,而且恢复ext3文件系统的时间只要数十秒钟。

数据完整性

Ext3文件系统能够极大地提高文件系统的完整性,避免了意外关机对文件系统的破坏。在保证数据完整性方面,ext3文件系统有2种模式可供选择。其中之一就是同时保持文件系统及数据一致性。采用这种方式,不再会看到由于非正常关机而存储在磁盘上的垃圾文件。

读写性能好

尽管使用ext3文件系统, 有时在存储数据时可能要多次写数据,但是,  从总体上看来,ext3比ext2的性能还要好一些,这是因为ext3的日志功能对磁盘的驱动器读写头进行了优化。因此,文件系统的读写性能较之ext2文件系统来说,性能并没有降低。

数据转换安全简单

由于ext3直接从ext2文件系统发展而来,系统由ext2文件系统过渡到ext3日志文件系统升级过程平滑,可以最大限度地保证系统数据的安全性。由ext2文件系统转换成ext3文件系统非常容易,只要简单地键入两条命令即可完成整个转换过程,用户不用花时间备份!恢复!格式化分区等。用一个ext3文件系统提供的小工具tune2fs,它可以将ext2文件系统轻松转换为ext3日志文件系统。另外,ext3文件系统可以不经任何更改,而直接加载成为ext2文件系统。

l  JFS/JFS2

Aix下jfs和jfs2文件系统都是文件和目录的集合,管理文件或目录在磁盘上的位置。除了文件和目录以外,jfs2类型的文件系统还包含一个超级块、分配位图和一个或多个分配组。 JFS2把磁盘空间分割成块,JFS2支持512,1024,2048和4096字节块的大小。不同的文件系统可以使用不同的块的大小,从而达到优化空间的目的,减少目录或文件内部的残片,JFS2支持已安装的文件系统(即使有进程访问这个文件系统)对残余在文件系统中的空闲空间的整理功能。一旦一个文件系统的空闲空间变成分散的残片,对这些残片的整理将会使得JFS2提供I/O效率更高的磁盘空间分配,从而避免出现一些因空闲空间不连续而不够分配的情况。

l  集群文件系统

集群文件系统是指协同多个节点提供高性能、高可用或负载均衡的文件系统,多个系统可以同时加载、访问,它是分布式文件系统的一个子集,消除了单点故障和性能瓶问题。对于客户端来说集群是透明的,它看到是一个单一的全局命名空间,用户文件访问请求被分散到所有集群上进行处理。此外,可扩展性、可靠性、易管理等也是集群文件系统追求的目标。在元数据管理方面,可以采用专用的服务器,也可以采用服务器集群,或者采用完全对等分布的无专用元数据服务器架构。常见的操作系统集群文件系统有Linux下的GFS、Sun的Lustre、AIX下的GPFS等,集群软件商的集群文件系统有veritas的Vxfs等,还有Oracle数据库的ocfs2,其中重点介绍下ocfs2集群文件系统。

Ocfs2是的Oracle自己的集群文件系统,它是一种通用的文件系统,它不仅可以存放数据库相关的文件,还可以存放oracle二进制文件(指Oracle_home下的软件文件)和配置文件,从而使RAC的管理更加轻松。

l  NFS

NFS,是Network File System的简写,即网络文件系统, NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,类似于windows下面的共享目录,主要用于本地磁盘空间不足的情况下,共享其他磁盘用户备份。

三、文件系统扩展知识

l  裸设备和文件系统

裸设备(raw device),也叫裸分区(原始分区),是一种没有经过格式化,不通过文件系统来读取的特殊块设备文件。由应用程序负责对它进行读写操作。不经过文件系统的缓冲。它是不被操作系统直接管理的设备。这种设备少了操作系统这一层,I/O效率更高。不少数据库都能通过使用裸设备作为存储介质来提高I/O效率。

因为使用裸设备避免了再经过操作系统这一层,数据直接从Disk到Oracle进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。当然,这是以磁盘的 I/O 非常大,磁盘I/O已经称为系统瓶颈的情况下才成立。如果磁盘读写确实非常频繁,以至于磁盘读写成为系统瓶颈的情况成立,那么采用裸设备确实可以大大提高性能,最大甚至可以提高至40%,非常明显。

而且,由于使用的是原始分区,没有采用文件系统的管理方式,维护就会相对麻烦,例如在Oracle中,一旦使用了裸设备,tablespace就不能设定为auto_extend,因为在裸设备中不支持文件大小的自动扩展,因此如果数据文件快要写完的时候,请手动在裸设备上添加数据库文件以完成扩容的目的。

四、综述

通过上面的介绍,应该了解到主流操作系统文件系统的大概情况,可以看出后出现的文件系统现对于之前的都有一定的优势,因为在实施过程不,技术人员不必纠结用那种文件系统格式化分区,把握一个原则,用最‘新’的就行。如linux建议用Ext3、aix用jfs2,一般都不会有太大问题,集群文件系统和NFS这是两个特殊的文件系统,要根据用户的实际情况进行设置,一般情况下,我们在装RAC集群的时候,都用集群软件自带的文件系统或者ASM,不建议使用裸设备,毕竟管理维护复杂,对于医院用户来说管理成本太高。

0 0