Die Home-Server Software – Ubuntu, Raid & AFP

29. März 2010

von Lord_iMac

Der zweiten Teil des Berichtes zu meinem Home-Server beschäftigt sich mit der Software. Ich setze auf Ubuntu 9.10 (Karmic Koala) auf, denn dies ist ein relativ einfaches System welches auch leicht zu managen ist.

Die Anforderungen meinerseits waren und sind hoch, so möchte ich den Home-Server für Time Machine Backups verwenden und er sollte viel Platz in Form eines Raids bieten. Ich habe mich für ein Softwareraid 0 entschieden, welches ich über die nativen Kerneltools eingerichtet habe, doch dazu später mehr.

Das Mainboard unterstützt natürlich USB Boot, was mir bei fehlenden Laufwerk nur recht sein sollte. Zum erstellen eines Bootfähigen Sticks habe ich zu der Software Linux Live USB Creator (kurz LiLi) gegriffen. Diese Software ist richtig klasse, auch wenn es sie nur für Windows gibt, daher habe ich VMWare für die Erstellung des USB Sticks benutzt und es gab keinerlei Probleme. Wenn man das Tool startet wählt man im ersten Schritt den gewünschten USB Stick aus, dieser sollte bereits mit FAT32 formatiert sein (wenn nicht kann man dies später noch aktivieren) und mindestens 810MB freien Speicher zur Verfügung stellen. Im zweiten Schritt wird die gewünschte Linux Distribution ausgewählt, hier hat man die Möglichkeit ein bereits heruntergeladenes ISO anzugeben, eine CD oder auch das passende Image von LiLi herunterladen zu lassen. Da ich kein passendes ISO zur Hand hatte und erst recht keine Linux Distribution auf CD habe ich die Downloadmethode gewählt. Hier gab es leider nicht Ubuntu Server, was aber nichts groß machte (die grafische Umgebung stört mich weniger solange es kein CLI (Command-Line Interface) für jDownloader gibt, denn das Webinterface ist nicht zu gebrauchen), also wählte ich Xubuntu 9.10 Karmic Koala mit Xfce aus. Xfce ist kleiner und schneller als Gnome und KDE, daher eigentlich perfekt. Mit einem Klick auf „Automatisch“ wird das ISO-Image in den Ordner von LiLi heruntergeladen. Im Schritt 3 kann man die Persistenz einstellen. Da dies jedoch nur für den Livemodus der Distribution gebraucht wird, um Dateien speichern zu können, habe ich darauf verzichtet, denn ich möchte ja nur von dem Stick installieren. Der letzte Schritt dient dem einstellen weiterer Optionen, hier habe ich lediglich den Ubuntustart aus Windows heraus deaktiviert – braucht keiner. Als letztes auf den Blitz klicken und die Erstellung des USB Sticks startet.

Wen der USB Stick fertig ist wird das BIOS für den Boot von diesem konfiguriert. Darauf gehe ich hier jetzt nicht genauer ein, dies sollte jeder in seiner Mainboardanleitung nachschlagen können. Eine Google Anfrage mit den Stichworten „USB Boot Hersteller Bezeichnung“ sollte jedoch auch zum Erfolg führen. Bitte beachtet: Manche Mainboards brauchen den USB Stick bereits angesteckt um ihn im BIOS zum booten auswählen zu können. Wird der Bootloader des USB Sticks ausgewählt wird hier direkt die Installation ausgewählt.

Die grafische Installation von Ubuntu leitet einen komplett durch, hier gilt es lediglich zu beachten das man die richtige Partition bzw. Festplatte bei der Partitionierung auswählt! Bei mir war dies /dev/sdd.

Ist das Ubuntu erstmal installiert kann man direkt in dieses booten und erstmal entschlacken. Sachen wie grafische Texteditoren oder das Bildbearbeitungsprogramm GIMP sind unnötige Altlasten. Anschliessend sollte man alle gefundenen Updates einspielen. Nachgehend arbeite ich trotzdem hauptächlich mit der Konsole, auch wenn die Synaptic-Paketverwaltung noch so toll ist.

