概念
4K对齐相关联的是一个叫做“
高级格式化”的分区技术。
[1]
这是主要鉴于随着时代发展,硬盘容量不断扩展,使得之前定义的每个
扇区512字节不再是那么的合理,于是将每个扇区512字节改为每个扇区4096 个字节,也就是现在常说的“
4K扇区”。随着
NTFS成为了标准的硬盘
文件系统,其文件系统的默认分配单元大小(
簇)也是4096字节,为了使簇与扇区相对应,即使
物理硬盘分区与计算机使用的
逻辑分区对齐,保证硬盘读写效率,所以就有了“
4K对齐”的概念。
传统硬盘的每个扇区固定是512字节,新标准的"4K扇区"的硬盘,硬盘厂商为了保证与
操作系统兼容性,也将扇区模拟成512B扇区,这时就会有
4K扇区和
4K簇不对齐的情况发生。所以就要用“
4K对齐"的方式,将硬盘模拟扇区对齐成“4k扇区”。
“4K对齐”就是将硬盘扇区对齐到
8或8的倍数个模拟扇区的整数倍,即512B*8=4096B,4096字节即是4K。用win7系统对硬盘分区格式化时,默认是将硬盘扇区对齐到2048个扇区的整数倍,即512B*2048=1048576B=1024KB,即1M对齐,并满足4K对齐,该值只要是4096B的倍数就是4K对齐。
其实每
扇区512个字节的定义起源于电脑发展的初期,因此在那时将硬盘容量切分成每块512个字节是平衡与
文件管理和存储之间的。随着硬盘容量已经攀升,1TB甚至更高容量硬盘的普及,再用老标准去管理现超大容量的硬盘不但显得繁琐,而且降低效率,因此提升单个
扇区的容量就势在必行了。
后果
在了解了“4K
扇区”这个定义后,就很容易理解什么是叫做“4K 对齐”了。所谓“4K对齐”就是符合“4K
扇区”定义格式化过的硬盘,并且按照“4K 扇区”的规则写入数据。那么如果有“4K 对齐”一说必然就有“4K 对不齐”。为什么会有“4K”对不齐呢?这是因为在NTFS6.x 以前的规范中,数据的写入点正好会介于在两个4K
扇区的之间,也就是说即使是写入最小量的数据,也会使用到两个4K扇区,显然这样对写入速度和读取速度都会造成很大的影响。为此对于“4K不对齐”的情况来说,一定要修改成“4K 对齐”才行,否则对于
固态硬盘来说,不但会极大的降低数据写入和读取速度,还会造成固态硬盘不必要的写入次数。
对齐方法
最后再来说说如何做到“4K 对齐”。如果在Windows7下,使用系统自带工具进行分区,那么其格式化后的分区默认就会是“4K对齐”的分区,用户无需再做任何设置了。如果是依然在使用XP
操作系统的话,那么要做到“4K对齐”就需要依赖于第三方工具了。比如说使用“DiskGenius”这款
软件可以手动在“对齐到下列
扇区的整数倍”
扇区数选择8或者以上就可以实现“4K对齐”。
用
DiskGenius分区软件快速分区对齐
[2]
SSD分区和对齐方法:
选择“主磁盘分区”,文件系统类型为“NTFS”,然后点击“详细参数”。
可以看到起始柱面,磁头为1,扇区为1。
现在将磁头改为32,扇区改为33,注意下面的“起始扇区号”变成了2048。(此法害人,有数据的硬盘这么改会分区出错,PM修正的话全是坏盘。)
再在左边将“对齐到下列扇区数的整数倍”勾选,并且将“扇区数”改为“2048”,点击“确定”。
这样C盘就分好了,将剩下的30G空间按上面的方法,选择为“扩展磁盘分区”,“文件系统类型”为NTFS,其它都不要动哦,直接点“确定”,扩展分区建好后,分区就完成了,都完成后点“保存更改”,然后等着完成,这个过程就结束了。
其他的分区软件,如国产的分区助手等等,都可以类似的实现此功能。
实现对齐
当然就“4K对齐”而言,并不是所有用户都有必要纠结的。毕竟要将一块“4K不对齐”的硬盘变成“4K对齐”还是需要那么一点点技术和承担少许数据丢失风险的。因此建议如果是将硬盘作为仓库盘而非系统盘的话,“4K”是否对齐并不重要,同时对于普通机械硬盘用户来说,虽然受限于4K的读取性能,但对于写入来说,4K对齐对于性能也有一定提升,虽然没有固态硬盘那样提升那么大,但还是有的,所以对于普通机械硬盘的用户来说,“4K”对齐也一样重要。而如果是固态硬盘用户的话,“4K”就一定要对齐了!
4K扇区
磁盘分区后都要格式化成某个文件系统,如ntfs,fat32,ext4等等。Windows的文件系统储存文件时是按簇存储的,而ntfs的簇大小默认是4K,而4K
扇区对齐就是指硬盘的4K扇区与的4K簇一一对应。
如图:4K簇,
分配单元大小:4096字节。
不对齐的情况
如果通过系统在4号位置存储数据的话,则需要修改1和2号位置,也就是存一个数据需要做原来的二倍工作。如果在5号位置存储数据,而同时2号位置前半段存储了数据,则需要先把数据搬出来,凑够4K才能存储在2号位置,也就是这个过程发生了“读取-修改-写入”三个过程,明显费时又费事。在这个过程下读取连续的簇是不受影响的,而当数据存储不连续的时候也受一定的影响。