我在硬件RAID6中有10个磁盘,每个磁盘有8 TB(因此,有8个数据磁盘+ 2个奇偶校验)。在回答了一个非常类似的问题之后,我希望可以自动检测所有必需的参数。但是,在最后创建XFS文件系统时,我得到了
# mkfs.xfs /dev/vgdata/lvscratch
meta-data=/dev/vgdata/lvscratch isize=256 agcount=40, agsize=268435455 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=10737418200, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
看起来好像没有使用条带化。由于我在不同站点上发现的术语不同(条带大小,条带大小,条带块等等),我想问一下我是否正确设置了手动参数。
RAID 6已设置为带区大小为256KB:
# ./storcli64 /c0/v1 show all | grep Strip
Strip Size = 256 KB
因此,条带大小为8 * 256KB = 2048KB = 2MB。它是否正确?根据这一点(如果我理解正确的话),pvcreate
必须使用strip(或chunk)大小作为参数dataalignment
:
# pvcreate --dataalignment 256K /dev/sdb
Physical volume "/dev/sdb" successfully created
请注意,我使用了没有分区的整个RAID设备。现在一个
# vgcreate vgdata /dev/sdb
Volume group "vgdata" successfully created
PE的默认大小为4MB应该很好,因为它是2MB的条带大小的倍数。正确?
现在,将vgroup的一部分分配给逻辑卷:
# lvcreate -L 40T vgdata -n lvscratch
Logical volume "lvscratch" created.
最后,创建文件系统,但是现在使用正确的参数(条带大小为2MB,条带宽度为8):
# mkfs.xfs -d su=2048k,sw=8 /dev/vgdata/lvscratch
meta-data=/dev/vgdata/lvscratch isize=256 agcount=41, agsize=268434944 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=10737418240, imaxpct=5
= sunit=512 swidth=4096 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
这种方法正确吗?逻辑卷或卷组的扩展是否需要牢记?我想如果要使用另一个RAID6系统扩展该卷组,则条带大小应等于当前的RAID6。
编辑:我的困惑似乎主要是基于与条带连接的术语的不同用法。我的RAID控制器LSI或Avago的制造商通过以下方式定义术语:
条纹宽度
条带宽度是实施条带化的驱动器组中涉及的驱动器数。例如,具有磁盘条带化的四磁盘驱动器组的条带宽度为四。
条纹尺寸
条带大小是RAID控制器跨多个驱动器(不包括奇偶校验驱动器)写入的交错数据段的长度。例如,考虑一个条带,其中包含64 KB的磁盘空间,并且条带中的每个磁盘上都有16 KB的数据。在这种情况下,条带大小为64 KB,条带大小为16 KB。
带钢尺寸
条带大小是位于单个驱动器上的条带的一部分。
在操作继续在下一个磁盘上之前写入磁盘或从磁盘读取的顺序数据段通常称为块,跨度或条带单元,而将它们形成单个条带化操作的逻辑组称为条带或条带。一个块(条带单元)中的数据量通常以字节为单位,被不同地称为块大小,步幅大小,条带大小,条带深度或条带长度。阵列中数据磁盘的数量有时称为条带宽度,但它也可能指的是条带中的数据量。
一步中的数据量乘以阵列中数据磁盘的数量(即,条带深度乘以条带宽度,在几何上比喻会产生一个区域)有时称为条带大小或条带宽度。当数据块分布在多个阵列(可能是系统中的所有驱动器)上时,就会发生宽条带化。当大块数据分散在单个阵列中的驱动器上时,就会发生窄条带化。
即使在Wikipedia文本中,上面的条纹大小也具有两种不同的含义。但是,我现在想,在创建xfs文件系统时,必须将存储在单个驱动器上的单个块的大小作为su的参数给出。这应该mkfs.xfs -d su=256k,sw=8
在上面的命令中。正确?
pvcreate
的--dataalignment
?