Skip to content

磁盘存储 ​

磁盘相关单位 ​

  • 扇区:磁盘最小的物理存储单元,是磁头从磁盘中读取数据的最小单位(通常为 512B ,依厂商而定)
  • 簇/块:操作系统与磁盘(硬盘)交互的最小逻辑存储单元(在 Linux 系统中称为块,在 Windows 系统中称为簇),在硬盘格式化时被指定,每个簇或者块可以包括 2、4、8、16、32、64…2 的 n 次方个扇区(最常见为 4KB,也就是说磁盘要读取 8 个扇区之后,才将数据块传给操作系统)。

如果一个文件的大小为 1K,而块的大小为 4K,那么该文件还是会占用一个块,块中剩下的 3K 被空闲出来,不能用于存储其他数据,这就是某些文件夹实际大小和占用空间不符的原因。因此,建议使用多个磁盘并初始化不同的大小的块,以应对不同的存储需求,设置块的大小时,需要考虑要平常存储文件的大小。

  • 页:与内存操作,是虚拟一个页的概念来作为最小单位。

文件系统 ​

Windows 常见的文件系统类型:

  • NTFS:最早出现在 Windows NT 的日志文件系统,有文件加密(权限管理)、磁盘文件压缩(节省磁盘空间)、目录索引(方便快速查找)、支持长文件名(255 个字符)、磁盘预警、大容量(根据簇的不同最大容量可以达到 16~256TB,但存储文件过多,由于索引增多,文件碎片化可能会导致实际性能下降)、记录操作日志(数据安全)等特性

  • FAT32:较早的文件系统类型,兼容性好,但是最大仅支持 2TB 分区, NT 内核仅限制为 32GB,单个文件最大也仅 4GB

  • exFAT:微软为了解决 FAT32 在大文件上表现不佳的问题,专门为闪存盘设计的文件系统类型。但是由于没有 NTFS 的许多特性并不适合作为系统分区使用

Linux 常见的文件系统类型:

  • minix:在 Minix 操作系统上使用的文件系统,Linux 上运行的第一种文件系统。它有很多限制:64M 分区大小限制,短文件名,唯一时间戳等等。只有软盘或者 RAM 中可能用的到。

  • XFS:SGI 开发的日志文件系统,整合进核心版本号 2.4.20 的 Linux 中。

  • ext4:基于 minix 的扩展和 ext1、2、3 的一系列更新,包括增加了很多特性,可靠性增强,支持更大的卷、文件、目录格式限制。

文件系统选择:

  • Windows 系统硬盘分区选 NTFS
  • Linux 系统的生产服务器选 XFS;自己的 Linux 工作站选 ext4。
    • 一般情况下最好使用 ext4 文件系统,因为其向前兼容性很好。ext4 可以有效减少碎片,对于 SSD 和 HDD 硬盘是很好的选择。
    • XFS 由于其对大文件的 IO 性能良好,因此适合存储数据文件。但是由于对小文件的不可预测的表现,可能不适合作为系统分区的文件系统类型。
  • U 盘选 exFAT,需要跨系统传输则选择 FAT32