Linux 支持多种的文件系统种类,除了 linux 通常使用的 ext 系列,也可以支持 windows 下的 vfat 和 ntfs 格式,当然包括类似 nfs 、 xfs 等各种网络存储格式。这里我们首先介绍一下 CentOS 系统通常会用到的 ext , ext2 , ext3 , ext4 , swap 格式。
ext 是第一个专门为 Linux 的文件系统类型,叫做扩展文件系统。它在 1992 年 4 月 完成的。它为 Linux 的发展取得了重要作用。但是在性能和兼容性上存在许多缺陷。现在已经很少使用了。
ext2 是为解决 ext 文件系统的缺陷而设计的可扩展的高性能的文件系统。 ext2 是 Linux 文件系统类型中使用最多的格式。并且在速度和 CPU 利用率上较突出,是 GNU / Linux 系统中标准的文件系统,其特点为存取文件的性能极好。
ext2 可以支持 256 字节的长文件名,其单一文件大小与文件系统本身的容量上限与文件系统本身的簇大小有关,在一般常见的 Intel x86 兼容处理器的系统中,簇最大为 4KB , 则单一文件大小上限为 2048GB ,而文件系统的容量上限为 6384GB 。
ext2 的缺点:ext2 的设计者主要考虑的是文件系统性能方面的问题。ext2 在写入文件内容时并没有马上同步写入文件的 meta-data(和文件有关的信息,例如:权限、所有者以及创建和访问时间)。换句话说, Linux 先写入文件的内容,然后等到有空的时候才写入文件的 meta-data 。这样若出现写入文件内容之后,在写入文件的 meta-data 之前系统突然断电,就可能造成在文件系统就会处于不一致的状态。在一个有大量文件操作的系统中出现这种情况会导致很严重的后果。
ext3 是由开放资源社区开发的日志文件系统。 ext3 被设计成是 ext2 的升级版本,尽可能地方便用户从 ext2fs 向 ext3fs 迁移。 ext3 在 ext2 的基础上加入了记录元数据的日志功能, 努力保持向前和向后的兼容性。 Ext3 目前所支持最大 16TB 文件系统和最大 2TB 文件( x86 _ 64 机器, 32 位机器和 ext2 一样, ext2 时代还没有出现 64 位机器)。
ext3 是一种日志式文件系统。日志式文件系统的优越性在于:由于文件系统都有快取层参与运作,如不使用时必须将文件系统卸下,以便将快取层的资料写回磁盘中。因此每当系统要关机时,必须将其所有的文件系统全部卸下后才能进行关机。如果在文件系统尚未卸下前就关机(如停电)时,下次重开机后会造成文件系统的资料不一致,故这时必须做文件系统的重整工作,将不一致与错误的地方修复。然而,重整的工作是相当耗时的,特别是容量大的文件系统,而且也不能百分之百保证所有的资料都不会流失。
ext3 的缺点:其最大的缺点是没有现代文件系统所具有的能提高文件数据处理速度和解压的高性能。
Ext4 是一种针对 ext3 系统的扩展日志式文件系统,是专门为 Linux 开发的原始的扩展文件系统(ext 或 extfs)的第四版。 Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4 。 Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加了一个日志功能而已。 Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能。相对于 Ext3 ,特点如下:
Ext4 作为传统的文件系统确实非常成熟稳定,但是随着存储需求的越来越大, Ext4 渐渐适应不了了。比如说现在虽然 Ext4 目录索引采用了 Hash Index Tree , 但是依然限制高度为 2 .
Ext4 的单个目录文件超过 200W 个,性能下降的就比较厉害了。由于历史磁盘结构原因 Ext4 的 inode 个数限制(32 位数)最多只能有大概 40 多亿文件。而且 Ext4 的单个文件大小最大只能支持到 16T ( 4K block size) 的话,这些至少对于目前来说已经是瓶颈了。而 XFS 使用 64 位管理空间,文件系统规模可以达到 EB 级别,可以说未来几年 XFS 彻底取代 Ext4 是早晚的事情。
swap 分区是 linux 特有的,在硬盘上单独划分出来一块空间用来存放内存和硬盘之间的交换数据,以提高机器的效率。相当于 windows 的虚拟内存,但是效率要比虚拟内存好得多。 Swap 分区可以不设立,但是建议划分。
但是不同的应用有不同的需求,可以根据使用情况逐步添加或者减小 swap 分区。
目录 |
描述 |
|
/ |
根目录。 |
|
/bin |
作为基础系统所需要的最基础的命令就是放在这里。比如 ls、cp、mkdir 等命令;功能和 /usr/bin 类似,这个目录中的文件都是可执行的,普通用户都可以使用的命令。 |
|
/boot |
Linux 的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB 或 LILO 系统引导管理器也位于这个目录;启动装载文件存放位置,如 kernels、initrd、grub。一般是一个独立的分区。 |
|
/dev |
一些必要的设备、声卡、磁盘等。 |
|
/etc |
系统的配置文件存放地。一些服务器的配置文件也在这里,比如用户帐号及密码配置文件。 |
|
/home |
用户工作目录,和个人配置文件,如个人环境变量等,所有的账号分配一个工作目录。一般是一个独立的分区。 |
|
/lib |
库文件存放地。bin 和 sbin 需要的库文件。类似 windows 的 DLL。 |
|
/media |
可拆卸的媒介挂载点,如 CD-ROMs、移动硬盘、U 盘,系统默认会挂载到这里来。 |
|
/mnt |
临时挂载文件系统。这个目录一般是用于存放挂载储存设备的挂载目录的,比如有 cdrom 等目录。可以参看 /etc/fstab 的定义。 |
|
/opt |
可选的应用程序包。 |
|
/proc |
操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如 cpu、硬盘分区、内存信息等)存放在这里。/proc 目录伪装的文件系统 proc 的挂载目录,proc 并不是真正的文件系统,它的定义可以参见 /etc/fstab 。 |
|
/root |
root 用户的工作目录。 |
|
/sbin |
和 bin 类似,是一些可执行文件,不过不是所有用户都需要的,一般是系统管理所需要使用得到的。 |
|
/tmp |
系统的临时文件,一般系统重启不会被保存。 |
|
/usr |
包含了系统用户工具和程序。
|
|
/srv |
该目录存放一些服务启动之后需要提取的数据。 |
以下为两块磁盘,在使用之前划分为不同的分区(分区大小不同),每个分区格式化为不同的文件系统:
(以红色代表 swap 文件系统、以蓝色单表 ext2 文件系统、以绿色代表 ext3 文件系统)
将这八块分区分别挂载到不同的目录下。箭头表示挂载:
如上图所示,当硬盘挂载到某个目录上时,该目录及其下的子目录都使用该分区,除非其子目录挂载了别的分区。换句话说,每个目录都使用挂载在自身的分区,如果没有分区挂载在自身,就使用上级目录所使用的分区。
根据 linux 分区和目录结构的联系特点,需要在安装初期规划好分配情况,才能保证数据安全和性能。
原文:https://www.cnblogs.com/juno3550/p/14698108.html