FileSystem Notes¶
开个坑,介绍一些常见的文件系统.
NFS文件系统¶
NFS文件系统的全称是Network File System,它允许远程主机通过网络挂载文件系统,并像它们是本地挂载的文件系统一样与它们进行交互,可以实现多台服务器之间数据共享
创建后使用sudo mount 192.168.189.1:/overlay/nfs/hjj /home/hjj/nfs命令来将nfs服务器上的文件系统挂载到本地服务器目录
FAT32/exFAT文件系统¶
FAT32是一种常见的磁盘文件系统格式,之前被所有非NT核心的Windows系统所使用,优点是兼容性好,通常用于多数的USB闪存盘
FAT有一个严重的缺点:当文件删除后写入新资料,FAT不会将文件整理成完整片段再写入,长期使用后会使文件资料变得逐渐分散,而减慢了读写速度。碎片整理是一种解决方法,但必须经常磁盘碎片整理来保持FAT文件系统的效率。
exFAT文件系统可以看作是FAT32的64位升级版,最大的缺点是没有文件日志功能,这样就不能记录磁盘上文件的修改记录,不过兼容性好
NTFS文件系统¶
NTFS是一种常见的磁盘文件系统,由Microsoft开发,当今Windows系统主要采用NTFS作为磁盘文件系统,它提供了一整套功能,包括安全描述符、加密、磁盘配额和丰富的元数据。
NTFS是一个日志文件系统,使用NTFS日志($Logfile)记录卷更改元数据。这是NTFS一个非常关键的功能(FAT/FAT32不提供此项功能),可确保其内部的复杂数据结构(如比较重要的如卷分配图、磁盘碎片整理API产生的数据转移操作、MFT(主文件表)记录的更改情况(包括移动MFT记录中存储的变长属性和属性表等))和索引(在目录和安全描述符中使用)即使在系统崩溃后仍然能保证一致性,而当在卷被重新加载后,可以非常容易地回滚这些关键数据的意外修改。
NTFS能够使用LZNT1算法(LZ77算法的一种变种)压缩文件。[17]文件压缩以16个簇为一个区块进行,也即如果簇大小为4KB,则压缩时单个区块的大小为64KB
NTFS实现对稀疏文件的高效存储支持,允许应用程序指定文件的空(零)数据区域。读取稀疏文件的应用程序不需要做单独处理,可以继续使用常规方法读取数据,操作系统将根据读取的位置决定返回零或者实际数据。和压缩文件类似,磁盘限额对稀疏文件的尺寸判断以声明大小而非实际占用大小为准
在NTFS中,每个文件或文件夹具有一个安全描述符,用于说明其所有者,并包含两个安全控制列表(ACL)。第一个列表被称为自主访问控制列表(DACL),用于描述是否允许或禁止特定的用户或用户组进行特定的操作(如读取、写入、执行或删除),第二个列表被称为系统访问控制列表(SACL),用于描述对文件或文件夹的特定行为是否应当被审核,以及在操作成功后是否应当记录操作。
OverlayFS文件系统¶
OverlayFS是一个面向Linux的文件系统服务,其实现一个面向其他文件系统的联合挂载。
OverlayFS的主要机制涉及当两个文件系统提供同一名称的目录时目录访问的合并。除此之外,OverlayFS呈现其中一个所产生的对象(如果有),“上层”文件系统优先。OverlayFS与其他覆盖型文件系统不同,OverlayFS合并的目录子树不一定是来自不同的文件系统。
常见用法是:底层文件系统只读,上层文件系统可读写,著名的Docker就是使用的OverlayFs。
ZFS文件系统¶
ZFS全称是(Zettabyte File System),ZFS是一个拥有逻辑卷管理功能的文件系统给,软件RAID,包括大量保护措施防止数据损坏,支持高存储容量、高效数据压缩、集成文件系统、卷管理、快照和写入时复制、连续完整性检查与自动修复、RAID-Z、原生NFSv4 ACL等功能,并且能被精确配置。
不同于传统文件系统需要驻留于单独设备或者需要一个卷管理系统去使用一个以上的设备,ZFS建立在虚拟的,被称为“zpools”的存储池之上,每个存储池由若干虚拟设备(virtual devices,vdevs)组成。