Beginnen möchte ich mit der Einrichtung des Raids zwischen den beiden Samsung 1TB Platten. Dafür verwende ich mdadm aus den Linux Tools. Diese werden mit folgenden Kommando installiert:

apt-get install mdadm

Nach der Installation kann es an die Einrichtung des Raid gehen, dafür müssen zuerst die Platten, welche in das Raid sollen, auch entsprechend formatiert werden. Dazu müssen die Festplatten mit dem Konsolentool „fdisk“ bearbeitet werden. Bei mir sind die beiden Platten als /dev/sda sowie /dev/sdb gekennzeichnet, sollte bei euch natürlich entsprechend angepasst werden. Die Kommandos sind bei beiden Festplatten gleich, daher beschreibe ich die Formatierung hier nur einmal.

fdisk /dev/sda

Wichtig ab jetzt: Jeder Befehl wird mit der Entertaste bestätigt – wie in der Konsole also. Zuerst gilt es zu erfahren ob auf der Festplatte bereits Partitionen sind, bei einer Fabrikneuen ist dies normalerweise nicht der Fall, also wird dies mit „p“ für „print“ überprüft. Sollten jetzt bereits Partitionen angezeigt werden, dann müssen diese erst gelöscht werden. Dies wird mit „d“ für „delete“ erledigt. Anschliessend sollte keine Partition mehr vorhanden sein und man kann mithilfe von „n“ für new eine neue erstellen. Hierbei wählt man eine primäre Partition mit der Nummer 1 aus, Erster und letzter Zylinder sollten auch erster und letzter sein, ich rate jedem davon ab ein Raid auf Partitionen aufzubauen. Jetzt muss noch der Typ der Partition festgelegt werden, dies geschieht mit „t“ für type. Man hat jetzt die Möglichkeit eine Listenansicht der Hextypen ausgeben zu lassen, doch darauf kann man verzichten wenn man weiß was man braucht. Hier sollte als Typ „fd“ für Linux Raid (auto) angegeben werden. Nun ist es so das fdisk sich zwar die bisherigen Änderungen gemerkt hat, jedoch noch nichts geschrieben wurde, dies muss explizit mit dem Befehl „w“ für write erfolgen. Ist alles erledigt kann man mit „q“ fdisk beenden.

Wenn man dies nun für die Platten erledigt hat kann man das eigentliche Raid erstellen. Dies geschieht mit dem folgenden Befehl:

mdadm –create –verbose /dev/md0 –auto=yes –level=0 –raid-devices=2 /dev/sda1 /dev/sdb1

Wichtig hierbei ist das man die Partitionsnummer mit angibt und nicht nur die Festplatte. Nachdem das Raid erstellt ist kann man dieses jetzt mit einem Filesystem seiner Wahl formatieren und anschliessend an beliebiger Stelle im Filesystem mounten.

mkfs.ext4 /dev/fd0
mount /dev/md0 /mnt/daten

Damit dies auch nach einem Neustart automatisch geschieht ist ein Eintrag in der /etc/fstab für das Raid erforderlich. Ich arbeite in der /etc/fstab lieber mit einer UUID, um diese zu bekommen gibt man folgenden Befehl ein:

blkid /dev/md0

Die UUID kopiert man sich am besten in die Zwischenablage, weiter geht es mit der Bearbeitung der /etc/fstab. Hier fügt man jetzt die folgende Zeile ein:

UUID=ed6fe593-0f54-403d-9365-3003630eb223 /mnt/daten ext4 users 0 0

Die genauen Parameter sind hier bestens erklärt. Gestartet wird mit der UUID, gefolgt vom Mountpunkt, dem Filesystem und den jeweiligen Mountoptionen.

Wie schon am Anfang erwähnt möchte ich einen Server der AFP (Apple Filing Protocol), SMB (Samba) und NFS (Network File System) beherrscht, also werden die dafür benötigten Pakete erstmal installiert. Für AFP (Netatalk) wollte ich eine neuere Version verwenden, denn die aktuellste im Repository war die 2.0.4 (aktuelles Release ist die 2.0.5 bzw. 2.1beta1), also wird diese manuell kompiliert.

