Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:debian_fileserver

In einem Netzwerk werden in aller Regel oft Dateien ausgetauscht, welche an einer zentralen Stelle gespeichert und gesichert werden sollten. Dieser Artikel beschreibt meine Vorgehensweise bei der Implementation eines lokalen Fileservers und kann dazu dienen, einen groben Überblick über die Thematik zu erhalten.

Hardware

Wichtig ist zunächst, einige Hardware-Anforderungen abzuklären.

Gehäuse

Wichtig ist, in was für einem Gehäuse der Server verbaut wird. Soll der Server in ein Rack eingeschoben werden (dies garantiert in der Regel bei korrekter Architektur einen geregelten Luftkanal), ist der Kauf eines 19 Zoll Gehäuses unumgänglich. Im Heimbereich werden allerdings auch oftmals herkömmliche Desktops oder (Big-)Tower als Gehäuse benutzt.

Empfehlenswert ist es, beim Kauf des Gehäuses auf eine gummierte bzw. schallgeschützte Einbaumöglichkeit von Festplatten zu achten. Dies wirkt sich enorm auf die Lautstärkebildung des Servers im Betrieb aus, da Festplatten durch den verbauten Motor immer noch eine minimale Unwucht erzeugen. Ohne einen gummierten Laufwerkskäfig kann so das Gehäuse anfangen unangenehme Geräusche zu erzeugen.

Qual der Wahl: Prozessor

Das wichtigste Bauteil des Servers ist wohl die CPU/der Prozessor. Hier hat man in aller Regel die Wahl zwischen zwei „Parteien“: AMD oder Intel.

Zum Zeitpunkt meiner Recherchen war, meines Erachtens nach, ein AMD 64 X2 4200+ EE die beste Wahl. Die Gründe hierfür sind folgende:

  • sehr günstiger Anschaffungspreis
  • energiesparend
  • 64bit-fähig

Die Anschaffungskosten von vergleichbaren Intel-Produkten waren derzeit höher als die des oben genannten AMD-Prozessors. Ein Prozessor der Intel Atom-Architektur war damals ebenfalls nicht sinnvoll, da die damaligen Prozessoren weniger Leistung bieteten und um einiges teurer waren.

Mitlerweile gibt es jedoch Atom-Prozessoren der zweiten, bzw. dritten Generation zu relativ günstigen Konditionen.

Mainboard und RAM

Neben dem Prozessor sind das Mainboard und der Arbeitsspeicher die beiden wichtigsten Bestandteile des zukünftigen Servers. Zukunftsorientiert sollte auf die folgenden Punkte geachtet werden:

  • Anzahl der IDE/SCSI/SATA/SAS-Ports –> Größe des Speicherpools
  • Größe des Arbeitsspeichers –> eventuelle spätere zusätzliche Verwendungszwecke
  • Chipsatz –> Recherche im Internet nach eventuell nicht unterstützen oder fehlerhaften Chipsätzen

Insbesondere auf den ersten Punkt sollte geachtet werden. SATA-Festplatten gibt es derzeit in Größen bis zu 2 TB - da die Speicheranforderungen im Laufe der letzten 20 Jahren enorm angestiegen sind, ist es wichtig, so viele SATA-Ports wie möglich für die Zukunft zur Verfügung zu haben. Weniger als 6 Ports sollten es, meines Erachtens nach, auf keinen Fall sein.

Zum Zeitpunkt meiner Recherchen war SATA in der Variante 2 aktuell, mitlerweile gibt es bereits den dritten Standard, welcher im Vergleich zum Vorgänger mit theoretischen 600 MB/s die doppelte Geschwindigkeit bietet. Um Später nicht sofort wieder ein neues Mainboard zu kaufen, wäre es sinnvoll, auch auf eventuelle zusätzliche SATA 6G Ports zu achten. Kann allerdings vorher gesagt werden, dass derartige Geschwindigkeiten nicht benötigt werden, kann man hierauf getrost verzichten.

