W niewielkich sieciach LAN np. domowych lub firmowych czasem nie tylko wydajność ma znaczenie, ale także rozmiary i oszczędność. Dla takich użytkowników jest kilka opcji. Pierwszą jest zakup routera sprzętowego za sumę do 200 PLN. Jednak możliwości takiego routera są dla wielu niewystarczające. Można szukać na rynku wtórnym urządzeń Linksysa i wgrać alternatywny firmware oparty na Linuksie, do tego jeszcze dokonać przeróbek, które dodadzą np. potrzebną nam pamięć masową w postaci karty SD lub CF. Cena wówczas będzie nadal przystępna, ale trzeba wykonać kilka czynności za trudnych dla laika. Zatem jest to rozwiązanie dla mających pojęcie o elektronice. Router sprzętowe z większymi możliwościami są droższe. Ich ceny zaczynają się od 500 PLN. W takim wypadku warto pomyśleć o tradycyjnym Linuksie na specyficznej platformie sprzętowej. Jedną z możliwości jest kupno płyty z serii Alix system boards. Koszt takiego rozwiązania może sięgnąć sumy 700 PLN, która jednak zwróci się dzięki bardzo niewielkiemu zużyciu energii.
Płyta Alix 2d0 ma niewielkie rozmiary (15x15 cm), obudowa do niej jest niewiele większa (ma wysokość zaledwie 2,5 cm). Do tego jeszcze potrzebny jest niewielki zasilacz o napięciu od 12 do 18 woltów, a także karta radiowa miniPCI, pigtail oraz antenka (opcjonalnie, jeśli potrzebujemy dostępu radiowego). Taki zestaw można kupić za około 550 PLN.
Płyta ma dwa porty LAN, dwa sloty miniPCI, COM,gniazdo CF i zasilania oraz możliwość samodzielnego wlutowania slotu IDE 44 pin, USB, dodatkowego COM, baterii oraz „bzyczka”.
System należy zainstalować na karcie CF, używając innego komputera, opcjonalnie przyda się kabel do połączeń szeregowych, tzw. null-modem.
Po zainstalowaniu systemu możemy przyjrzeć się właściwościom sprzęŧu.
[root@alix ~]# cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 5
model : 10
model name : Geode(TM) Integrated Processor by AMD PCS
stepping : 2
cpu MHz : 431.651
cache size : 128 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu de pse tsc msr cx8 sep pge cmov clflush mmx mmxext 3dnowext 3dnow
bogomips : 861.79
[root@alix ~]# free
total used free shared buffers cached
Mem: 124228 33752 90476 0 1096 24616
-/+ buffers/cache: 8040 116188
Swap: 121848 0 121848
[root@alix ~]# lspci
00:01.0 Host bridge: Advanced Micro Devices [AMD] CS5536 [Geode companion] Host Bridge (rev 33)
00:01.2 Entertainment encryption device: Advanced Micro Devices [AMD] Geode LX AES Security Block
00:09.0 Ethernet controller: VIA Technologies, Inc. VT6105M [Rhine-III] (rev 96)
00:0b.0 Ethernet controller: VIA Technologies, Inc. VT6105M [Rhine-III] (rev 96)
00:0e.0 Ethernet controller: Atheros Communications Inc. Atheros AR5001X+ Wireless Network Adapter (rev 01)
00:0f.0 ISA bridge: Advanced Micro Devices [AMD] CS5536 [Geode companion] ISA (rev 03)
00:0f.2 IDE interface: Advanced Micro Devices [AMD] CS5536 [Geode companion] IDE (rev 01)
00:0f.4 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] OHC (rev 02)
00:0f.5 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] EHC (rev 02)
Do zainstalowania systemu należy wybrać dobrą kartę CF o pojemności co najmniej 1 GB, aby szybko nie zacząć narzekać na brak miejsca. Standardowa instalacja NND będzie działać bez problemu. Jeśli ten minikomputer ma służyć do podziału łącza, należy zainstalować i skonfigurować niceshaper lub konfigurator htb. W przypadku sieci radiowej potrzebne będą jeszcze sterowniki madwifi i hostapd. Opcjonalnie można zastosować dedykowane do sprzętu jądro (w przygotowaniu także jądro z serii 2.6). Wydawałoby się to niemożliwe, ale sprawność dobrze przygotowanego NND na tak niepozornym sprzęcie jest zadziwiająca. Podział na ethernetowy na 3 równocześnie połączone komputery z symulowanym dużym obciążeniem (jeden z włączonym torrentem, drugi intensywnie korzystający z www, na trzecim kombinacja rożnych usług), nie spowodował żadnego mocniejszego obciążenia. Najbardziej intensywnie działającym programem był niceshaper, który w porywach zabierał 3,9% procesora i około 9% pamięci RAM. Korzystanie z sieci radiowej nie podnosiło load average. Karta na chipsecie Atheros ze sterownikami madwifi i hostapd (szyfrowanie WPA i filtrowanie MAC) sprawowała się bardzo stabilnie.
Przy zastosowaniu niewielkiej antenki pokojowej, zasięg był bardzo dobry.
W promieniu 6 metrów wskaźnik komputera klienckiego pokazywał 100%, przez 40 cm ceglanej ściany (odległość 10 m) sygnał spadał do 78%, przez dwie ściany działowe o grubości 10 cm sygnał miał 80% , zaś w odległości ok 12 m w linii prostej przez po skosie ścianę działową i nośną oraz częściowo gruby strop i schody sygnał obniżył się do 63%. Według mnie jest to bardzo dobry wynik.
Postanowiłem wypróbować sprzęt pod dużym obciążeniem. Przeniosłem swój serwer na tę maszynę. Jest to mały serwer poczty dla kilku użytkowników dostających dziennie od 3 do 10 maili i atakowanych dziennie z setką spamu. Ponadto są tam dwie stosunkowo rzadko używane listy dyskusyjne na kilkanaście kont każda. Średni „przerób” serwera smtp to około 500 maili, które trzeba greylistować, odrzucać lub przyjmować. Clamav ma do obróbki niewiele, bo tylko około 20 do 30 maili dziennie, czasami dość dużych koło 10 M. Limit to 20 M na pojedynczy mail. Serwer pop3 musi obrobić tyle maili ile przyjmie smtp. Do tego należy jeszcze doliczyć kilkanaście maili dziennie „popełnionych” przez użytkowników.
Do obsługi poczty przez www (rzadko używane) jest jeszcze apache z php oraz imap, co raczej nie obciąża systemu zbyt często. Za to jakiś swój stały udział ma MySQL – w bazie danych są nie tylko użytkownicy, ale też informacje o greylistingu, a także białych i czarnych listach. Pomimo to średnie obciążenie systemu pozwala mieć nadzieję, ze wytrzyma on zadania na tym sprzęcie.
[root@alix log]# uptime
18:40:38 up 19:07, 2 users, load average: 0.96, 0.34, 0.12
[root@alix log]# free -m
total used free shared buffers cached
Mem: 123 116 6 0 0 16
-/+ buffers/cache: 99 23
Swap: 118 26 92
Tak wygląda obciążenie systemu w czasie gdy intensywniej są odbierane maile. Maksymalne obciążenie minutowe potrafiło już przekroczyć 8.2, co jednak nie spowodowało żadnych problemów. Żeby było ciekawiej nastąpiło to podczas jednoczesnego wysłania ok. 16 przesyłek, zaś podczas odebrania i przeskanowania przesyłki o wielkości 12 M load average sięgnęło tylko 4.2.
Nie stanowi to jednak problemu - system pracuje dalej stabilnie i nie zawiesza się, żadne procesy nie zostały "samoczynnie ubite" i obciążenie szybko wróciło do normy. Pozostałością po odbiorze (lub wysyłaniu) dużych przesyłek jest częściowo użyty swap.
Oczywiście po kilku dniach testów jeszcze nie można nic powiedzieć całkowicie jednoznacznie, ale wstępne testy pokazują wyjątkową wydajność i stabilność platformy Alix.
System działa ze specjalnie przygotowanym jądrem 2.4.35, a w planie mam przygotowanie jądra 2.6.30 w którym będzie kilka modułów przeznaczonych do tego sprzętu - obsługa sprzętowego watchdoga, wsparcie dla szyfrowania sprzętowego (dużo sprawniej działające procesy szyfrujące, np. vpn) oraz możliwość sterowania diodami led na przednim panelu płyty.
Na razie ciekaw jestem, czy znajdą się osoby zainteresowane.