Tuesday, December 1, 2009
Rolling A Neckerchief
A question I have always done, when I'm working with a ext2 / 3 again on larger and larger volumes, is how can a file system virtually unchanged for decades in support of hundreds of GB logical drives without some as "feeling the pinch." For this reason I prefer filesystem più moderni ma, ahimè, non supportati o non mainstream sotto Linux.
ext3 per altro verso presenta caratteristiche molto interessanti per Oracle: supporta il direct I/O e l'I/O asincrono, due feature molto importanti per massimizzare le prestazioni di un database sotto Linux. Ma i 4 KB di dimensione massima del blocco e la struttura abbastanza tradizionale del filesystem mi lasciano perplesso di fronte a unità logiche di qualche terabyte.
Pensiamo ad esempio ai nuovi filesystem come btrfs o ZFS (due a caso :-)). Praticamente non c'è paragone tra ext3 e i filesystem di nuova generazione.
Mentre aspettiamo che Linux si decida ad adottare un filesystem di livello enterprise e con caratteristiche modern, at least we can maximize the performance of ext3 adapting the underlying hardware abstraction with which we operate, typically drive RAID.
We must consider that some RAID levels such as RAID5, suffer delays in writing because of the structural calculation of a tie, arriving at peak performance when you make a writing a full stripe. When creating a RAID volume, you can usually specify the stripe size from a few KB to about 256 KB or more.
ext3 has a couple of parameters that help to optimize the file for writing: stride and stripe-width .
stride is the number of filesystem blocks that are used to write a stripe (in the case of ext3 block is almost always 4 KB).
stripe-width is the amount of blocks that are used to cover a complete writing on all disks that "carry" data, multiple of the stride.
Let me explain with an example: RAID5 uses a distributed parity resulting in a space of n-1 disks, and then with a certain stripe size will be written n-1 stripe that "bring data" disks and a parity stripe and this is the stripe width, and ext3 is measured in blocks and corresponds to stride * (n-1) * blocksize in the case of RAID5. There is a
document Centos ext3 optimization with optimization for RAID in the last paragraph, even if there is any error notation. The fact that stripe-width has been removed from CentOS 5.3 is true, unfortunately for RHEL. I can not explain this fact, when on my Ubuntu desktop is present.
Someone has also created a special calculator that can be found here: ~ http://busybox.net/ aldot / mkfs_stride.html
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment