ハードウェアRAID6にそれぞれ8 TBのディスクが10個あります(したがって、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
引数としてストリップ(またはチャンク)サイズを使用する必要があります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 は、次のように用語を定義しています。
ストライプ幅
ストライプ幅は、ストライピングが実装されているドライブグループに含まれるドライブの数です。たとえば、ディスクストライピングを備えた4つのディスクドライブグループのストライプ幅は4です。
ストライプサイズ
ストライプサイズは、RAIDドライブがパリティドライブを含まない複数のドライブにわたって書き込むインターリーブデータセグメントの長さです。たとえば、64 KBのディスク領域を含み、ストライプ内の各ディスクに16 KBのデータが存在するストライプを考えてみます。この場合、ストライプサイズは64 KBで、ストリップサイズは16 KBです。
ストリップサイズ
ストリップサイズは、1つのドライブに存在するストライプの部分です。
ウィキペディア(およびIBM)は他の定義を使用しているようです:
操作が次のディスクで続行される前にディスクに読み書きされるシーケンシャルデータのセグメントは、通常、チャンク、ストライド、またはストライプユニットと呼ばれ、シングルストライプオペレーションを形成する論理グループは、ストリップまたはストライプと呼ばれます。1チャンク(ストライプユニット)内のデータ量は、多くの場合バイト単位で表され、チャンクサイズ、ストライドサイズ、ストライプサイズ、ストライプ深度、またはストライプ長とさまざまに呼ばれます。アレイ内のデータディスクの数は、ストライプ幅と呼ばれることもありますが、ストライプ内のデータ量を表す場合もあります。
1つのストライドのデータ量にアレイ内のデータディスクの数を掛けたもの(つまり、ストライプの深さ×ストライプ幅。これは、幾何学的な類推では領域を生成します)は、ストライプサイズまたはストライプ幅と呼ばれることがあります。ワイドストライピングは、データのチャンクが複数のアレイ(システム内のすべてのドライブ)に分散している場合に発生します。狭いストライピングは、データのチャンクが1つのアレイのドライブ全体に分散している場合に発生します。
Wikipediaのテキストでも、ストライプサイズは2つの異なる意味で使用されています。ただし、xfsファイルシステムを作成するときに、単一のドライブに格納されている単一のチャンクのサイズをsuの引数として指定する必要があると思います。これは、mkfs.xfs -d su=256k,sw=8
上記のコマンドに含まれている必要があります。正しい?
pvcreate
さん--dataalignment
?