[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