07. August 2012

Firebird SQL auf Synology Diskstation installieren 08/2012

Für Warenwirtschaftssysteme, welche MySQL 5.x/MariaDB benötigen, liefert Synology eine hinreichend aktuelle MySQL im aktuellen DSM mit.
Da wir für unsere Warenwirtschaft und CRM Software aber eine Firebird Datenbank benötigen, beschreibe ich im Folgenden wie man Firebird 2.5 in einer chroot Umgebung auf einer Intel oder ARM basierten Synology NAS installieren und sauber betreiben kann. 

Die folgende Anleitung wurde mit folgender Hard & Softwareumgebung durchgespielt:
Synology NAS:
Modell: DS1512+ Intel CPU (für ARM CPU DS211j)
Festplatten: 4x ST31000340NS, 1x ST31000524NS Serverplatten mit je 1TB von Seagate
Raid Modus: Hybrid Raid (Level 6) mit Fehlertoleranz von 2 Festplatten, ext4 Dateisystem, 2,67 TB Nutzkapazität
Netzwerk: 2x 1 Gigabit mit IEEE 802.3ad Dynamic Link Aggregation
DSM Version: 4.0-2228 vom 10.05.2012
IPKG: Version 1.2-7

Windows 7 Workstation:
Windows 7 64 Bit mit Virtual Box für Ubuntu Server Installation um die chroot Umgebung aufzubauen. Alternativ kann man auch eine fertige chroot Umgebung von unserer Webseite herunterladen.


Schritt für Schritt Anleitung (Aufwand ca. 2 bis 4 Stunden)

Auf der Diskstation
Web Admin: Bedienfeld -> Terminal -> SSH-Dienst aktivieren
Stellen Sie nun eine SSH Verbindung zur Diskstation her (unter Windows verwende ich Putty als SSH Client)
Als nächstes installieren wir IPKG mit folgenden Eingaben auf der SSH Shell:

mkdir -p /volume1/public
cd /volume1/public
wget http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/syno-i686-bootstrap_1.2-7_i686.xsh
Alternative URL: http://files.satware.com/synology/ipkg/syno-i686-bootstrap_1.2-7_i686.xsh
sh syno-i686-bootstrap_1.2-7_i686.xsh
ipkg update
Die Runlevel Scripts müssen nun angepasst werden, damit das hoch- und herunterfahren der Diskstation problemlos klappt.
vi /etc/rc.local

