Linux 支持几个不同的文件系统。这些文件系统中,一些是专用的网络文件系统或为其他操作系统开发的文件系统,但绝大部分还是用作 Linux 本地文件系统 — 您可以将 Linux 根(/)和系统目录放在这种文件系统里。目前,这一类文件系统包括 ext2、ext3、ReiserFS、XFS 和 Journaled File System (JFS)。但是文件系统一直在不断设计和开发中,新的文件系统也将陆续问世。
目前正在开发的最重要的 Linux 文件系统是 ext4 — 它是专门为 Linux 开发的原始的扩展文件系统(ext 或 extfs)的第四版。由于继承了以前版本,ext4 在不久的将来很可能会成为一个重要的 Linux 标准文件系统(可能是 标准文件系统)。
扩展文件系统(ext 或 extfs)第四版产生的原因是开发人员在 ext3 中并入了新的高级功能。但在实现的过程出现了几个问题:
- 一些新功能违背向后兼容性。
- Ext3 代码变得更加复杂并难以维护。
- 这些更改使原本十分可靠的 ext3 变得不可靠。
由于这些原因,从 2006 年 6 月份开始,开发人员决定把 ext4 从 ext3 中分离出来进行独立开发。Ext4 的开发工作从那时起开始进行,但大部分 Linux 用户和管理员都不怎么注意这件事情。随着 2.6.19 内核在 2006 年 11 月的发布,ext4 第一次出现在主流内核里,但是它当时还处于试验阶段(现在还是),因此很多人都忽视了它。
由于还处于开发阶段,从 2.6.24.4 内核开始,ext4 的功能列表就一直在变动。 详情见表1。
表 1. Ext4 的当前功能和未来功能使它超越了 ext3
功能
优势
更大的文件系统
Ext3 最多只能容纳 32 TiB 的文件系统和 2 TiB 的文件,根据使用的具体架构和系统设置,实际容量上限可能比这个数字还要低 — 或许只能容纳 2 TiB 的文件系统和 16 gibibyte(GiB)的文件。相反,Ext4 的文件系统容量达到 1024 pebibyte(PiB) , 或 1 exbibyte(EiB),而文件容量则达到 16 TiB。对一般的台式计算机和服务器而言,这可能并不重要,但对大磁盘阵列的用户而言,这就非常重要了。
extent
extent 是一种提高磁盘文件描述符效率的方法,它能够减少删除大型文件所需的时间等等。
持久性预分配
如果一个应用程序需要在实际使用磁盘空间之前对它进行分配,大部分文件系统都是通过向未使用的磁盘空间写入 0 来实现分配。而 ext4 允许提前分配,无需进行上述操作,这能提高某些数据库和多媒体工具的性能。
延迟分配
Ext4 能够尽量延迟磁盘空间的分配,这能够提高性能。
更多的子目录
如果 ext3 中一个目录只能包含 32,000 个子目录还不能满足您的需求,那么不必担心,因为 ext4 取消了这一限制。
日志 checksum
Ext4 给日志数据添加了检查和(checksum)功能,这能提高可靠性和性能。
在线磁盘整理
虽然 ext3 一般不会受到碎片的影响,但是存储在它里面的文件多少会产生一些碎片。Ext4 支持在线磁盘整理,这能够改善总体性能。
恢复删除文件
虽然这一功能尚未实现,但 ext4 将支持恢复删除文件。当文件被意外删除时,此功能将极为有用。
更快的文件系统检查
Ext4 添加了新的数据结构,允许 fsck 在检查中跳过磁盘中未使用的部分,因此加快了文件系统的检查。
纳秒级时间戳
大部分的文件系统(包括 ext3)都包含有精确到秒的时间戳数据,而 ext4 把精确度提高到了纳秒。一些资料还表明 ext4 的时间戳支持的日期达到 2514 年 4 月 25 日,而 ext3 只达到 2038 年 1 月 18 日。
由于 ext4 目前还处于开发阶段,这个功能表还会有所变动。功能列表的一些功能在实际使用中不具备与 ext3 的向后兼容性 — 即可能无法使用 ext3 文件系统类型的代码挂载 ext4 文件系统。但是 ext4 保留了向前兼容性 — 您可以像挂载 ext4 文件系统一样挂载 ext3 文件系统。
<转自IBM官网>
二.格式化文件系统
由于centos5 默认的文件系统是ext3所以我们需要一个格式化ext4的工具
[root@server1 src]# yum install -y e4fsprogs
ext4格式化分区
[root@server1 src]# mkfs.ext4 /dev/hdb1
挂载文件系统
[root@server1 src]# mount -t ext4 /dev/hdb /u01
mount: mount point /u01 does not exist
[root@server1 src]# mkdir /u01
[root@server1 src]# mount -t ext4 /dev/hdb /u01
[root@server1 src]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
7.2G 2.3G 4.6G 34% /
/dev/hda1 99M 12M 82M 13% /boot
tmpfs 125M 0 125M 0% /dev/shm
/dev/hdb 20G 172M 19G 1% /u01
[root@server1 src]# fdisk -l
Disk /dev/hda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 1044 8281507+ 8e Linux LVM
Disk /dev/hdb: 21.4 GB, 21474836480 bytes
15 heads, 63 sectors/track, 44384 cylinders
Units = cylinders of 945 * 512 = 483840 bytes
Disk /dev/hdb doesn't contain a valid partition table
三.写入分区表
[root@server1 ~]# cat /etc/fstab |grep u01
/dev/hdb1 /u01 ext4 defaults 0 0
[root@server1 ~]#
本文转自 珏石头 51CTO博客,原文链接:http://blog.51cto.com/gavinshaw/501221,如需转载请自行联系原作者