Im Normalfall werden über apt-get alle Abhängigkeiten erkannt und diese sollten auch mitinstalliert werden, für Netatalk braucht man jedoch auch Abhängigkeiten zum manuellen kompilieren, also muss das folgende Kommando ausgeführt werden, welches die Abhängigkeiten im System installiert:

sudo apt-get build-dep netatalk

Anschliessend besorgt man sich von der Netatalk Seite ein aktuellen Tarball, ich habe zu der 2.1beta gegriffen, aus mehreren Gründen. Ab 2.0.5 wird die native Time Machine Option unterstützt, also würde die schonmal ausreichen, doch ich habe es nicht hinbekommen mit der 2.0.5 Dateien auf den Server zu kopieren welche mit Extended Attributes versehen waren. Jedesmal brachte mir mein MacOS X am Ende des Kopiervorganges das ich keine Berechtigung hätte obwohl dies nicht so ist. Ab Version 2.1 von Netatalk werden jedoch Extended Attributes unterstützt und damit klappt auch das kopieren ohne Berechtigungsfehler.

wget http://downloads.sourceforge.net/project/netatalk/netatalk/2.1-beta1/netatalk-2.1beta1.tar.bz2?use_mirror=kent

Jetzt wird der Tarball entpackt und kompiliert.

tar xfvj netatalk-2.1beta1.tar.bz2
cd netatalk-2.1beta1
./configure –enable-debian –with-cnid-cdb-backend –disable-cups
make
sudo make install

Bei den Configureoptionen habe ich CUPS abgeschaltet, denn dieser Server wird nciht als Druckerserver verwendet, daher brauche ich auch kein Druckersharing über Netatalk. Enable-Debian sorgt dafür das passende Initscripte und Configfiles für Debian/Ubuntu erzeugt werden. Anschliessend finden sich Konfigurationsdateien in /usr/local/etc/netatalk und eine wichtige Datei für Debian unter /etc/default/netatalk. Netatalk bringt bei der Installation einige Grundeinstellungen mit welche ich jedoch natürlich anpassen musste.

Fangen wir am besten mit der /etc/default/netatalk an, hier habe ich einige Dienste deaktiviert.

ATALKD_RUN=no
PAPD_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
TIMELORD_RUN=no
A2BOOT_RUN=no

ATALKD ist der alte AppleTalk Daemon den man unter MacOS X eigentlich nicht mehr braucht, bei PAPD handelt es sich um den AppleTalk print server daemon welchen ich schon alleine wegen der nicht vorhandenen Druckerunterstützung nicht brauche. CNID_METAD und AFPD braucht man beide für die volle AFP Unterstützung, daher sind sie natürlich aktiviert. TIMELORD stellt einen Apple Timeserver zur Verfügung, nice to have, aber brauchen tu ich es nicht wirklich. Zuguterletzt gibt es noch A2BOOT welches einen Netboot Server für MacOS X zur Verfügung stellt – benötige ich jedoch auch nicht.

Weiter geht es mit der /usr/local/etc/afpd.conf in welcher grundlegende Servereinstellungen für den AFP Server bereitgestellt werden. Wer seine Daten nur über die Unix Benutzerverwatung zur Verfügung stellen möchte, der kann die afpd.conf unangetastet lassen, denn diese stellt alles dafür bereit. Wer jedoch einen Gastzugang ermöglichen möchte, der muss diese Datei anpassen. Dazu wird am Ende der Datei einfach eine neue Zeile erzeugt:

„LiMServer“ -tcp -noddp -uamlist uams_dhx.so,uams_dhx2.so,uams_guest.so

