linux磁盘对齐,磁盘分区对齐详解与配置 – Linux篇

在之前一篇《磁盘分区对齐详解与配置

– Windows篇》中,我介绍了磁盘分区对齐的作用和适用于MBR和GPT的两种磁盘类型的配置,以及Windows平台设置磁盘分区对齐的方法。

本文作为系列的第二篇,文章就分区对齐在存储系统缓存和Raid5下I/O分析,解释了为什么64KB作为offset错位的推荐配置。并且提供了使用Linux命令fdisk和parted创建磁盘分区对齐的方法。

存储系统的磁道区域与Linux分区对齐问题:

出于最大化性能需求,任何到后端存储阵列的I/O需要通过配置适当的结构化,从而避免任何I/O操作跨界现象的发生。如果I/O操作跨越多个界限,会带来额外的资源开销从而造成性能下降。所以,为了避免因为分区不对齐所造成的性能影响。需要使用工fdisk或者parted工具创建和对齐分区。

如何选择一个正确的磁盘分区offset值,基本上EMC和其他厂商建议的值都是“64KB”。为什么要选择64KB这个值呢,这里解释一下。首先讲一下一个叫做物理磁道区域的概念。因为对于不同类型的保护级别,也可以说叫Raid和磁盘类型,这个区域的范围有所不同的。我们举两个个例子:

Symmetrix缓存中的磁道区域单位大小为一个Track,即64个Block、32KB大小。如图2所示,如果磁盘分区没有被对齐,则任何32KB或者更大的I/O就需要跨越两个Track来进行,50%的16KB的I/O会可能会跨越两个Track,25%的8KB也会跨越两个Track,造成额外的存储系统性能开销。

Linux创建分区对齐方法:

描述了磁盘分区对齐的原理后,下面介绍如何使用fdisk创建对齐分区的例子。在Linux中,对齐分区操作需要要空数据的情况下进行,因为对齐分区操作会清空分区表并且该LUN上的数据会被删除。在这个例子中,我们对/dev/emcpowerfw设备,创建一个大小为51281 Cylinder(Cylinder是Symmetrix的计量单位,每个Cylinder大小为960KB,所以这个磁盘大小为50GB左右)、Offset错位大小为128个block的磁盘设备。

方法1,使用fdisk创建分区对齐

Linux命令提示符下输入:

# fdisk /dev/emcpowerfw

输入n,创建一个分区:

输入p,创建分区为主分区:

输入起始Cylinder位置,默认为第一个:

输入最后Cylinder位置,默认为该磁盘设备的最后一个Cylinder:

输入x进入expect mode:

输入b,一定分区初始位置:

设定最初位置为128个block(128 block大小为64KB):

再次输入p确认分区初始位置信息:

输入w保存退出:

方法2:使用parted创建对齐分区。

Parted和fdisk相比,支持更多的类型(支持GPT)和更大的分区尺寸。下面一个例子给出一个给dev/sdb磁盘创建128bloc分区起始位的例子,方法和命令输出如下(图5)

Linux命令提示符下输入:

# parted /dev/sdb

将显示单位调整为Sector(大小512个字节):

(parted) unit s

列出当前逻辑卷:

(parted) print

将原来Number1移除并且创建一个起始位为128 sector,小为976735934 sector的主分区。

(parted) rm 1

(parted) mkpart primary 128 976735934

(parted) print

(2)free详解 (每周一个linux命令系列)

(2)free详解 (每周一个linux命令系列) linux命令 free详解 引言:今天的命令是用来看内存的free free 换一个套路,我们先看man free中对free的描述: Displ ...

log4j.properties 详解与配置步骤(转)

找的文章,供参考使用 转自 log4j.properties 详解与配置步骤 一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR ...

(4)top详解 (每周一个linux命令系列)

(4)top详解 (每周一个linux命令系列) linux命令 top详解 引言:今天的命令是用来看cpu信息的top top 我们先看man top top - display Linux pro ...

tomcat启动nio,apr详解以及配置

tomcat启动nio,apr详解以及配置 前言 在正文开始之前,我们先在idea工具中看看启动的信息,顺便看下启动的基本信息 在这里插入图片描述可以看到信息有tomcat版本操作系统版本java版本 ...

C语言内存对齐详解(2)

接上一篇:C语言内存对齐详解(1) VC对结构的存储的特殊处理确实提高CPU存储变量的速度,但是有时候也带来了一些麻烦,我们也屏蔽掉变量默认的对齐方式,自己可以设定变量的对齐方式.VC 中提供了#pr ...

C语言内存对齐详解(3)

接上一篇:C语言内存对齐详解(2) 在minix的stdarg.h文件中,定义了如下一个宏: /* Amount of space required in an argument list for a ...

pscp使用详解 Windows与Linux文件互传工具

pscp使用详解 Windows与Linux文件互传工具 pscp使用方法详解:pscp是putty安装包所带的远程文件传输工具,是一款十分常见windows与linux系统之间文件互传的工具,使用方 ...

C3P0连接池详解及配置

C3P0连接池详解及配置 本人使用的C3P0的jar包是:c3p0-0.9.1.jar

hdu3849-By Recognizing These Guys, We Find Social Networks Useful:双连通分量

By Recognizing These Guys, We Find Social Networks Useful Time Limit: 2000/1000 MS (Java/Others)     ...

mongoDB5--mongoDB增删改查

之前我们探讨了mongodb的"增删改查",要知道,我们的增删改其实都离不开查询表达式,所以查询表达式在mongodb是非常重要的.关于查询其实我们只是介绍了以小部分.关于mong ...

尝试造了个工具类库,名为 Diana

项目地址: diana 文档地址: http://muyunyun.cn/diana/ 造轮子的意义 为啥已经有如此多的前端工具类库还要自己造轮子呢?个人认为有以下几个观点吧: 定制性强,能根据自己的 ...

Qt532的QString输出各种编码的16进制数组(测试代码)

环境:Win7x64.Qt5.3.2 MSVC2010 OpenGL.vs2010 1.只测试了 4种:Utf8.Latin1.Local8Bit.unicode 2.测试代码:(这个是 " ...

Asynchronous programming with Tornado

Asynchronous programming can be tricky for beginners, therefore I think it’s useful to iron some bas ...

windows的虚拟磁盘(vhd,vhdx)使用

以前一直使用u盘或者移动硬盘接上usb直接拷贝文件,发觉速度一般.而且一般只有一个盘,分类也很不方便. 后来发现windows的虚拟磁盘可以解决我的问题... 经过一段时间的使用后发觉使用虚拟磁盘的方 ...

用java求一个整数各位数字之和

/* * 用java求一个整数各位数字之和 */ public class Test02 { public static void main(String[] args) { System.out.p ...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值