如何使用parted对齐分区以得到最优性能
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用parted对齐分区以得到最优性能相关的知识,希望对你有一定的参考价值。
磁盘分区对齐也就是分区的4k对齐问题。下面关于4k对齐的介绍摘自pconline:高级格式化、4k扇区:“高级格式化(Advanced Format)”是针对硬盘设备为新型数据结构格式所采用的名称。原因主要是鉴于目前的硬盘容量不断扩展,使得之前定义的每个扇区512字节不再是那么的合理,于是将每个扇区512字节改为每个扇区4096 个字节就是4k,也就是现在常说的“4K扇区”。而采用这种“4k扇区”的技术被称作为高级格式化。同时也有人说这种技术的推广是硬盘行业正在经历一次革命。每扇区512个字节的定义起源于电脑发展的初期,因此在那时将硬盘容量切分成每块512个字节是平衡与文件管理和存储之间的。而现在主流硬盘容量已经攀升到1TB甚至更高,再用老标准去管理现超大容量的硬盘不但显得繁琐,而且降低效率,因此提升单个扇区. 参考技术A 在Linux系统上的大型存储阵列上创建分区(译者注:实际上是对从阵列上划分给系统的LUN分区,系统将每个LUN识别为一个磁盘),会遇到两大常见问题。第一个问题很容易,使用fdisk命令得到的错误信息已经提示了解决问题的办法:WARNING: The size of this disk is 8.0 TB (7970004230144 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID
partition table format (GPT).
译者注:磁盘大小是8TB。DOS分区表格式不能在超过2TB(512个字节的扇区)的卷上使用。请使用parted命令和GUID分区表格式(GPT)
答案是:使用parted命令。如果你的系统上没有parted,请安装它吧!
第二个问题是来自parted的警告:
(parted) mklabel gpt
(parted) mkpart primary 0 100%
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel?
译者注:生成的分区没有正确地对齐以实现最佳性能。忽略/取消?
不论你使用怎样的数字组合,这条错误信息都不断地出现。你尝试选择了忽略,但错误根本没被忽略。
网上有一些讨论这个问题的帖子,惠普官方帮助论坛上的一个帖子真正戳中了问题的核心。(译者注:文中提到的惠普论坛帖子现已无法访问)
下面是正确对齐分区的快速分步指南。它是那个惠普帖子的提炼总结,希望大家能快速上手。这个方法对大多数阵列行之有效(实际上它适用于我所见过的所有阵列);在惠普的帖子中还提到了更多可行的配置选项,我在这里只列出最常用的配置。
1.获得你阵列的alignment参数(记得要将sdb替换为系统内核看到的设备名称)
# cat /sys/block/sdb/queue/optimal_io_size
1048576
# cat /sys/block/sdb/queue/minimum_io_size
262144
# cat /sys/block/sdb/alignment_offset
0
# cat /sys/block/sdb/queue/physical_block_size
512
2.把optimal_io_size的值与alignment_offset的值相加,之后除以physical_block_size的值。在我的例子中是:(1048576 + 0) / 512 = 2048。
3.这个数值是分区起始的扇区。新的parted命令应该写成类似下面这样
mkpart primary 2048s 100%
2048s中的字母s是很有意义的:它告诉parted,你的输入是2048扇区,而不是2048字节,也不是2048兆字节。
4.如果一切顺利,分区将会被成功创建并没有任何警告信息。然后你就可以检查分区是否对齐了(如有必要,请将下面命令中的1替换为合适的分区号)。
(parted) align-check optimal 1
1 aligned
以上是关于如何使用parted对齐分区以得到最优性能的主要内容,如果未能解决你的问题,请参考以下文章