Den Anfang macht der Servername, welcher bei mir „LiMServer“ ist, gefolgt vom „tcp“ welches dafür sorgt das sämtliche Datentransfers über TCP abgeweickelt werden – im Gegenzug dazu wurde der Transfer über Appletalk mit „noddp“ deaktiviert. Möchte man beides benutzen, so würde die Option „transall“ ausreichen. Die Option „uamlist“ übernimmt die eingetragenen Authentifizierungsmethoden. Hier sind das uams_dhx.so und uams_dhx2.so für die Authentifizierung über MacOS X sowie uams_guest.so für den Gastzugang. Wer mehr über die Optionen wissen möchte, dem lege ich die Netatalk Dokumentation über die afpd.conf [2.0.5] [2.1] ans Herz.

Weiter geht es mit der /usr/local/etc/AppleVolumes.default in welcher die relevanten Sharingverzeichnisse eingetragen werden.

Einfach unten wieder eine neue Zeile einfügen nach dem folgenden Muster:

/mnt/backup/TimeMachine „Time Machine Backup“ allow:lordimac cnidscheme:cdb options:usedots,upriv,tm
/mnt/daten „Fileserver“ cnidscheme:cdb options:usedots,upriv perm:0755

Vorne wird das Verzeichnis angegeben welches freigegeben werden soll, gefolgt vom Namen der Freigabe (bei Namen mit Leerzeichen unbedingt auf die Anführungszeichen achten), und den anschliessenden Freigabeoptionen. Die erste Freigabe soll nur Time Machine dienen und für den Benutzer „lordimac“ zugänglich sein, die zweite eine allgemeine Freigabe mit Gastzugang. Der Parameter cnidscheme ist für die Datenbankstruktur in welcher relevante Dateioptionen gespeichert werden. Bei den Optionen ist „usedots“ dafür verantwortlich das Dateien, die mit einem Punkt beginnen, unsichtbar dargestellt werden, „upriv“ sorgt dafür das AFP3 Benutzerrechte verwendet werden. Die Option „tm“ sorgt dafür das die entsprechende Freigabe auch nativ für Time Machine nutzbar ist. Mit perm:0755 werden Unix Style Rechte für jede hochgeladene Datei vergeben, bei mir ist dies ausgeschrieben rwxr-xr-x. Für diese Datei gibt es seitens Netatalk auch eine umfangreiche Dokumentation [2.0.5] [2.1].

Verwandte Beiträge

Die Home-Server Hardware

Die Home-Server Hardware

Vor kurzem gab es ja schon ein Review des Gehäuses meines Home-Servers, heute stelle ich euch die restliche Hardware vor. Aufbauen tut das ganze auf einem Pentium CoreDuo E5300 mit 2 x 2,6Ghz und 2MB Level 2 Cache samt boxed Kühler. Dieser Prozessor sitzt auf einem...

mehr lesen
Review des Chenbro ES34069

Review des Chenbro ES34069

Heute kam schonmal das Gehäuse für meinen zukünftigen Fileserver an. Bestellt habe ich es bei techcase.de. Um ganz kurz auf die Eckdaten einzugehen: Maße: 260 x 140 x 260 (mm) 4 x Hot-Swap Festplattenslots 2 x 70mm Lüfter fertig eingebaut abschließbares Frontpanel,...

mehr lesen

Time Capsule reparieren

Da ich mich ja zum Bau eines Home Servers entschieden habe und die neue Time Capsule seitens Apple abgelehnt habe benötige ich ja meine alte defekte nicht mehr. Doch gerade als ich sie zu eBay stellen wollte stieß ich eben auf eine alte eBay Auktion einer defekten...

mehr lesen

Kommentarspalte

1 Kommentar

  1. Mohamed O. Bryan

    Um das volle Tempo einer USB-3.0-Festplatte nutzen zu können, müssen zwei Bedingungen erfüllt sein: Ihr Rechner besitzt erstens einen USB-3.0-Anschluss, der leicht anhand seiner blauen Farbe erkennbar ist. Außerdem müssen Festplatte und PC über ein USB-3.0-Kabel verbunden sein, das neben den vier USB-2.0-Leitungen zwei zusätzliche, extra abgeschirmte Adernpaare besitzt. Mechanisch unverändert bleibt dabei nur der Stecker vom Typ A, der als einziger auch in Buchsen der Vorgängerstandards USB 1.1 und USB 2.0 funktioniert.

    Antworten

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert