linux 磁盘分区对齐,磁盘分区对齐的重要性

这几年新出的硬盘由于既要增加每个扇区的存储空间,又要保证和现有操作系统的兼容,所以出现了物理扇区和逻辑扇区的概念。而这样的硬盘可能会产生分区对齐问题。没有做分区对齐的硬盘性能会受到一定的影响。

下面写文章来说明不做分区对齐对分区性能的影响和如何做分区对齐。

先普及几个概念:

physical sector:磁盘的一个物理扇区,目前大硬盘一般为4096bytes(4KB),其他的有512bytes(0.5KB)的logical sector:现在physical sector是4096的硬盘往往会把一个physical sector分成8个logical sector,每个512bytes(0.5KB),系统实际操作logical sector:划分logical sector的原因是有些系统调用还不支持sector为4096bytes(4KB)的磁盘。

LBA:逻辑块寻址方法,实际中表现为系统中用来定位磁盘的logical sector的一个逻辑地址。

block size:系统内对分区格式化后划分的最小磁盘单元。

以一个2T的硬盘为例

查看磁盘physical sector size、logical sector size和容量

# hdparm -I /dev/sdj|egrep -i "physical|logical|device size with M"

Logical  Sector size:                   512 bytes

Physical Sector size:                  4096 bytes

device size with M=1024*1024:     1907729 MBytes

device size with M=1000*1000:     2000398 MBytes (2000 GB)

说明每个physical sector 里有8个logical sector。

查看文件系统的block size:

# tune2fs -l /dev/sdj1|grep "Block size:"

Block size:      4096

我们在给这个磁盘做分区的时候,如果选择0-100%,则会提示”warning:partition is not properly aligned for best performance“,说明这种分区方法使分区的性能损失,为什么呢?

如下图所示,一圈代表一个物理扇区,用黑线分割成了8个逻辑扇区。没有做分区对齐的分区就类似于把分区起始LBA放置在了红线位置。这样会导致什么后果?有100%的block跨越物理扇区,处理任何该分区下的文档都会包含至少一个跨越物理扇区的block,磁盘跨扇区访问每个block,这样势必会影响文件系统的I/O性能。0-100%的分区行为就是因为分区的起始位置没有在单个扇区的起始位置才会产生waring。

4e0d078cd9bb14bd86d36dc1e00b75d5.png

大概明白了吧?我们需要把分区的起始位置放置在扇区的0,才能保证每个block占用一个独立的扇区,访问单独的block就不需要跨越扇区了。可不要小看这访问block跨扇区的动作,在有大量磁盘I/O操作时,对磁盘性能的影响还是很显著的。

对于以上磁盘的情况,我们可以如下分区:

#parted /dev/sdj

unit s

mkpart

ext4

40s

100%

注意这里40s的意思是起始LBA位置为40 logical sector,恰好是一个physical的开始(40/8=5)。

对于physical sector size = logical sector size的磁盘,一般不用考虑分区对齐问题。

时间:2013-08-24 17:43来源:51CTO

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值