die schwachstellen meiner bestehenden nas-lösung waren schnell identifiziert, und die suche nach etwas performanteren ergab positives [ ib-nas4220-b icy box von raidsonic ]. zum einen wollte ich weg von dem langsamen netzwerkzugriff zur nslu2, welcher unter optimalen voraussetzungen [messung mittels iperf ] nicht mehr als 90 mbit ergab. da meine multimedialen daten ausschliesslich auf rechnern mit gigabit anschluss liegen, war diese netzwerkanbindung ein muß. dem performance sheet folgend - erhalte ich folgende werte.
| nslu2 | icy_box | |
| hdparm [mb/s] | ||
| cached | 40-43 | 65-68 |
| bufferd | 10-12 | 20-23 |
| dd [mb/s] | ||
| write | 12 | 15 |
| read | 12 | 33 |
| samba [mb/s] | ||
| write | 1,8 | 3,7 |
| read | 2,5 | 2 |
somit kann man in unserem fall den unterschied von usb zu sata2 mit einem faktor von 2 titulieren. Linearität zufolge erziele ich hiermit einen faktor 20 über das netz.
zur installation der icy_box:
die hardware einrichtung meiner beiden seagate barracuda [je 1.5 tb] erfolgt unspektakulär.
der erste bootvorgang, das flashen der aktuellen firmware v2.6.3.1 über das webgui erfolgt lt. handbuch. erneuter start, wir kommen zur konfiguration der platten. dieses nas soll lediglich als backup bzw. daten-server [samba] dienen. somit entscheide ich mich auf den verzicht von all built-in-software elementen wie raid-verbunde, sausalito framework, printserver, etc.
die aktuelle firmware bietet die möglichkeit unter /{mountpoint}/public/applications/new_software neue softwarepackages abzulegen und nach erfolgtem reboot diese automatisiert zu installieren. dieses verzeichnis ist in unserem falle /mnt/ide2/public/ applications/new_software, da die systempartition auf der 2ten unserer beiden festplatten abgelegt wurde. [ cat /usr/sausalito/codb/objects/1/Disk.rootdir ] das erste der zu installierenden packages dient dem sicheren-consolen zugang als alternative zum bereits aktivierten telnet [user:root / pwd: admin]. die offiziellen pakete von raidsonic [http://de.nas-4220.org/index.php/Packages] bieten hier zunächst einmal das paket ssh-server.tgz [ dropbear ] an.
der eigentliche tricky part – das ersetzten der built-in-packages durch analoge im optware feed, wird wie folgt initiert.
download von optware-hd-010209 [siehe obiger link zu packages::optware]. nach einem erneuten reboot werden ssh-schlüsselpaare erzeugt und der optware-ssh-server wird gestartet. [macht das dropbear package überflüssig, welches nun gelöscht werden kann !]. von nun an kann wie gewohnt mittels ipkg operiert werden. wir werden samba, cron und syslog-ng aus dem optware feed installieren.
# ipkg install cron
# ipkg install samba
# ipkg install syslog-ng
wie persistieren wir nun dieses packages und eliminieren die built-in-packages der aktuellen firmware? die software-elemente in der raidsonic firmware werden durch das sausalito framework gesteuert, welches mittels constructoren aufgerufen werden. wir disablen gewisse davon. [ftp, nfs, printserver, bonjour, bt2]
# rm -f /usr/sausalito/constructor/50_construct_ftp
# rm -f /usr/sausalito/constructor/50_construct_nfs
# rm -f /usr/sausalito/constructor/50_construct_printer
# rm -f /usr/sausalito/constructor/91_construct_bonjour
# rm -f /usr/sausalito/constructor/89_construct_bt2
der trick besteht nun darin, dass wir genau einen einstiegspunkt haben, in dem wir diese abläufe persistieren können, nämlich im startscript des optware-packages [ /mnt/ide2/public/applications/optware/init]…
obige befehle werden bequem in dieses script eingpflegt, zudem behalten wir uns mit dem eintrag von
ln -sf /opt/etc/init.d/S01p003876 /etc/rc.d/S01p003876.sh
ein weiteres script vor um weitere usergesteuerte packages zum zeitpunkt des bootes zu starten. durch die verlinkung auf /etc/rc.d [startverzeichnis der raidsonic-firmware ] wird dieses script nun bei jedem boot ausgeführt. der inhalt gewährleistet das herunterfahren sämtlicher firmware-prozesse und starten der konfigurierten und installierten optware-prozesse. [listing von S01p003876.sh]
#!/bin/sh
#
# no raid, we kill slotDiskButton
killall slotDiskButton
# no bonjour, we kill bonjour/linkChg
killall linkChg
# no sausalito powermanagement
killall powermgmt
# no sausalito storudp
killall storudp
# no sausalito cced
killall cced
# no twonky running
killall upnpdevice
# no icy_box webinterface needed
killall thttpd
# use my hostfile ...
if [ -e /opt/etc/hosts ]; then
ln -sf /opt/etc/hosts /etc/hosts
fi
# use my profile ...
if [ -e /opt/etc/profile ]; then
ln -sf /opt/etc/profile /etc/profile
rm /root/.profile
fi
# home directories...
if [ -e /home ]; then
rm -R /home
ln -s /mnt/ide2/home /home
fi
# passwd directories...
if [ -e /etc/passwd ]; then
rm -R /etc/passwd
ln -s /opt/etc/passwd /etc/passwd
fi
# group directories...
if [ -e /etc/group ]; then
rm -R /etc/group
ln -s /opt/etc/group /etc/group
fi
# start samba 3 [optware]
/opt/etc/init.d/S08samba
# start nagios nrpe [optware]
/opt/etc/init.d/S99nrpe start
# link locale specific from debian etch compilation
rm /usr/share/locale
rm /usr/lib/locale
rm /usr/share/i18n
ln -s /opt/share/locale /usr/share/locale
ln -s /opt/lib/locale /usr/lib/locale
ln -s /opt/share/i18n /usr/share/i18n
# link ssl libraries...
rm /usr/lib/libz.so.1
rm /usr/lib/libssl.so.0.9.8
rm /usr/lib/libcrypto.so.0.9.8
ln -s /opt/lib/libz.so.1 /usr/lib/libz.so.1
ln -s /opt/lib/libssl.so.0.9.8 /usr/lib/libssl.so.0.9.8
ln -s /opt/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.0.9.8
# launch ssh daemon
/opt/etc/init.d/S40sshd
# set correct timezone
rm /etc/localtime
ln -s /opt/share/zoneinfo/Europe/Vienna /etc/localtime
/opt/bin/ntpclient -h pool.ntp.org -s &>/dev/null
# link operational
rm /operational
ln -s /mnt/ide2/operational /operational
# link operational
rm /etc/rc.d/S12syslog.sh
/opt/etc/init.d/opt_syslog start
# nagios has problems with /bin/ps
rm /bin/ps
ln -s /opt/bin/ps /bin/ps
# link perl
rm /usr/bin/perl
ln -s /mnt/ide2/perl/bin/perl /usr/bin/perl
viele der obigen befehlsketten machen erst dann sinn, wenn eine chroot umgebung – in meinem fall debian etch auf der icy_box installiert wurde, und hier native comiliert wird.

Keine Kommentare:
Kommentar veröffentlichen