存储方式
文件系统
Linux系统核心可以支持十多种文件系统类型:
ext, ext2, ext3, ext4, hpfs, iso9660, JFS, minix, msdos, ncpfs nfs, ntfs, proc, Reiserfs, smb, sysv, umsdos, vfat, XFS, xiafs, ZFS, Btrfs,vfs。
ext:Ext4(ext4日志文件系统、第四代扩展文件系统)文件系统是Linux用途最广泛的日志文件系统。Ext4稳定版本发布于2008年,即Linux 2.6.28版本。但它的历史最早可以追溯到1992年的Ext2文件系统,那是Linux最早使用的文件系统,而后2001年出现的Ext3在Ext2基础上增加了日志功能,并最终由Ext4替代,而且Ext4可向前兼容Ext2/Ext3。
hpfs:HPFS(High Performance File System)是Linux文件系统中一个较新的产品,专门针对高性能设备应用,其重Transport速度快,文件存储可靠,操作简单,容易维护,属于较为优秀的文件系统之一。
iso9660:ISO9660光盘格式是一种只读的文件系统格式,在光盘制作时,所有的文件和目录结构都被预先存储到光盘上,并且无法更改。这种设计可以保证光盘的数据安全和稳定性,但同时也限制了光盘的应用范围。ISO9660光盘格式支持多种标准的文件系统格式,如UNIX、Windows等。可以通过在ISO9660光盘上添加特定的扩展名来满足不同的系统平台需求。同时,ISO9660光盘格式也支持各种不同的文件名长度、文件时间戳、文件类型等文件系统属性。
JFS:JFS2(又称 enhanced journaled file system)是较早期的日志文件系统,在植入 Linux 之前已被应用于 IBM AIX操作系统多年。它是 64 位的文件系统,虽然它是在原来的 JFS 的基础上开发的,但却较之有所改进,即:JFS2 具有更优的扩展性能,而且支持多处理器架构(IBM官方将第2版的JFS文件系统命名为JFS2,但大多数Linux系统还是称其为JFS)。
MINIX:是从MINIX操作系统移植到Linux的,其优点是简单清晰,适合用于教学使用。但缺点是过于简单,不适合生产环境使用。不过通过对MINIX文件系统的分析,有助于理解其他复杂的文件系统。
MS-DOS文件系统是一种用于存储和组织文件的文件系统,最初用于早期的DOS操作系统。它使用FAT(文件分配表)作为文件系统的核心结构。mkfs.msdos命令可以在Linux系统上创建一个与MS-DOS兼容的文件系统,以便在Linux系统上与其他设备或操作系统进行文件共享。
NCPFS 是一种Novell NetWare使用的NCP协议的网络操作系统。
NFS是一种用于在网络上共享文件系统的协议。它允许远程主机通过网络挂载和访问共享的文件系统。NFS可以实现分布式存储和共享,适用于多个服务器之间的文件共享和协作。
Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。
ReiserFS是一种新型的文件系统,它通过一种与众不同的方式–完全平衡树结构来容纳数据,包括文件数据,文件名以及日志支持。ReiserFS还以支持海量磁盘和磁盘阵列,并能在上面继续保持很快的搜索速度和很高的效率。
Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块
SysV 是System V/Coherent在Linux平台上的文件系统。
UMSDOS Linux下的扩展MSDOS文件系统驱动,支持长文件名、所有者、允许权限、连接和设备文件。允许一个普通的MSDOS文件系统用于Linux,而且无须为它建立单独的分区。
VFAT是“扩展文件分配表系统”的意思,它对FAT16文件系统进行扩展,并提供支持长文件名,文件名可长达255个字符,VFAT仍保留有扩展名,而且支持文件日期和时间属性,为每个文件保留了文件创建日期/时间、文件最近被修改的日期/时间和文件最近被打开的日期/时间这三个日期/时间。linux处理的时候把fat/vfat/fat32的文件系统 统一用vfat来表示
XFS :XFS 文件系统是扩展文件系统extent file system的一个扩展。XFS 是 64 位高性能日志文件系统。对 XFS 的支持大概在 2002 年合并到了 Linux 内核,到了 2009 年,红帽企业版 Linux 5.4 也支持了 XFS 文件系统。对于 64 位文件系统,XFS 支持最大文件系统大小为 8 exbibytes。
ZFS: ZFS 在创建之初,就被设计为最后一代文件系统。在大多数文件系统都是 64 位的时候,ZFS 创建者决定直接跳到 128 位。这意味着 ZFS “提供了 32 位或 64 位系统容量的 160 亿倍”。
Btrfs:是B-Tree File System的缩写,可以读作“butter fs”或“b-tree fs”,是一个支持copy-on-write (COW)的文件系统,由Oracle公司于2007年设计并使用,2013年进入Linux内核稳定发布。 目前除了Oracle外,SUSE Linux Enterprise Server将其用作默认文件系统,而在工作站领域中,Fedora 33也将其作为默认文件系统,Facebook公司也大量应用了Btrfs文件系统。
虚拟文件系统(Virtual File System,简称VFS)是Linux内核的子系统之一,它为用户程序提供文件和文件系统操作的统一接口,屏蔽不同文件系统的差异和操作细节。借助VFS可以直接使用open()、read()、write()这样的系统调用操作文件,而无须考虑具体的文件系统和实际的存储介质。
lvm
LVM(Logical volume Manager)是逻辑卷管理的简称。它是Linux环境下对磁盘分区进行管理的一种机制。现在不仅仅是Linux系统上可以使用LVM这种磁盘管理机制,对于其它的类UNIX操作系统,以及windows操作系统都有类似与LVM这种磁盘管理软件。
LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上次服务的是以逻辑卷的方式。