Homeserver selbst gemacht Teil 1 – Grundinstallation von Debian 6.0

Der neue Debian Release steht bevor. Der Release Candidate ist draußen und kann getestet werden. Wer Fehler findet sollte diese natürlich melden. (Dies gilt natürlich für hier in der Anleitung und für Bugs in Debian 6.0)

Vorwort

Ich verwende VirtualBox um den Testrechner zu installieren. Der Artikel beschreibt eine einfache Serverinstallation wie sie für einen kleinen Homeserver (Samba, DLNA, NFS …) brauchbar ist. Auf einem Root-Server im Internet würde ich den Server anders konfigurieren und partitionieren. So einen Server zu betreiben würde ich allerdings keinem Anfänger empfehlen, darum halte ich die Anleitung hier so einfach wie möglich und erwähne dies gar nicht. Der Einsatzzweck des Servers soll ein kleiner privater Server sein.

Motivation hinter so einem zentralen Server

Warum einen kleinen Server? Die technischen Spielereien nehmen auch im Privatem Umfeld immer mehr zu. Mittlerweile sind viele Geräte im Haus vernetzt und werden von mehreren Personen im Haus verwendet. Playstation, Notebooks, Computer, HTPC, Stereoanlage mit DLNA Client, iPod’s, Fernseher, Receiver … alles Geräte die oft schon die Möglichkeit bieten in ein Netzwerk zu integriert zu werden. Nur wer behält da denn Überblick über die ganzen Daten? Was geschieht mit den Daten auf dem Gerät wenn es kaputt geht?

