Print

【MVS】parted分区时如何解决分区对齐报错

2024-11-08 发表

问题描述

在使用parted创建分区时产生告警信息, "Warning: The resulting partition is not properly aligned for best performance."

这个问题Redhat官网有解析:https://access.redhat.com/mt/zh-hans/solutions/184143

忽略这个告警分区可以正常创建,只不过会影响磁盘性能。那么该如何创建一个正确对齐的分区呢?


解决方法

1.1.   解决方案

1.1.1.  百分比

一般来说只要正确的选择分区开始的位置就可以解决这个问题,但需要查询和计算一下相应的参数。通常相较于使用明确的开始和结束位置使用百分比可以更容易使分区对齐。

mkpart primary 0% 100% or mkpart primary 0% 320GB 创建单个分区,

mkpart primary 0% 50% and mkpart primary 50% 100% 创建两个大小相等的分区。

1.1.2.  1MiB偏移量

一般情况下,很大一部分磁盘的默认对齐粒度为1MiB,因此在大多数情况下,使用MiB作为mkpart中的单元就可以创建一个对齐的分区。由于磁盘空间上的第一个MiB包括0扇区中的遗留主引导记录(MBR)和紧随其后的gpt主表(如果是gpt类型),因此需要跳过磁盘上的第一个MiB,并从1MiB开始分区:

mkpart primary 1MiB 100% 例如,创建单个分区。

1.1.3.  计算偏移量#

如果使用百分比或1MiB偏移量不起作用,可以通过查询设备相应的sysfs条目来直接计算所需的对齐

获取如下值:

# cat /sys/block/sdb/queue/optimal_io_size

# cat /sys/block/sdb/alignment_offset

# cat /sys/block/sdb/queue/physical_block_size

获取正确的偏移扇区数是将 optimal_io_size alignment_offset 相加然后除以 physical_block_size.

For example:

optimal_io_size = 1310720

alignment_offset = 0

physical_block_size = 512

 

i.e   1310720+0/512 = 2560

现在创建分区的命令可以是:

(parted)  mkpart primary 2560 100%    OR

(parted)  mkpart primary 2560 1000G