Arbeitsspeicher ist derzeit relativ günstig zu haben, insbesondere DDR2-RAM ist preislich in letzter Zeit erschwinglich geworden. Je nach verwendeten Speichersystem und weiteren Systemanforderungen empfiehlt es sich, hier nicht zu knausern. Wird beispielsweise das CPU- und RAM-intensive Dateisystem ZFS benutzt, sollten mindestens 1 GB verbaut werden, sinnvoller sind allerdings 2 GB. Der Grund hierfür sind die ständigen intensiven Routinen, welche die enorme Ausfall- und Datensicherheit von ZFS ausmachen.

DDR2 liegt in verschiedenen Taktfrequenzen vor (667, 800,…) - nach Möglichkeit und Anforderung sollte hier eventuell mindestens auf 800er Module zurückgegriffen werden.

Speichermedien

Wichtig ist es, vorher zu wissen, wieviel Speicher über welchen Bus angebunden werden sollen. In aller Regel hat hier mir die Wahl zwischen:

  • IDE
  • SCSI
  • SATA/SAS

IDE hat den entscheidenen Nachteil, dass lediglich 2 Geräte pro Port angebunden werden können (Master/Slave) - bei aktuellen Boards ist darüber hinaus oftmals nur noch ein Port vorhanden, da IDE-Systeme so gut wie nicht mehr benutzt werden. Das würde bedeuten, dass lediglich zwei Festplatten angeschlossen werden könnten. IDE unterstützt maximal theoretische 133 MB/s, was nicht sehr viel ist.

SCSI ist ein mitlerweile veralteter und angestaubter Standard, welcher meist lediglich nur noch in veralteten System benutzt wird. Der letzte SCSI-Standard U320 unterstützt Übertragungsrante bis zu 320 MB/s. SCSI hat allerdings den entscheidenden Nachteil, dass Controller und Festplatten meist teuer und nicht sehr stromsparend sind.

SATA/SAS ist der aktuell am meist verwendete Standard für Festplatten- und Speichersysteme. Man unterscheidet hier zwischen drei Standards:

  • SATA I –> maximal 150 MB/s
  • SATA II –> maximal 300 MB/s
  • SATA III –> maximal 600 MB/s

SATA I wird mitlerweile nicht mehr häufig verwendet, SATA III befindet sich noch in den Kinderschuhen und Controller und Festplatten sind meist sehr teuer. SATA II ist meines Erachtens nach der beste Standard für einen leistungsfähigen Fileserver. Der Durchsatz ist mit bis zu 300 MB/s schnell und die Hardware erschwinglich.

Beim Kauf der Festplatte(n) sollte desweiteren auf folgende Faktoren geachtet werden:

  • Größe der Festplatte
  • Größe des Zwischenspeichers (Cache)
  • Anzahl der Umdrehungen des Motors pro Minute

Bei Zugriffen auf Festplatten werden Informationen vor dem Lesen und Schreiben erst im Cache zwischen gespeichert. Der Cache ist weitaus schneller als die Festplatte selbst und je größer der Cache ist, desto schneller können beispielsweise oft angeforderte Informationen aus selbigen gelesen werden. Ein größerer Cache wirkt sich also positiv auf die Performance des Festplatte aus. Die Anzahl der Umdrehungen des Motors hat ebenfalls einen entscheidenden Einfluss auf die Leistung einer Festplatte, allerdings bestimmt sie auch zum Teil den Energie- und Lautstärkefaktor mit. Je schneller eine Festplatte drehen kann, desto schneller können Informationen ausgelesen oder gespeichert werden - allerdings sind schnellere Festplatten oftmals lauter und verbrauchen auch mehr Strom. Es gibt allerdings auch Festplatte, die diese beiden Punkte vereinen - diese Modelle drehen je nach Anforderung schneller oder langsamer, sind in ihrer Umdrehungszahl also variabel. Dies ist ein nahezu perfekter Kompromiss zwischen „Leistung“ und „Energie-Effizienz“.

Controller

