前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BeeGFS分区对齐指南

BeeGFS分区对齐指南

作者头像
姚华
发布2023-03-13 21:55:50
6100
发布2023-03-13 21:55:50
举报
文章被收录于专栏:运维民工

最近在理解分区对齐,看了些文档,觉得beegfs的官方文档写的步骤最简单易操作,很适合去辅助理解,所以这里翻译了一下官方文档

最简单的方法

存储设备上创建文件系统,而没有任何分区。要做到这一点,你只需使用没有任何分区号的mkfs,例如,对于XFS

mkfs.xfs /dev/sdb

因此,你会很容易地避免由分区表带来的错位。然而,即使在这种情况下,你仍然应该看看本页底部的 "创建RAID优化的文件系统 "部分。

分区排列 - 例子

默认情况下,Linux对设备上的第一个主分区使用512字节对齐(更具体地说:63*512字节)。这对单个磁盘来说是很好的,至少是传统的磁盘,它使用512字节的块。对于RAID阵列或SSD,你要设置一个不同的对齐方式,以避免读-改-写操作的开销,并启用内部XFS或ext4 RAID优化。注意,如果你在RAID上使用其他软件层,如LVM,这些也会引入另一个偏移,因此需要考虑到正确的对齐方式。

在我们的例子中,我们在一个600GB的卷上使用。- 11个磁盘的阵列 - 在RAID-6模式下 - 条带大小为64KB - 作为设备/dev/sdc

通过RAID-6,我们实际上有9个磁盘用于用户数据,所以我们要对准9*64KB。(对于SSD,你可能想对准擦除块的大小,通常是512KB或其倍数。)

分区对准 - 检查当前

注意:下面的例子是基于fdisk的。并非所有版本的fdisk都与GPT分区表兼容。对于GPT分区,你可以用parted或gdisk代替。

如果你已经在你的硬盘上创建了一个分区,你可以用下面的命令检查它的排列。

代码语言:javascript
复制
$ fdisk -lu /dev/sdc
Disk /dev/sdc: 599.9 GB, 599999905792 bytes
255 heads, 63 sectors/track, 72945 cylinders, total 1171874816 sectors
Units = sectors of 1 * 512 = 512 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1              63  1171861424   585930681   83  Linux

正如你在上面看到的,分区的起始位置目前在63*512字节的位置,这对我们的用例是不合适的。

分区对齐 - 创建对齐的

注意 下面的例子是基于fdisk的,它与GPT分区表不兼容。要创建对齐的 GPT 分区,请使用 parted,例如。

代码语言:javascript
复制
$ parted /dev/sdc mklabel gpt
$ parted --align=opt /dev/sdc unit KiB mkpart pri $((9*64)) 100%

如果你的设备上已经有一个分区,请确保先删除它。

代码语言:javascript
复制
$ fdisk /dev/sdc
Command (m for help): d
Selected partition 1
Command (m for help): w
The partition table has been altered!

如上所述,我们要对齐到9*64KB。我们将使用fdisk的参数"-H 8 -S 16 "来手动指定磁头和扇区的(逻辑)数量。这些参数允许我们创建一个对齐到64KB或64KB的任何倍数的分区。我们的设置是基于64KB的圆柱体,我们希望我们的分区在第一个条纹集(9个圆柱体)之后就开始,所以我们将第一个圆柱体设置为10。

代码语言:javascript
复制
$ fdisk -H 8 -S 16 /dev/sdc
The number of cylinders for this disk is set to 9155272.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-9155272, default 1): 10
Last cylinder or +size or +sizeM or +sizeK (10-9155272, default 9155272):
Using default value 9155272
Command (m for help): w
The partition table has been altered!

如果你想验证新的对齐方式。

代码语言:javascript
复制
$ fdisk -l /dev/sdc
Disk /dev/sdc: 599.9 GB, 599999905792 bytes
8 heads, 16 sectors/track, 9155272 cylinders
Units = cylinders of 128 * 512 = 65536 bytes
Device       Boot   Start         End      Blocks   Id  Type
/dev/sdc1              10     9155272   585936832   83  Linux

我们可以看到,该分区从第10扇区开始,扇区的大小为64KB。现在,是时候在新的分区上创建一个文件系统了。

创建RAID优化的文件系统

XFS和ext4允许你指定RAID设置。这使得文件系统能够为RAID调整优化其读写访问,例如,通过将数据作为完整的条带集提交以获得最大的吞吐量。这些设置可以在文件系统创建时进行,或者在XFS的情况下,也可以在安装时进行。

注意,这些RAID优化可以显著提高性能,但前提是你的分区是正确对齐的,或者你通过在一个没有分区的设备上创建XFS来避免不对齐。

要为9个磁盘(其中数字9不包括RAID-5或RAID-6奇偶校验磁盘的数量)和64KB的块大小创建一个新的XFS文件系统,使用。

代码语言:javascript
复制
$ mkfs.xfs -d su=64k,sw=9 -l version=2,su=64k /dev/sdc

注意:如果你的数据存储在一个RAID-5或RAID-6卷上,你可能要考虑把文件系统日志放在一个单独的RAID-1卷上,因为RAID-5和RAID-6的读-改-写开销很大。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 最简单的方法
  • 分区排列 - 例子
  • 分区对准 - 检查当前
  • 分区对齐 - 创建对齐的
  • 创建RAID优化的文件系统
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档