如何使用Linux命令fdisk和parted创建磁盘分区对齐

88次阅读
没有评论

共计 1874 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章主要介绍如何使用 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 和 parted 创建磁盘分区对齐

图 1

看了 *** 个例子,读者可能会想,那把起始位右移一个 Block 就好了啊,(MBR+Reserved=63Block),就不会有跨 Track 的 I / O 发生了。接下来我们再看另外一个例子。一个 3 +1 Raid5 的单个条带大小为四个 Track,即 256 个 Block、128KB 大小。如果对于这类的磁盘,使用第 64 个 block 为起始位置,当 linux I/ O 大小达到 64KB 的时候,如果 I / O 直接从缓存(单个 track 为 32KB),则正好完成两次读取。但是如果,两个连续的 64KB I/O,且需要牵涉到后端 Raid5 的物理磁盘读写,如下图所示,第二个 64KB 就会出现跨越两个条带的情况发生,从而倒是读或者写的开销加倍。

如何使用 Linux 命令 fdisk 和 parted 创建磁盘分区对齐

图 2

在这种情况下,需要将起始位置调节成建议配置(64KB),这样一来,Linux***I/ O 大小的情况也不会发生跨多个条带的情况发生了。(图 3)

如何使用 Linux 命令 fdisk 和 parted 创建磁盘分区对齐

图 3

所以说,无论是从存储系统的缓存从读取数据,还是 I / O 在缓存中不存在的情况,需要从底层物理磁盘上读取数据。对于不同类型的磁盘,64KB 的起始为是一个建议配置。

Linux 创建分区对齐方法:

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

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

Linux 命令提示符下输入:

# fdisk /dev/emcpowerfw

输入 n,创建一个分区;

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

输入起始 Cylinder 位置,默认为 *** 个;

输入 ***Cylinder 位置,默认为该磁盘设备的 *** 一个 Cylinder;

输入 x 进入 expect mode;

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

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

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

输入 w 保存退出。

如何使用 Linux 命令 fdisk 和 parted 创建磁盘分区对齐

图 4

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

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

如何使用 Linux 命令 fdisk 和 parted 创建磁盘分区对齐

以上是“如何使用 Linux 命令 fdisk 和 parted 创建磁盘分区对齐”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计1874字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)