Viele kaufen sich als zentralen Datenbunker ein NAS. Nur was ist dieses NAS eigentlich? Im Prinzip ist es ein kleiner auf Linux basierender Computer. Der einfach die Daten über bestimmte Netzwerkprotokolle zur Verfügung stellt. Die Dinger sind im Prinzip ja nicht so schlecht, nur lassen sie sich nicht einfach so mit Funktionen erweitern. Auch die Leistung der Meisten billige NAS’s lässt zu wünschen übrig. Schlechter Datendurchsatz. Grauenhaft alte Software darauf die in Verbindung mit neueren Geräten Probleme macht bzw. nicht mehr Funktioniert. Werden nicht mehr aktiv weiterentwickelt, gibt es also ein Problem mit dem Gerät kann man nur hoffen das irgendwann ein Update kommt. (Was bei einem Auslaufmodell eher unüblich ist

Geräte die halbwegs eine Leistung bieten, aktiv weiterentwickelt werden, und auch schön erweitert und modifiziert werden können kosten in etwa 300-400€ ohne Festplatten, um diesen Preis kann man sich allerdings ein gleichwertiges NAS mit einem Intel Atom (wie er auch bei hochwertigeren NASs im Einsatz ist) selbst bauen.

Ein weiterer großer Vorteil ist Community hinter Debian. Debian ist sehr weit verbreitet vor allem bei Servern. Auch am Desktop findet man viele Debianderivate, wie z.B. das beliebte Ubuntu. Man findet also sehr einfach kompetente Foren, Wikis und in Dokumentationen wird sogar oft auf Debian und Ubuntu eingegangen. Auch wenn man sich die Software selbst baut findet man oft schon auf Debian angepasst Skripte (Init) die man gleich verwenden kann oder es gibt schon fertige Pakete die man nur noch installieren muss. Man findet also immer Unterstützung und Hilfe bei einem solchen Homeserver, schneller und kompetenter als bei so manchen Hersteller.

Die Wahl der richtigen Hardware

Viele stellen sich unter einem Server ein hochkomplexes teures Gerät vor. Ein Server muss nicht unbedingt ein teueres Gerät sein ein Server kann auch ein kleiner günstiger Consumer PC dienen oder ein alter ausgedienter PC. Je nach Anforderungen an den Server sollte man sich ein Gerät auswählen/konfigurieren/zusammenbauen. Wenn Verfügbarkeit sehr sehr wichtig ist und jede Minute die der Server down (nicht erreichbar) ist viel Geld kostet, kann man es sich nicht leisten durch einen kleinen Defekt tausende an Euro zu verlieren . Wie wichtig der Server ist, kommt sehr auf die Branche an Ein Planungsbüro hat andere Anforderungen an ihre IT als eine Landwirtschaftlicher Betrieb oder ein Hotel. Auch die größe einer Firma spielt eine Rolle, eine kleine Firma mit 3-4 Mitarbeitern hat andere Anforderungen die IT als ein Unternehmen mit hunderten Mitarbeitern. Es entstehen unter umständen enorme Kosten wenn ein für den Betrieb unbedingt benötigter Server ausfällt. In großen Firmen verlässt man sich deshalb niemals auf eine einzelne Maschine. Für nahezu jede wichtige Maschine gibt es eine zweite, die im Falle eines Ausfalls die komplette Arbeit übernimmt. Im Server selbst sind auch viele Teile redundant. Also mehrere Netzteile in einer Maschine (an unterschiedlichen Stromkreisen, mit 2 getrennten USVs und Generatoren) sind selbstverständlich. Genauso die Anbindung an die Außenwelt, niemals hängt eine wichtige Maschine nur einmal am Netzwerk. Mindestens 2 oder mehr Netzwerkverbindungen auf verschiedene Switches (Stack) sind vorhanden… auch der Support ist in Firmen sehr wichtig. Fällt eine Maschine aus müssen innerhalb kürzester Zeit Ersatzteile verfügbar sein und die Maschine sollte soll schnell wie möglich repariert werden.

All das sind Features auf die man im privaten Bereich verzichten kann. Warum zwei Netzteile, wenn keiner ohne Strom arbeiten kann? Warum redundante Netzwerkanbindung, wenn man nicht 24/7 verfügbar sein muss? Einen wichtigen Punkt gibt es allerdings auf das man selbst im privaten Bereich niemals verachten darf redundante Festplatten Alle anderen Teile können einfach getauscht werden und man kann nach der Reparatur weiter arbeiten wie gehabt ohne „Arbeit“ verloren zu haben. Verweigert eine Festplatte ihren Dienst, sind die Daten darauf verloren. In persönlichen Daten steckt meist viel Arbeit und Zeit, ich verwende deshalb gerne das Argument das so ein kleiner Festplattendefekt enorm hohe kosten verursachen kann, die man sich oft durch eine kleine Investition von 50€-100€ für eine Festplatte hätte sparen können.

In einem kleinem Betrieb (z.B. Büro mit 10 Mitarbeitern) reicht im Normalfall eine kleine billige Kiste (Hardware) und der Verwaltungsaufwand hält sich in Grenzen.

Ein Photograph z.B. seine Photos sind sein ein und alles und in Zeiten der Digitalfotograhie müssen diese fachgerecht aufbewahrt werden. Früher hat es gereicht einfach die Filme in Kisten zu archivieren. Gut ein Laie würde sich einen haufen DVDs kaufen, nur leider ist die Lebensdauer einer DVD sehr begrenzt. Einem Photographen (kleiner Familienbetrieb) würde ich empfehlen einen Datenbunker mit 2 Festplatten (für das System) und einen Haufen großer Festplatten für die Photos zu kaufen. Je nach anfallender Daten pro Jahr und vorhandenen Daten muss ausreichend Platz verfügbar sein und das System soll leicht erweiterbar sein. Das Grundsystem (Hardware mit 2 Festplatten) lässt sich leicht mit 500-600 Euro realisieren. Pro 2TB (brutto) Speicherplatz kann man ca. weitere 90€ rechnen (Exkl. SATA Controller wenn kein OnBoard Steckplatz mehr vorhanden ist)

Also eine Kiste mit 12TB (brutto 6x2TB = netto 5x2TB=10TB) würde in etwa mit 1200€ zu Buche schlagen. Wurde auf Erweiterbarkeit wert gelegt (was leider auch etwas mehr kostet) könnte man das System später wenn der Platz zu gering wird mit weiteren Platten erweitern und so wieder ein paar Jahre mit dem der Hardware durch kommen.

Hier eine Beispielkonfiguration für einen Homeserver

Stück Teil Preis
1 ANTEC Nine Hundred II, schwarz, ohne Netzteil ca. 110€
1 Fantec MR-SA1041, 2.5″ SAS/SATA Wechselrahmen ca. 70€
1 SATA Backplane SNT3141-SATA für 4x 3,5″ HDDs, schwarz (optional) ca. 105€
1 Enermax PRO82+ II 385W ATX 2.3 (EPR385AWT II) ca. 70€
1 Zotac NM10-DTX WiFi, NM10 ca. 100€
1 Corsair ValueSelect DIMM 2GB PC2-6400U CL5 ca. 35€
2 Western Digital Scorpio Blue 120GB, SATA II ca. 60€ gesamt
4 Western Digital Caviar Green 2000GB, 64MB Cache, SATA II ca. 360-400€
Gesamt 950€

Eckdaten zum verwendeten Server

Da der Server virtuell ist, gibt es zur Hardware nicht viel zu sagen. Wirklich relevant sind allerdings nur die Festplatten
Es befinden sich 2x8GB und 6x2GB SATA Festplatten im Server. Das mag jetzt zwar wie ein schlechter Witz klingen, aber das ist bei mir ja nur ein kleines Testsystem. Prinzipiell ist die Hardware eines Fileservers in einem kleinem Unternehmen oder bei einer Privatperson egal. Wichtig ist nur dass die Daten sicher gespeichert werden. Das bedeutet Daten nur auf einer Festplatte zu speichern, wie es leider bei vielen Privatpersonen üblich ist, ist zu wenig! Es gibt Techniken um sich vor Datenverlust durch eines Plattendefekts zu schützen (Redundanz). Es macht keinen Unterschied wie groß die Platten sind, die Vorgehensweise ist bei 2GB Festplatten die gleiche wie bei 2TB. Als Systemplatten (reichen 2x80GB leicht aus) um Strom und Platz zu sparen kann man auch auf 2,5″ Festplatten setzen oder alte kleine Platten verwenden die man noch herum liegen hat. Die Platten für die Daten würde ich einfach auf möglichst große Platten legen (Preis/TB).

Installation

Nach dem man die ISO-gebrannt hat und den Rechner mit der Debian-netinstall CD startet erscheint der Bootloader (ISOLINUX) der CD. Bei dieser kann man wählen welcher Installer gestartet werden soll. Hat man kann CD Laufwerk zur verfügng kann man auch einen USB-Stick zur Installation verwenden.

Ich bevorzuge den Textinstaller dieser ist schlanker und läuft auf jeder Grafikkarte. Hier wird also einfach Install gewählt.

Als erstes wird man gefragt welche Sprache man verwenden will, ich bin immer recht unschlüssig und wähle hier auch oft Englisch. Welche Sprache man bevorzugt ist oft einfach eine persönliche Entscheidung bzw. hängt von den Englischkentnissen ab. Ein großer Vorteil an einer Englischen OS Version ist das die Community von dieser einfach größer ist und sich so bei Fehlermeldungen einfach mehr Gleichgesinnte mit eben diesem Problem finden. Wenn man sich mit Englisch schwer tut würde ich eine Deutsche Installation Empfehlen, ansonsten ist man mit Englisch recht gut beraten

Nun der Screenshot ist eigentlich selbst erklärend, hat man allerdings Englisch gewählt muss man hier sein Land unter Others suchen. Hier sollte unbedingt das eigenen Land gewählt werden egal welche Sprache man verwendet.

Das Tastaturlayout. Ich besitze großteils US-Keyboards diese sind bei der Bedienung eines Unix einfach komfortabler weil, die Sonderzeichen ohne Tastendembinationen geschrieben werden können. Hier einfach das Layout der lokal am Server angeschlossenen Tastatur wählen (ich hab nur US-Keyboards). Der Server wird später über SSH administriert -> das Tastaturlayout ist nur lokal wichtig. Hat also später eigntlich keine Relevanz

Als nächstes wird man nach dem Rechnernamen gefragt. Meine Privaten Rechner haben meistens Namen aus Asterix und Obelix. In großen Firmen würde ich Fantasienamen eher nicht empfehlen. Man verliert bei 50-60 Server + Virtuelle Maschinen einfach den Überblick, wenn die Namen irgendwelche Phantasienamen haben. Ein klingender Name der zum Verwendungszweck passt ist da angebrachter.

Ist der Server teil einer Domain gehört auch diese hier korrekt eingetragen. Hat man keine Domain kann man sich einfach eine für zu Hause ausdenken. Diese muss nicht öffentlich registriert sein. .local im 1st-Level ist üblich wenn die Domain keine öffentliche Domain ist. Wenn eine Aktive Directory Domain (Microsoft) vorhanden ist und dieser Server später in diese aufgenommen werden soll trägt man diese gleich hier ein. Das erleichtert es den Server in die Active Directory Domain zu integrieren.

Nun kommen wir zum Administrator Account. Auf Unix-Systemen hat dieser den Namen root (die Wurzel). Dieser darf auf dem System alles ändern, ohne Einschränkungen und natürlich mit allen Konsequenzen… mit diesem User kann das komplette System zerstört werden aber auch alles Konfiguriert werden. Hier muss dem root einfach ein Passwort gegeben werden mit dem man sich später mit diesem Anmelden kann.

Zusätzlich zum User root wird bei der Installation wird noch ein weiterer User eingerichtet, der eigene Benutzer mit dem man normalerweise am System arbeitet.

Die Partitionierung. So Mancher ist hier verleitet gleich verwende vollständige Festplatte zu wählen. Wie bereits erwähnt wurde, sollte man bei einem Server immer darauf achten die Daten redundant zu speichern. Also einfach ausgedrückt man kann sich nie auf eine Festplatte verlassen. Gleich vor weg bei der Installation verwende ich nur 2 der Festplatten um ein Grundsystem zu installieren. Diese werden als RAID1 (gespiegelt) eingerichtet. Die anderen Platten bleiben unberührt und werden später eingerichtet, man könnte sie auch gleich einrichten allerdings lernt man so nicht den Umgang mit mdadm, was im Ernstfall sehr wichtig ist.

Als erstes lege ich die SWAP-Partitionen an. Da ja bei einem Plattendefekt auch eine SWAP-Partition vorhanden sein sollte, wid diese bei beiden Platten am Ende mit einer Größe von 1 GB angelegt. Als Faustregeln gilt als SWAP-Größe die doppelte RAM-Größe zu verwenden. Also bei 512MB Arbeitsspeicher eine 1GB SWAP Partition. Allerdings gilt diese Richtlinie nur bis 2GB. Danach ist es üblich die SWAP-Partition genau so groß wie den RAM zu wählen.

Nun wird noch eine Partition zum Installieren von Debian eingerichtet. Genauer gesagt ein RAID-Verbund mit mdadm. Als erstes legen wir auf beiden Platten eine RAID-Partition an.

Sind die Partitionen eingerichtet, kann man das „Software RAID konfigurieren“

Man wird noch gefragt ob man die Änderungen auch wirklich auf die Platte schreiben will bevor man das RAID einrichten kann. Wählt man hier nein, werden die Einstellungen die gemacht wurden nicht übernommen und man kann das RAID nicht erstellen.

Als erstes erstellt man ein MD-Gerät. Ein MD-Gerät ist eine virtuelle Festplatte die eigentlich den Verbund aus den beiden Partitionen darstellt. Diese kann wie eine normale Partition oder Festplatte verwendet werden.

Beim erstellen wird man natürlich wird man beim erstellen gefragt wie das MD-Gerät erstellt werden soll. Welche Art von RAID, wie viele aktive und Reserve-Geräte verwendet werden sollen und vor allem welche das sind.

Ist das RAID Gerät erstellt kann man den Assistenten mit Fertigstellen Abschliessen

Jetzt wird auf dem RAID die root Partition angelegt, da ich hier bereits Debian 6.0 verwende wird ext4 eingesetzt das um einiges schneller ist und mit großen Dateien besser umgehen kann.

Nun ist das System fertig partitioniert und kann mit der Installation des Systems begonnen werden.

Ist das Grundsystem installiert muss dieses auch Konfiguriert werden bevor die Installation endgültig beendet werden kann. Der Paketmanager wird einem Windows User kein Begriff sein. Es ist eine Art Appstore (nur etwas umfangreicher und intelligenter als bei iPhone und Co). Dieser sollte die Pakete natürlich von einem Server in der nähe bekommen.

Hier kann man noch entscheiden welche Software man installieren möchte. Da das ein Server werden soll kann man eigentlich hier alles abwählen bis auf die Standard-Systemwerkzeuge. Ich würde nicht empfehlen hier alles zu wählen. Ein Server ist ein Arbeitstier und sollte nur das machen für das er vorgesehen ist. SSH-Server kann man will wählen wenn man es zu Administration benötigt, aber ich erkläre zum Schluss noch wie man den SSH-Server nachinstalliert.

Am Ende der Installation wird man noch gefragt ob man den Bootloader Installieren will und ob das System neustarten möchte . Beide Fragen beantwortet man natürlich mit Ja, da das System ohne Bootloader nicht starten kann.

So sieht der Hochgefahrene Server aus. Ja mehr ist es nicht und mehr braucht man nicht auf einem Server. Man kann sich nun als root anmelden und mal mit apt-get update && apt-get dist-upgrade den Server updaten. Im Normalfall ist die Maschine bei der netinstall Version von Debian am aktuellen stand da ja alles direkt aus dem Internet installiert wurde.

Nun zur Installation von SSH das beim Updaten verwendete Kommando apt-get ist die Paketverwaltung der man mit Argumenten und Optionen übergibt was sie machen soll.

apt-get install
Installiert ein Paket (Programm)

apt-get update
lädt die aktuellen Paketlisten aus dem Internet, also sieht nach ob es neue Pachtet gibt

apt-get upgrade
Installiert Updates von Paketen wenn welche vorhanden sind.

Genaueres zur Paketverwaltung findet man in den Manpages
man apt-get

Der SSH-Server kann mit apt-get install openssh-server installiert werden. Nun kann man mit einem SSH-Client (PuTTY für Windows, ConnectBot für Android …) darauf zu greifen und so bequem arbeiten.

Natürlich muss man auch die IP des Servers wissen um sich damit zu verbinden. Diese bekommt man mit dem Befehl ifconfig raus.

So das war es mal mit der Grundinstallation. Den SSH-Zugang kann man wenn man möchte noch etwas absichern.
Dieser Artikel aus Pro-Linux ist dazu recht Hilfreich.

Zugriff per SSH. Unter Linux kann man einfach mit dem Befehl ssh root@192.168.0.51 auf den Server. Unter Windows empfehle ich die Programme PuTTY und WinSCP.

Ausblick im nächsten Teil wird der Server noch etwas optimiert und ein RAID5 für die Daten eingerichtet.

About Florian