Mit den Pfeiltasten cursor vor bis
[ -x /etc/rc.optware ] && /etc/rc.optware start
und eine Raute (#) einbauen (Einfg. Taste, danach #):
Mit ESC : x
die Änderungen speichern.

umount /opt
rmdir /opt
ln -s /volume1/@optware /opt
wget http://files.satware.com/synology/ipkg/optware.sh
mkdir -p /usr/local/etc/rc.d
mv optware.sh /usr/local/etc/rc.d/
chmod +x /usr/local/etc/rc.d/optware.sh
wget http://files.satware.com/synology/ipkg/S80firebird.sh
mkdir -p /opt/etc/init.d
mv S80firebird.sh /opt/etc/init.d/
chmod +x /opt/etc/init.d/S80firebird.sh

Nun sind die Vorbereitungen auf dem NAS Server soweit durch, und es muss auf einem Linux Rechner ein chroot Umgebung erstellt werden. Für Eilige kann auch hier eine passende Umgebung geladen werden und dieser Punkt übersprungen.

Erstellen einer chroot Umgebung unter Linux

Auf einem Linux System (hier: Ubuntu 64 Bit Server Version 11.04 in einer Virtual Box) folgende shell Commands absetzen:
sudo apt-get install debootstrap -y
sudo apt-get clean
sudo debootstrap --foreign --arch amd64 squeeze debian "http://ftp.de.debian.org/debian"
sudo tar -czf debian.tar.gz debian
Die debian.tar.gz muss nun auf den NAS Server kopiert werden, alternativ kann man auch ein fertiges Image laden.
Weiter geht es auf dem NAS Server:
Alternativer Download (ca. 90 MB):
wget http://files.satware.com/synology/chroot/debian.tar.gz

Auspacken der chroot Umgebung und Installation

Ich gehe hierbei von der auf dieser Seite bereitgestellten Umgebung aus.

tar -C /volume1/public/ -xf debian.tar.gz
mount -o bind /dev /volume1/public/debian/dev
mount -o bind /proc /volume1/public/debian/proc
grep -v rootfs /proc/mounts > /volume1/public/debian/etc/mtab 
chroot /volume1/public/debian/ /bin/bash 
/debootstrap/debootstrap --second-stage 
exit 
cp /etc/hosts /volume1/public/debian/etc/hosts 
cp /etc/resolv.conf /volume1/public/debian/etc/resolv.conf
hostname > /volume1/public/debian/etc/hostname 
mount -o bind /dev /volume1/public/debian/dev 
mount -o bind /proc /volume1/public/debian/proc 
grep -v rootfs /proc/mounts > /volume1/public/debian/etc/mtab 
chroot /volume1/public/debian/ /bin/bash 
wget http://files.satware.com/synology/chroot/sources.list -O /etc/apt/sources.list 
apt-get update -y 
apt-get upgrade -y 
apt-get dist-upgrade -y

Nun haben wir eine funktionsfähige chroot Umgebung, fehlt nur noch FirebirdSQL

apt-get install Firebird2.5-superclassic -y
dpkg-reconfigure firebird2.5-superclassic
Folgende Antworten bei der Config sollten reichen:
Enable Firebird server? => Yes
Password for SYSDBA? => masterkey
Dann kann man die chroot mit
exit
 
verlassen. Der Firebird SQL Server ist jetzt installiert und kann mit
/opt/etc/init.d/S80firebird.sh stop
angehalten, und mit
/opt/etc/init.d/S80firebird.sh start
gestartet werden.
Nach einem Neustart der Synology Box wird Firebird automatisch gestartet.
Für "Faule" habe ich noch ein Script für den Eintritt ins chroot via Terminal erstellt. Es sorgt dafür, dass /dev und /proc zur Verfügung stehen, und Tools wie "df" funktionieren.
wget http://files.satware.com/synology/chroot/debian-chroot.sh -O ~/debian-chroot.sh
chmod +x ~/debian-chroot.sh
Nach dem Download einfach von der Shell mit
~/debian-chroot.sh
in die chroot Umgebung wechseln, mit
exit

oder CTRL+D kommt man wieder raus.


Download Links:
optware.sh - das alternative Optware Startup und Shutdown Script für /usr/local/etc/rc.d/optware.sh
S80firebird.sh - Start/Stop Script für Firebird DB Server
debian.tar.gz - fertige chroot Umgebung für 64Bit NAS Systeme mit Intel CPUs
debian386.tar.gz - fertige chroot  Umgebung 32Bit (z.B. für TurboMed Praxisprogramm)
debian-arm.tar.gz *** - fertige chroot Umgebung für ARM basierte Synology NAS für Bastler.

Quellen:
www.synology-wiki.de
www.firebirdsql.org

Um Firebird SQL 2.5  auf einer ARM basierten Synology Diskstation (z.B. DS211j) zu installieren, kann man der obigen Anleitung folgen, muss jedoch alle "debian" Vorkommen durch "debian-arm" ersetzen. Das Script File

/opt/etc/init.d/S80firebird.sh

muss ebenfalls bearbeitet werden, und der Pfad von /debian/ auf /debian-arm/ geändert werden.


Vielen Dank an:
Benjamin Jobst von Jobst-Audio Lautsprecherentwicklung  für das konstruktive Feedback!

Besprochene Produkte aus unserem Store