Hat man sich für einen Datenbus entschieden, ist die nächste Frage die nach dem geeigneten Controller. Controller liegen in aller Regel bereits auf dem Mainboard vor oder können extern mittels PCI-Express oder PCI angeschlossen werden.

Integrierte Controller besitzen gegenüber externen Controllern eine geringere Funktionalität. RAID-Funktionalitäten zur Ermöglichung von Ausfallsicherheit sind nicht oder nur gestützt durch das Betriebssystem möglich. Und da liegt das Problem: Linux wird hier in aller Regel nicht oder nur sehr schlecht unterstützt. Wird Windows benutzt ist desweiteren darauf zu achten, dass stabile und erprobte Treiber vorliegen.

Externe Controller verfügen über eine eigene Prozessoreinheit und oftmals über integrierten Arbeitsspeicher. Ausgefeilte RAID-Funktionalitäten und Batterie-Caches sind oftmals auch Bestandteil qualitativer Speichercontroller. Hier sollte man sich allerdings genau informieren - die meisten preisgünstigen Controller sind nicht bootfähig oder benötigen einen speziellen Treiber für das Betriebssystem, für quelloffene Betriebssysteme, wie Linux, liegen hier oftmals keine stabilen Treiber vor.

Bei einem (halbwegs) qualitativen Controller werden angelegte Pools im Betriebssystem als einzelne logische Festplatte angezeigt - für das Betriebssystem ist daher keine Verwaltung der einzelnen Festplatten nötig, das übernimmt der Controller. Allerdings haben diese Funktionalitäten auch ihren Preis - markenhafte Controller sind meist sehr teuer.

Je nach Anforderung kann man hier auch sparen und die Ausfallsicherheit (RAID) durch das Betriebssystem ermöglichen. Unter Linux gibt es schon lange die Möglichkeit, mehrere Festplatten zu logischen RAID-Geräten zusammenzuschalten. Auch im Fehlerfall lassen sich meist die Daten sicher rekonstruieren.

Software

Betriebssystem

Die Qual der Wahl hat man auch beim Betriebssystem. Meist wird hier zwischen Microsoft Windows oder Linux verglichen.

Linux hat den, meines Erachtens nach, hübschen Vorteil kostenlos und ausgereift zu sein. Zusätzliche Software ist in aller Regel ebenfalls kostenlos und dazu noch quelloffen, was bedeutet, dass man als Endbenutzer selbst Veränderungen an der Software vornehmen darf und diese darüber hinaus noch veröffentlichen darf. Bei sogenannter „closed source“ Software, wie dies bei Microsoft Windows der Fall ist, ist dies nicht der Fall. Kostenlose Anwendungen sind allerdings auch hier vorhanden.

Ich möchte hier auch gar nicht weiter auf eine Beratung eingehen, da die Wahl des Betriebsytems eine Grundsatzdiskussion ist, wie ich finde. Windows und UNIX(oid) bzw. Linux sind zwei/drei komplett unterschiedliche Betriebssysteme, welche absolut ihre Daseinsberechtigungen haben und sowohl Vor- als auch Nachteile haben.

Dienste

Ein blankes Betriebssystem reicht für die Verwendung des Servers als File Server nicht aus. Benötigt werden Dienste zum Datenaustausch mit dem Rest des Netzwerks. Je nach Anforderung können hierfür in Frage kommen:

  • Samba
  • NFS
  • FTP
  • SSH/SCP
  • iSCSI

Konzept

Meine Anforderung waren folgende:

  • Ausschließliche Verwendung als File-Server
  • Zur Verfügung stellen eines möglichst großen und erweiterbaren ausfallsicheren Speicherpools
  • Verwendung des SATA II-Standards
  • stromsparende Bauweise zur Vermeidung von unnötigen Kosten
  • Möglichkeit, später auf ZFS oder andere RAID-Dateisysteme umzusteigen
  • Software RAID5-Verbund
  • Zusätzliche Sicherung auf Magnetband

