请关注本百科号,每天保持更新原创干货技术文章。
如需学习视频,请在微信上搜索微信官方账号的“智川网你”,直接开始自助视频学习。
1.介绍
本文主要讲解如何正确选择linux根分区的文件系统类型。文件系统类型不是在分区时确认的,而是在格式化阶段确认和实现的。格式化分区时,选择合适的文件系统非常重要。
众所周知,NTFS是Windows操作系统中最常用的文件系统,而Linux系统则截然不同。
linux文件系统格式类型介绍
2.了解各种文件系统类型的特征。
Linux支持许多不同的文件系统。每个文件系统都有其优点和缺点,以及自己的一套性能特征。系统的一个重要属性是日志,它有助于在系统崩溃后更快地恢复。一般来说,选择时,日志文件系统优先于非日志文件系统。您可能还想考虑您选择的文件系统是否支持安全性增强的Linux(或SELinux)。两个较新的文件系统ZFS和btrfs都使用一种称为写时复制的技术来提高数据完整性和解决大存储需求。下面简单介绍一下LPI考试需要了解的文件系统类型。更多背景信息请参见参考资料。
了解各种文件系统类型的特征。
2.1 ext 2文件系统介绍
Ext2文件系统(也称为第二个扩展文件系统)是为了补充早期Linux版本中使用的Minix文件系统的缺点而开发的。多年来,它在Linux上被广泛使用。ext2中没有日志,已经被ext3和最新的ext4大量取代。
ext2文件系统介绍
2.2 ext3文件系统介绍
Ext3文件系统在标准的ext2文件系统中加入了日志功能,所以是对一个非常稳定的文件系统的革命性改进。它在大多数情况下都能提供合理的性能,并且仍在不断改进。因为它在成熟的ext2文件系统中添加了日志,所以可以将现有的ext2文件系统转换成ext3,甚至在需要的时候再转换回来。
EXT3文件系统的唯一目标是克服fsck程序在文件更新操作中需要大量时间来完全恢复因关闭不当而损坏的磁盘结构的问题。EXT文件系统中唯一增加的是journal,它预先记录了将对文件系统进行的更改。其余的磁盘结构与EXT2相同。
EXT3中的Journal不直接将数据写入磁盘的数据区,而是将文件数据及其元数据写入磁盘的指定区域。一旦数据安全地存储在硬盘上,它就可以被合并到或附加到目标文件中,而几乎不会丢失数据。由于这个数据是提交到磁盘的数据区的,所以需要更新日志,使文件系统在系统出现故障时处于一致状态,然后这个日志中的所有数据都会被提交。下次启动时,会检查文件系统的不一致性,然后将journal中剩余的数据提交到磁盘的数据区,完成对目标文件的更新。
Linux实现的Ext3文件系统,包括3级日志:
日记:(缓慢,但风险低)元数据和文件内容在提交到主文件系统之前被写入。这将提高稳定性,但以牺牲性能为代价,因为所有数据都必须写入两次。如果不将此选项添加到/etc/fstab中,正在修改的文件在遇到内核崩溃或突然断电时可能会被损坏。当然还是要看软件怎么写文件。
顺序:(中速,中等风险)顺序与回写类似,但文件内容是在对应元数据标记为提交之前强制写入的。这是许多Linux发行版的默认方式。
回信:(快,但有风险;某种意义上相当于ext2)这里只会将元数据写入日志,文件的内容不会写入日志。这让整体效率快了很多,但也导致了文件写的顺序不对的结果。比如文件在附加和放大的时候会发生崩溃,可能导致下次挂载的时候文件后面会附加一堆垃圾数据。
虽然ext3缺乏当代文件系统的一些特征,如动态inode、树状数据存储结构等。,这被认为是ext3的缺点之一,但除了这些特点,ext3在文件系统恢复方面也有不错的表现。与树形结构的文件系统相比,元数据放在ext3上的固定位置,同时会重复写入的一些数据使得ext2/3在面对数据损坏时有机会恢复。
2.3 ext 4文件系统介绍
Ext4文件系统原本是ext3的扩展,通过增加存储限制和提高性能来满足更大文件系统的需求。为了保持ext3的稳定性,2006年6月决定将这些扩展分支到一个新的文件系统中,即ext4。ext4文件系统于2008年12月发布,包含在2.6.28内核中。ext3的一些变化包括:
系统的最大文件大小为1 EB,最多可包含16 TB的文件。使用扩展区而不是块映射来提高性能。使用日志校验和来提高可靠性。因为在检查期间会跳过未分配的数据块,所以文件系统检查会更快。延迟分配和多块分配器提高了性能,减少了文件碎片。时间戳的改变提供了更精细的粒度,并增加了新的创建日期(许多库和实用程序需要最终更新才能完全运行)。进一步的时间戳更改解决了将时间戳存储为带符号的32位整数所导致的2038问题。大型文件系统ext4文件系统可以支持高达1兆字节的分区[6]和高达16兆字节的文件。Extents EXTEXT4引入了Extent文件存储方法来代替ext2/3使用的块映射方法。盘区是指一系列连续的实体块,可以提高大文件的效率,减少文件分裂。Ext4支持单个盘区,在单个4KB块的系统中可以达到128 MB[1]。四个范围;可以存储在单个inode中;多于四个笔划的范围将被Htree索引。向后兼容ext4在ext3和ext2中是向后兼容的,所以ext3和ext2的文件系统可以挂载为ext4分区。由于ext4的一些新功能可以直接应用到ext3和ext2上,所以直接挂载可以稍微提升一点性能。ext3文件系统可以部分向上兼容ext4(也就是说,ext4文件系统可以作为ext3分区挂载)。但是如果使用Ext技术,ext4就不能挂载成ext3。Reserved 空 ext4允许为文件提前预留磁盘空。大多数当前的文件系统通过直接生成一个用零填充的文件来做到这一点;Ext4和XFS可以在Linux内核中使用一个新的系统调用“fallocate”来获得足够的预留空。获取空延迟ext4使用了一种叫做allocate-on-flush的方法,可以在数据将要写入磁盘(sync)之前开始获取空;大多数文件系统会提前获得所需的空空间。这种方法可以提高性能并减少文件分散。打破32000子目录的限制。ext3的一个目录最多只能有32000个子目录。ext4的子目录数最大为64000,使用“dir_nlink”函数可以更高(虽然父目录的链接数会停止增加)。为了避免性能受到大量目录的影响,ext4默认开启了Htree(一种特殊的B树)索引功能。这个函数已经在Linux内核版本2.6.23中实现。日志校验和Ext4使用校验和特性来提高文件系统的可靠性,因为日志是磁盘上最常被读取的部分之一。该特性的另一个优点是,它可以安全地避免在日志处理期间等待磁盘I/O,并略微提高性能。日志校验和的技术来源于威斯康星大学一篇名为IRON File Systems的研究论文(参见第6节事务校验和校验和处理在线磁盘整理在线磁盘整理工具的草案有很多,但没有一个包含在主流内核中。即使Ext4包含了很多避免磁盘碎片的技术,但是磁盘碎片在一个使用了很长时间的文件系统中还是会不可避免的存在。Ext4会有一个带磁盘清理功能的工具。快速文件系统检查Ext4在inode中标记未使用的块,这使得e2fsck等工具可以在磁盘检查期间完全跳过这些块,从而节省大量文件系统检查时间。这个特性已经在Linux内核版本2.6.24中实现了。2.4 xfs文件系统简介
XF是一种高性能日志文件系统,由Silicon Graphics于1993年首次为其IRIX操作系统开发,是IRIX 5.3版的默认文件系统。2000年5月,Silicon Graphics在GNU通用公共许可证下发布了这个系统的源代码,然后移植到Linux内核。XF尤其擅长处理大文件,同时提供流畅的数据传输。目前,CentOS 7还使用XFS+LVM作为默认文件系统。
Xf是一个具有日志功能的文件系统。它具有可靠的功能,并针对可扩展性进行了优化。XFS大胆地将传输中的数据缓存在RAM中,因此建议在使用XFS时使用不间断电源。
交换文件系统
exchange 空文件室必须经过格式化才能用作exchange 空文件室,但它通常不被视为文件系统。
XF的开发始于1993年,1994年首次部署在IRIX 5.3上。2000年5月,XFS在GNU通用公共许可证下发布,并移植到Linux上。2001年,Linux发行版首次支持XFS,现在所有的Linux发行版都可以使用XFS。
XFS最初被并入Linux 2.4主线,这使得XFS几乎可以在任何Linux系统上使用。Arch、Debian、Fedora、OpenSUSE、Gentoo、Kate OS、Mandriva、Slackware、Ubuntu、Vector Linux和Zenwalk的安装程序都可以选择XFS作为文件系统。但是,由于缺省引导管理器GRUB中的缺陷,上述发行版中只有少数允许用户在/boot挂载点(引导目录)上使用XFS文件系统。
FreeBSD在2005年12月获得了对XFS的只读支持,并在次年6月引入了实验性的写支持。但是,这些只是为了方便用户从Linux迁移到FreeBSD,而不是用XFS作为主要的文件系统。红帽企业版Linux 5.4 64位版本的内核完全支持XFS,但不包含创建和使用XFS的命令行工具(CentOS正在尝试这一点),因为这些软件包不够稳定[2]。默认情况下,Red Hat Enterprise Linux 7/CentOS使用XFS文件系统。
2.5 vfat文件系统
这个文件系统(也称为FAT32)没有日志功能,并且缺少完整的Linux文件系统实现所需的许多功能。它对于在Windows和Linux系统之间交换数据非常有用,因为Windows和Linux都可以读取它。不要将这个文件系统用于Linux,除非您使用它在Windows和Linux之间共享数据。如果您将Linux归档文件解压缩到vfat磁盘,您将失去一些权限,例如执行权限,并且您将失去可能存储在归档文件中的所有符号链接。
2.6 ReiserFS文件系统
ReiserFS是一个基于B树的文件系统,整体性能非常好,尤其是对于大量的小文件。ReiserFS还具有良好的可扩展性和日志功能。一直没有积极开发,不支持SELinux,很大程度上被Reiser4取代,前途不明。
高级日志机制ReiserFS有高级日志机制。当系统意外崩溃时,未完成的文件操作不会影响整个文件系统结构的完整性。虽然ext2非常健壮,但是一旦文件系统异常断开,下次启动时就要经历一个漫长的检查系统数据结构完整性的过程,这是防止数据丢失的必要操作。对于较大的服务器文件系统,这种“文件系统检查”可能会持续几个小时,这在许多情况下是不可接受的。解决这个问题的一个技术就是“日志文件系统”。在日志的帮助下,数据结构的每一次变化都被记录下来,日志机制保证了在每一次实际的数据修改之前,相应的日志已经被写入硬盘。正因为如此,当系统突然崩溃时,可以在下一次启动后几秒钟恢复成完整的系统,系统可以快速使用。ReiserFS支持海量磁盘和优秀的综合性能,是一个相当现代的文件系统。相比ext2,虽然性能已经很不错了,但设计还只是80年代的水平。随着ReiserFS的出现,Linux有了Irix/AIX这样的高级文件系统,这是高端商业Unix所独有的。ReiserFS可以轻松管理数百千兆字节的文件系统,这使得它在企业应用程序中非常有用。由于其高效的存储和快速的小文件I/O,在桌面系统上也表现出色:启动X-window系统的时间比ext2少1/3。但是,ext2不能管理超过2G的单个文件,这使得ReiserFS在一些大型企业应用程序中比ext2更好。ReiserFS的缺点ReiserFS最受诟病的缺点之一就是每次升级版本都要重新格式化磁盘,这个缺点也在不断改进中。2.7 btrfs文件系统
Btrfs(B树文件系统)最初是由Oracle开发的,可以在GPL许可下获得(参见参考资料)。它是一个新的用于Linux的写时复制文件系统,旨在实现高级功能,同时注重容错、修复和易于管理。从2009年版本2.6.29开始,Btrfs文件系统代码已经被添加到主线内核中。具体来说,文件系统旨在高效地处理大型文件和运行在多个设备上的文件系统。
一些设计目标包括:
大文件大小(高达2 64字节)数据和元数据的校验和集成了对多种设备的支持。SSD感知和高效的增量备份数据完整性拷贝不会重写数据,因此硬件故障不会使数据处于不一致的状态。与大多数新文件系统一样,这个系统需要很长时间才能获得足够的稳定性,以便用户向其提交重要数据,因此它不是大多数Linux发行版的主要文件系统。3.适用于Linux根分区的文件系统
适用于Linux根分区的文件系统
在CentOS 7.0开始的时候,默认的文件系统是xfs,CentOS 6是ext4,CentOS 5是ext3。
Xfs是SGI公司设计的一个优秀的日志文件系统。Xfs被认为是业界最先进和可伸缩的文件系统技术。xfs是64位文件系统,它可以支持最大8EB减1字节的单个文件系统。实际部署取决于主机操作系统的最大数据块限制。对于32位Linux系统,文件和文件系统的大小将被限制为16TB。
Linux内核从2.6.28开始正式支持新的文件系统Ext4。Ext4是Ext3的改进版本,修改了Ext3中一些重要的数据结构,而不是像Ext3对Ext2那样仅仅增加一个日志功能。Ext4可以提供更好的性能和可靠性,以及更丰富的功能:
ext3和ext4最大的区别是,ext3在fsck中耗费大量时间(文件越多,耗费时间越长),而ext4在fsck中耗费的时间要少很多。ext4是第四个扩展文件系统(英文:ext4),是linux下的日志文件系统,也是ext3文件系统的后续版本。
本文已同步到博客站,尊重原创。请在正文中附上以下链接:
单击了解更多信息,并快速查看更多技术文章的列表。