[Eisfair] [e64] LSI MegaRaid Controller Treiber/Utils ?
Thomas Zweifel
t2fel at gmx.net
Fr Nov 6 04:50:19 CET 2020
Am 06.11.20 um 02:13 schrieb D. Oezbilen:
> Hallo Thomas,
>
>> Laut manpage ist es genau andersherum:
> ich habe vor Jahren viiiiiiiiiiiiiel darueber gelesen; was auch mir
> dabei klar wurde, diese Begriffe werden nicht einheitlich verwandt
> (strip/stride/chunk, Hersteller-Abhaengigkeit), deswegen sollte man
> genau nachlesen, was/wie gemeint ist. Dann ... ist/war es die Kunst die
> Parameter fuer mkfs richtig anzuwenden, dass diese ueberhaupt angenommen
> wurden.
>
>> Du musst die chunk-size durch die 4k Blocks teilen um den stride zu
>> erhalten:
>> Der stride wäre in dem Beispiel also 128k / 4k = 32
>> Die stripe-width dementsprechend 32 * 4 (HDDs) = 128
>
> Schau, was hpacucli ausgibt:
>
> Logical Drive: 1
> Size: 1.1 TB
> Fault Tolerance: 1+0
> Heads: 255
> Sectors Per Track: 63
> Cylinders: 65535
> Strip Size: 128 KB
> Full Stripe Size: 512 KB
> Status: OK
>
> Hier sind 8 Platten in R10.
Das passt.
Der mkfs erstellt allerdings ein Filesystem mit 4kB Blöcken:
eis # dd if=/dev/zero of=/public/test.raw bs=1G count=1
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 10.7879 s, 99.5 MB/s
eis # mkfs.ext4 -L "test" -v -E stride=128,stripe-width=512 /public/test.raw
mke2fs 1.45.1 (12-May-2019)
fs_types for mke2fs.conf resolution: 'ext4'
....
Filesystem label=test
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=512 blocks
65536 inodes, 262144 blocks
....
Writing superblocks and filesystem accounting information: done
Auf dem 1 GiB grossen Laufwerk wurde ein Dateisystem mit 262144 Blöcken
à 4kB Blockgrösse angelegt, der stride ist 128 Blöcke und die
stripe-width 512 Blöcke.
e2fsck (genauso wie resize2fs) rechnen immer mit der festgelegten
Blockgrösse.
eis # e2fsck -f -C0 /public/test.raw
e2fsck 1.45.1 (12-May-2019)
....
test: 11/65536 files (0.0% non-contiguous), 12955/262144 blocks
> Wenn ich deinen Weg rechne:
>
> 128kB (Chunk/Strip[Size, s.u.]) / 4 = 32kB
> 32kB*4 => 128 waere der (ganze) Stripe, nennen wir das Band, was
> gleichzeitig ueber vier/4 HDs geschrieben werden kann. 128 != 512, was
> s.o. der Controller meldet, sog. Full Stripe Size = Band.
>
> Mit
> mkfs.ext4 -L deb -v -E stride=128,stripe-width=512 /dev/sda2
> wird man bei der Anlage des FS der HW gerecht.
Eben nicht!
Ausser Du änderst die Blockgrösse auf 1kB (-b 1024) dann würde es passen.
> Ich behaupte mal hier ;-), dass
> mkfs.ext4 -L deb -v -E stride=128,stripe-width=128 /dev/sda2
> *nicht* angenommen wird(?). check pls.
eis # mkfs.ext4 -L "test" -v -E stride=128,stripe-width=128 /public/test.raw
mke2fs 1.45.1 (12-May-2019)
/public/test.raw contains a ext4 file system labelled 'test'
created on Fri Nov 6 03:21:10 2020
Proceed anyway? (y,N) y
fs_types for mke2fs.conf resolution: 'ext4'
....
Filesystem label=test
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=128 blocks
65536 inodes, 262144 blocks
....
Writing superblocks and filesystem accounting information: done
Weshalb sollte das nicht gehen - Passt doch prima zum Raid-1 :-)
stride ist die Anzahl Blöcke (in dem Fall je 4kB gross) die aneinander
gelesen/geschrieben werden können, bevor auf die nächste Platte
gewechselt wird.
32 Blöcke à 4kB entsprechen 128kB chunk-size
128 Blöcke à 4kB entsprechen 512kB stripe-width
Was zu der Ausgabe deines Controllers passt. ;-)
> Aber, vllt. habe ich es auch null/gar nicht verstanden. ;-)
Zumindest beim ext2/3/4 ist es so, bei xfs, ... kann es auch wieder ganz
anders sein ;-)
> Gruss
> Derya
Gruss Thomas
Mehr Informationen über die Mailingliste Eisfair