Passend hierzu habe ich mich für die folgenden Komponenten entschieden:

Hardware

Mainboard

Verbaut wurde hier ein ECS A740GM-M, aus folgenden Gründen:

  • günstiger Anschaffungspreis
  • 6x SATA 2 Ports
  • integrierte Grafikkarte
  • Gigabit-Ethernet

Prozessor

AMD 64 X2 4200+ EE Bei der CPU habe ich mich für einen AMD 64 X2 4200+ EE Prozessor entschieden.

  • Zwei Kerne (sinnvoll für ein eventuelles späteres Upgrade auf ZFS)
  • 2,2 Ghz Taktfrequenz
  • energiesaprend
  • günstiger Anschaffungspreis

Arbeitsspeicher

Ich habe mich hier für *2 GB DDR2-800 Arbeitsspeicher in Form von zwei 1 GB Riegeln entschieden. Durch zwei Riegel des selben Typs vom selben Hersteller kann in der richtigen Konfiguration der „Dual Channel“-Effekt erzielt werden, was, je nach Typ, einen zusätzlichen Boost bedeuten kann. 800 statt 667 Mhz Taktfrequenz können sich positiv auf die Performance des Servers auswirken.

Speicherkarte

Da das Mainboard nur über 6 SATA-Ports verfügt, welche ich später eventuell alle für Festplatten benutzen möchte, habe ich mich dazu entschieden, eine CF-Speicherkarte mittels Adapter auf dem IDE-Port zu betreiben. Dort findet das Betriebssystem platz. So können alle 6 SATA-Ports effektiv genutzt werden.

Festplatten

Bei der Festplattenwahl wurden die folgenden Faktoren berücksichtigt:

  • SATA II-Interface
  • möglichst großer Cache und Speicher
  • energiesparend

Die Beste wahl waren hier Festplatten der Marke Wester Digital, des Typs WD10EADS, welche die folgenden Spezifikationen besitzen:

  • SATA II
  • 32 MB Cache
  • EcoGreen
  • variabel in der Umdrehungszahl (je nach Anforderung)

Hiervon habe ich gleich drei Stück verbaut, um effektiv möglichst viel Speicher anbinden zu können. Mit einem Preis von ca. 65 Euro pro Festplatte war das sogar ziemlich günstig.

Backplane

Eine Backplane hat den hübschen Vorteil, dass Festplatten nicht mit dem Öffnen das Gehäuses und Einschrauben verbaut werden, sondern einfach praktisch an der Vorderseite des Servers eingeschoben werden könnten. Desweiteren bietet eine Backplane einen Lüfter, welcher die Festplatten von hinten ausreichend kühlt.

SCSI-Streamer

Um besonders wichtige kritische Daten zusätzlich zu sichern, habe ich einen bereits vorhandenen DDS SCSI-Streamer verbaut, welcher Daten auf 2 GB Tapes (komprimiert bis zu 4 GB) sichert.

Software

Betriebssystem

Ich habe mich für Debian Linux in der damals aktuellen Version „Lenny“ entschieden. Die Hauptgrund hierfür war, dass ich Debian schon seit mehreren Jahren auf Servern einsetze und bereits ausreichend Erfahrung vorweisen kann. Im Vergleich zu anderen Server-Distributionen, wie CentOS, ist Debian in aller Regel ziemlich schlank, was meinem Vorhaben entgegen kommt.

Dienste

Zum Datenaustausch werden folgende Dienst benutzt

  • FTP
  • Samba
  • SSH
  • NFS

Für die Backup-Funktionalität wird ein eigenes Skript mithilfe von Cron regelmäßig ausgeführt.

Kosten

  • Gehäuse: ~ 30 Euro
  • Mainboard: ~ 40 Euro
  • CPU: ~ 35 Euro
  • RAM: ~ 30 Euro
  • Festplatten: ~ 195 Euro

Das macht insgesamt einen Preis von 330 Euro.

projekte/debian_fileserver.txt · Zuletzt geändert: 2012/03/02 13:50 von christian