Akurat mam komputer, na którym musi ze względów oszczędnościowych być RAIDFrame. Postanowiłem porównać wydajność w kompilowaniu kernela na różnych wersjach jądra i na pojedynczym dysku oraz RAIDFrame. Komputer to – dmesg
Oto wyniki kompilowania kernela GENERIC.MP:
KERNEL GENERIC (1 CPU) na wd0 (jeden dysk)
build.sh started: Fri Aug 10 10:18:20 UTC 2007
build.sh ended: Fri Aug 10 10:29:27 UTC 2007
Łączny czas: 11:07
KERNEL GENERIC.MP (2 CPU) na wd0 (jeden dysk)
build.sh started: Fri Aug 10 11:01:50 UTC 2007
build.sh ended: Fri Aug 10 11:13:34 UTC 2007
Łączny czas: 11:43
KERNEL GENERIC.MP (2 CPU) na raid0 (mirror wd0 i wd1)
build.sh started: Mon Aug 13 14:17:58 UTC 2007
build.sh ended: Mon Aug 13 14:29:42 UTC 2007
Łączny czas: 11:44
Jak widać różnice są praktycznie żadne przy GENERIC.MP, trochę może dziwić 40 sekundowe przyśpieszenie na pojedyńczym procesorze, ale należy pamiętać że p4 z HTT to tylko emulacja drugiego procesora i w niektórych sytuacjach korzystniej wyłączyć HT w biosie. Zapewne wzrost wydajności byłby widoczny kiedy uruchomiłoby się więcej niż jedna kompilacja na raz. Dla mnie najważniejsze jednak jest to że RAIDFrame sprawuje się naprawdę nieźle nie licząc fatalnego instalowania go (dlaczego nie ma w sysinstallu?!) i dość długiego czasu rekonstrukcji macierzy – podstawowy zainstalowany system i src zabrało półtora godziny aby uzyskać:
# raidctl -S raid0
Reconstruction is 100% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.
Natomiast narzędzie raidctl bardzoi fajnie działa i podaje dużo przydatnych informacji:
# raidctl -s -v raid0
Components:
/dev/wd0a: optimal
/dev/wd1a: optimal
No spares.
Component label for /dev/wd0a:
Row: 0, Column: 0, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 2007081401, Mod Counter: 91
Clean: No, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 488396928
RAID Level: 1
Autoconfig: Yes
Root partition: Yes
Last configured as: raid0
Component label for /dev/wd1a:
Row: 0, Column: 1, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 2007081401, Mod Counter: 91
Clean: No, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 488396928
RAID Level: 1
Autoconfig: Yes
Root partition: Yes
Last configured as: raid0
Parity status: clean
Reconstruction is 100% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.
Pomijając wady związane z implementacją to praktycznie zerowym kosztem posiadamy w pełni funkjonalny RAID 1 odporny na awarię jednego dysku (można oczywiście dołożyć kolejne dyski i wtedy bezpieczeństwo wzrasta), można łatwo sprawdzić wypinając jeden dysk, uruchomić system, touch plik, zamknąć ssytem, podłączyć drugi dysk, wybootować, zamknąć, odłączyć drugi dysk, wybootować i stworzony plik powinien być na swoim miejscu :)
Instalacja RAIDFrame: http://netbsd.org/docs/guide/en/chap-rf.html
Wielkie podziękowania dla lamy z #netbsd.pl za pomoc – czekam na liveCD :)