什么是磁盘分区对齐(Disk Alignment、Partition Alignment):

Windows的磁盘有一种结构叫做Master Boot Record(MBR), 它的默认大小为63个Block(每个大小为512字节)。它的存在使得磁盘的初始位置和的磁盘上第一个分区的初始位置有63个Block的错位。如果磁盘的单个Track大于63个Block的话。这就会导致默认的初始的位置是从第64个开始。使文件系统的中的Track和位于磁盘中的两个Track之上。这种不对齐现象会导致存储系统的性能下降,原因是单个I/O请求会跨越多个磁盘上的Track,从而导致存储系统的额外性能开销。特别是对于一些随机I/O比较较大的应用程序,影响将更大。

而对于Windows 2003以后支持的GPT Disk,也会存在磁盘分区不对齐的现象,但是结构有所不同。如图1所(图中单位为Block,512字节),所有的分区由1MB大小(2048 Block)构成,第一个分区从LBA 34开始,即17KB大小位置。这也就意味着所有的分区会有17KB的不对齐的情况发生。同样会导致I/O读写性能影响。

FAT文件参考格式:

Windows磁盘分区对齐配置:

配置磁盘分区对齐后,如下图所示四个分区的例子中,对比图1中不对称的情况,图2中这些Windows的分区结束地址与图1中的地址位置一致了。

磁盘分区对齐操作,只针对Windows的Basic Disk。对于Windows 2008和Windows 2008 R2,无需对磁盘进行对齐操作,因为这个过程已经在操作系统划分分区的时候自动进行了,软件的升级还是给管理员们带来了不少便利的。对于Windows 2003和 2003 R2,以及Windows 2000,建议设置开始偏移量(starting offset)为64KB(128 block)。另外,对于Dynamic Disk类型,不能进行磁盘分区对齐操作。不过,如果原来的Basic Disk上已经进行了对齐操作的分区,会在转换后保留原来的对齐。

什么叫4K对齐

而SSD的读写操作不同机械硬盘,SSD读写的最小单位叫“页”(常见尺寸为4KB,实际视具体颗粒而定),闪存颗粒不允许像机械硬盘一样覆盖写入。因此在有数据的地方要写入新数据,就需要先进行擦除操作,而擦除的最小单位是块(每个块都由很多个页组成)。

传统的分区偏移尺寸一直是从63扇区(63X512B=31.5KB)开始,那么就会造成用户的第一个数据的前4KB会存放在系统"逻辑扇区"的31.5KB~35.5KB间,这样持续下去 会造成后面所有的数据都会卡在2个物理扇区(page)容量之间,我们知道扇区(page)为磁盘写入的最小单位,如果卡在2个扇区(page)之间,每次的写入操作在SSD上就都变成了读-擦-写操作。造成性能的下降。

简单来说写入一个4KB的数据,实际运行时会有两次写入操作,4K对齐就让是操作系统的最小分配单元和闪存的一个页对应起来,这样操作系统写入一个4KB的数据,一次就能完成。

随着NTFS成为了标准的硬盘文件系统,其文件系统的默认分配单元大小(簇)也是4096字节,为了使簇与扇区相对应,即使物理硬盘分区与计算机使用的逻辑分区对齐,保证硬盘读写效率,所以,有了“4K对齐”的概念。

传统硬盘的每个扇区固定是512字节,新标准的"4K扇区"的硬盘,硬盘厂商为了保证与操作系统兼容性,也将扇区模拟成512B扇区,这时就会有4K扇区和4K簇不对齐的情况发生。所以就要用“4K对齐"的方式,将硬盘模拟扇区对齐成“4k扇区”。“4K对齐”就是将硬盘扇区对齐到8的整数倍个模拟扇区,即512B*8=4096B,4096字节即是4K。所以只要是8的倍数都是4K对齐了。

4K对齐选扇区数多少适合? (DiskGenius扇区数是选8、2048还是4096?)

到了Vista时代,NTFS规范已经到了第六代,NTFS格式的起始簇的扇区位置是2M,就是2048K位置,这样无疑是不会造成浪费的,因为可以被4K整除。

到了win7的时代,NTFS格式起始簇的扇区位置是1M,就是1024K的位置,无疑也是可以被4K整除的,不会浪费。这个情况叫做4K对齐。

4K=4096字节。一般扇区大小是512字节,4096/512=8扇区。所以如果要求4K对齐的话,选8个扇区就可以了。当然,任何8的整数倍的扇区个数都满足4K对齐的要求。(如果选8,在ParagonAlignmentTool中显示是不对齐的,但在AS SSD Benchmark中是显示对齐。)按Win7的2048扇区对齐足可以应付当前99.99%的硬盘。网上还有一种说法是64位4096扇区,32位2048扇区。但我觉得不论是64位还是32位,一律用2048扇区会更好一些。因为win7时代,NTFS格式起始簇的扇区位置是1M,就是1024K的位置,2048扇区,可以被4K整除的,不会浪费。另外按微软的说法,只要1024的倍数都可以,所以一般选2048扇区即可。目前流行的硬盘分区专业,如DiskGenius,分区助手,它们默认的4K分区都是2048扇区,也就是1024K。

借用知乎话解释:

用外行人的话类比一下,假如厂家批发的钉子是5个一盒,你的机器也是五个钉子一起加工,也就是一盒一处理,但是机器是个傻瓜,如果第一次加工时只给了两个钉子,那么机器会拆开下一盒拿出三个,凑齐五个,一起加工,然后拿出剩下的两个,拆开下一盒,再拿出三个,又一起加工,这样就很费时费力了,这种工作方式就类似于没有4k对齐,如果抛弃最开始的那两个钉子,机器就会对每盒进行加工,不用凑齐5个了,效率明显升高。很类似。4k对齐差不多就是这么回事,4k对齐指的是“4kB扇区对齐”,硬盘读写的单位是扇区,大小是4kB,计算机读写单位是簇,大小一般默认为4kB,4k对齐了,也就意味着某个簇对应着某个扇区,计算机读簇的时候硬盘只要读一个扇区就行了,如果没4k对齐,硬盘就要读两个扇区。

gpt分区 linux 4k对齐,磁盘对齐与4K对齐相关推荐

  1. gpt分区 linux 4k对齐,4K对齐选8,2048和4098扇区数有多大区别?实测告诉你

    无意中在论坛看到一篇有关SSD 4K对齐的帖子,说的是为何都是4K对齐,性能却存在很大的差距?最后作者得到的结论是,使用512簇.1024簇.2048簇会使得SSD的成绩下降.因为SSD使用的是全新的 ...

  2. linux无损转换磁盘成gpt分区,Linux下数据无损动态修改MBR分区表格式为GPT

    个人博客站点:https://www.hiecho.cn 1.简介 腾讯云官网中有一篇帮助文档"扩容Linux文件系统,https://www.qcloud.com/document/pro ...

  3. linux命令管理GPT分区,Linux磁盘管理GPT分区教程

    Linux内核代码量大.逻辑关系复杂,因此对内核中的错误进行追溯和调试一直以来都是一件既耗费时间又耗费精力的事情.接下来是小编为大家收集的 Linux磁盘管理GPT分区教程,希望能帮到大家. Linu ...

  4. linux系统是否支持gpt分区,Linux下进行GPT分区

    gpt保护分区 ,即全局唯一标识分区表(GUID Partition Table,缩写:GPT),是一个实体磁盘的分区表的结构布局的标准.它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算 ...

  5. gpt分区 Linux lvm,使用LVM方式安装Ubuntu 16.04

    注: 这里只讲解在Ubuntu 16.04下如何配置LVM的方法过程,其他不再陈述.这个方法是通用的,只要操作系统支持LVM即可. 配置好虚拟机后,开始安装,先进入Ubuntu使用界面,对磁盘进行如下 ...

  6. linux命令管理GPT分区,Linux硬盘GPT分区和MBR分区

    之所以想到写这篇,是因为本人在折腾Linux系统的过程中,有多次掉入硬盘分区的陷阱的经历.最近几天,再一次掉入坑中,折腾了两天才从坑中爬出来.经过多方查询资料,终于弄明白了硬盘分区的一些概念.下面将其 ...

  7. linux 找回gpt分区,linux – 修复graid mini磁盘上损坏的GPT分区

    我正在尝试修复格雷德迷你1TB外置硬盘上的GPT损坏分区表.以下是gdisk的报告: root@philippe-desktop:/home/philippe/thomasdisk# gdisk /d ...

  8. linux系统是否支持gpt分区,Linux下对大硬盘进行GPT分区详解

    大家都知道在linux对硬盘进行分区,在硬盘容量大于2TB是不能用fdisk进行分区的,那么我们如何对超过2TB的大硬盘进行分区呢? 首先使用 fdisk -l 查看磁盘信息,看下盘符,下面就以  / ...

  9. linux为什么创建不了分区,linux下扩容磁盘扩展分区解决因无法创建新分区不能扩容lvm问题...

    有一个/dev/sdc的盘,上面划分了3个主分区/dev/sdc1-3,一个扩展分区/dev/sdc4,在扩展分区上划分了一/dev/sdc5.问题来了,想扩容这个/dev/sdc硬盘,怎么新建分区或 ...

最新文章

  1. 非计算机专业的人要如何学python?
  2. Apache简单配置(4)搭建Discuz 7.0.0论坛
  3. Java Review - 并发编程_ScheduledThreadPoolExecutor原理源码剖析
  4. 学会JavaScript函数式编程(第1部分)
  5. 每天一道LeetCode-----寻找地增序列中第一个大于等于目标元素的位置
  6. Android硬件抽象层(HAL)概要介绍和学习计划 1转
  7. simulink中mask设置_(实现BPSK学习Verilog)1. Simulink仿真实现
  8. linux内核mtd分区,linux-kernel – 在运行时调整MTD分区大小
  9. android 常用命令随手记
  10. 语音识别介绍(下篇)
  11. mysql创建工作经历表_国内首款 Serverless MySQL 数据库重磅发布!
  12. hardmard积 用什么符号表示_[关于数学哲学的科普]为数学学习准备的基础数理逻辑(用自然推理系统展现的命题演算以及一阶谓词演算)...
  13. java IE11浏览器文件下载的文件名乱码
  14. matlab 突然打不开
  15. 计算机属于机器人相关专业,人工智能属于什么学科门类
  16. android动态指示箭头,自定义选项卡指示器(箭头向下指示器)
  17. 多益网络2015校园招聘第二次笔试题
  18. 申请ios开发者证书到获取p12文件及profiles文件
  19. 网页突然乱码_网页中乱码怎么办?
  20. vscode查找快捷键

热门文章

  1. 上云时代,看“探路者”如何赋能云端生态?
  2. HTML5炫酷的特效代码下载
  3. matlab bwmorph spur,matlab图像处理学习笔记-数学形态与二值图像操作
  4. 2007-1-14日 周日 agilepoint的讲座
  5. firmware linux 解包_官改固件解包打包 - 斐讯无线路由器以及其它斐迅网络设备 - 恩山无线论坛 - Powered by Discuz!...
  6. 可视化数据结构的网站
  7. 2021年茶艺师(初级)证考试及茶艺师(初级)模拟考试题库
  8. 【会议分享】2022年智能车国际会议(ICoIV 2022)
  9. Mathematica入门
  10. geekbench5 cpu排名 202009