我有一块 SATA 320GB 16Mb 缓存硬盘,转速为 7,200RPM。我想用它来存储各种 .vdi 虚拟机并偶尔访问。我也不会用它们来执行繁重的任务,我也不会编辑视频 :D。
我理解,在格式化单元时,分配单元大小的选择可能很重要,并且根据要使用的文件的大小,一种大小或另一种大小可能会更好。
举个例子,我有一个虚拟机,单个文件占用 30GB,那么,多少大小比较合适呢?我的逻辑告诉我使用 Windows 提供的 2048 KB,但我认为事情没那么简单 :)
谢谢。
答案1
更改分配单元大小更多是为了优化小文件访问时间,限制文件碎片,并减少文件松弛,由于小文件无法完全填满磁盘簇,因此未使用的空间会导致大量小文件实际上“浪费”了磁盘空间。对于 16kB 簇中的每个 1kB 文件,您浪费了 15kB 的磁盘空间。
VM 软件和几乎所有需要访问大于 4kB 的文件的程序都已经拥有方法来告诉操作系统“读取 1MB 块”,从而避免任何基于小集群的性能损失。由于碎片化,可能会跳过一些磁盘,但除非您的文件碎片化严重,否则仍然会浪费一小部分时间。
除了操作系统能够排队请求之外,SATA 协议中还内置了一项名为 NCQ(本机命令排队)的功能。它允许操作系统发送一系列请求,并让驱动器根据对磁盘和盘片几何形状和性能特征的更深入了解重新组织这些请求,从而优化小的读取、写入和寻找。
在操作系统和驱动器之间,任何簇大小优化几乎都毫无意义。驱动器不关心操作系统簇大小,因为它与扇区一起工作,操作系统可以按照应用程序的指示进行大量读写。
只需使用默认设置即可。这对速度不会产生任何重大影响。