Linux-Dateisystem für einen großen Dateiserver

8

Ich möchte von erfahreneren Leuten wissen, welches Dateisystem die beste Wahl für einen Dateiserver mit mehr als 20 TB Festplatten ist. Persönlich habe ich immer EXT3 (damals) und EXT4 (seitdem verfügbar) [und einmal ReiserFS 3, obwohl es viele Datenbeschädigungen verursachte] auf meinen PCs und auf den BOOT- und ROOT-Festplatten der "kleinen Server" verwendet.

Da EXT4- Tools (obwohl nicht EXT4 selbst) auf 16-TB-Partitionen beschränkt sind, ist dies möglicherweise nicht meine beste Wahl. Die Distribution wird Debian 6.0 (Squeeze) und / oder Gentoo (neueste Version) sein, daher sollte der Kernel ziemlich aktuell sein (unter Debian zumindest mit Backports), was bedeutet, dass der Linux-Kernel> = 2.6.32 ist.

Der Dateiserver wird für drei Maily-Zwecke verwendet (und auch für getrennte Partitionen, da der Zweck darin besteht, Daten "sicher" zu halten und sich nicht wirklich um den Overhead zu kümmern). Alle Festplatten müssen jedoch mit LUKS verschlüsselt werden :

  1. Medien, Downloads und lokales Debian-Repository [Ich habe mindestens 6 Computer, auf denen Debian ausgeführt wird]> 20 TB (möglicherweise weitere Trennung zwischen Medien, Downloads und Debian-Repository)
  2. Daten (Dokumente, Fotos, ...) ~ 4 TB SICHER (bedeutet raid1 oder raid6 + Sicherungsdiskette)
  3. Backups> = 20 TB für Backups anderer Computer in meinem Gigabit-LAN ​​(können Sie eine Software vorschlagen, die das gesamte Betriebssystem auch unter Windows sichert, BackupPC sagt, dass dies der Fall ist, irgendwelche Alternativen?)

Schnelle Geschwindigkeiten sind nicht wirklich notwendig (gleichzeitige Zugriffe: maximal 2 oder 3 große Dateien, z. B. Videos), selbst wenn es "nur" 200 MB / s Lesevorgänge von einem 10 HDD Raid6 sind, kann ich damit leben.

Zusammenfassend suche ich nach einem zuverlässigen, skalierbaren (dh leicht erweiterbaren) Dateisystem, das mehr als 20 TB / Partition unterstützt. Je sicherer und zuverlässiger der FS ist, desto besser. Die verwendete Hardware besteht aus mindestens einem Quad-Core (amd x4 630 oder Intel i5-2500k) und viel RAM (> 8 GB, möglicherweise> 16 GB), sodass die Hardwareanforderungen erfüllt werden sollten.

Meine PCs / Server werden im Falle eines Stromausfalls an eine USV (unterbrechungsfreie Stromversorgung) angeschlossen. Möglicherweise werden Medien und Sicherungen auch auf separaten Computern (dh zwei Servern) durchgeführt.

user51166
quelle
7
In dieser Größenordnung müssen Sie ZFS wirklich ernsthaft evaluieren. Wiederherstellungszeiten und Fehlerraten werden bei so vielen Discs, wie Sie sprechen, zu ernsthaften Problemen, und zfs ist die einzige stabile fs, die derzeit verfügbar ist und über den gesamten Stapel hinweg eine zuverlässige Fehlerprüfung und -korrektur bietet.
Afrazier
1
ZFS wird von Linux nicht nativ unterstützt (nur mit FUSE) oder wird nativ in einem frühen Pre-Alpha-Zustand unterstützt. Ich halte Solaris nicht für eine Option. Ich habe FreeBSD noch nie ausprobiert und bin vielleicht interessiert, aber ich weiß es jetzt nicht, wenn die Software-RAID-Unterstützung (und die allgemeine Hardware-Unterstützung) so gut ist wie die von Linux
user51166
1
Ich weiß, aber ZFS läuft nativ auf anderen Plattformen. Hardware-Support ist zwar nicht dasselbe wie Linux, aber das sollte Ihre geringste Sorge sein. ZFS ist ein vollständiger Speicherstapel, sodass Software-Raids nicht in Frage kommen. Bewerten Sie zunächst, wie Sie Ihre Daten speichern, verwalten, schützen und sichern möchten, bevor Sie Ihr Betriebssystem oder Speichersystem auswählen. Diskontieren Sie ZFS nicht, nur weil es unter Linux nicht nativ ist. Es ist wahrscheinlich die fortschrittlichste Speicherlösung, die derzeit kostenlos verfügbar ist.
Afrazier
Vielen Dank für Ihre Antworten, aber ich verstehe nicht: Auch wenn ich FreeBSD ohne Probleme verwenden könnte (nicht so sicher), ist so etwas wie ein Software-Raid implementiert? Etwas wie LUKS (Linux Encryption) für FreeBSD? Vielen Dank. Ich bin hauptsächlich mit Gentoo und Debian GNU / Linux vertraut. Der Server ist ein Heimserver .
user51166
Oder schlagen Sie ein anderes Betriebssystem als FreeBSD vor?
user51166

Antworten:

3

Viele Leute schlagen ZFS vor. ZFS ist jedoch unter Linux nur über Sicherungen nativ verfügbar. Ich würde dies nicht für Ihre Situation empfehlen, in der Leistung wahrscheinlich wichtig ist.

Leider wird ZFS niemals als natives Kernelmodul verfügbar sein, es sei denn, Lizenzprobleme werden irgendwie gelöst.

XFS ist gut, aber einige Leute haben Korruptionsprobleme gemeldet, und ich kann das nicht wirklich kommentieren. Ich habe mit kleinen XFS-Partitionen gespielt und hatte diese Probleme nicht, aber nicht in der Produktion.

ZFS bietet zu viele Vorteile und nützliche Funktionen, die jedoch nicht ignoriert werden können. Zusammenfassend sind sie ( eine vollständige Beschreibung ihrer Bedeutung finden Sie im ZFS-Wiki ):

  • Datenintegrität
  • Speicherpools
  • L2ARC
  • Hohe Kapazität
  • Beim Schreiben kopieren
  • Schnappschüsse & Klone
  • Dynamisches Striping
  • Variable Blockgrößen
  • Leichte Dateisystemerstellung
  • Cache-Verwaltung
  • Adaptive Endianness
  • Deduplizierung
  • Verschlüsselung

Wie kommen wir darum herum? Meine vorgeschlagene Alternative, die zu Ihrer Situation passen könnte, ist die Berücksichtigung von Nexenta . Dies ist ein Open Solaris-Kernel, auf dem GNU Userland-Tools ausgeführt werden. Ein Open Solaris-Kernel bedeutet, dass ZFS nativ verfügbar ist.

Matt H.
quelle
Von ihrer Website "Community Edition: Unbegrenzte, KOSTENLOSE Version für bis zu 18 TB Speicherplatz". Scheint, als würde ich eine weitere Einschränkung wie EXT4 bekommen
user51166
Und ich habe verstanden, dass ZFS einfach das "Beste" ist, wie fast alle von Ihnen sagen. Ich versuche nur herauszufinden, welches "beste" Betriebssystem / welche Solaris-Distribution es ausführen kann.
user51166
Debian GNU / kFreeBSD scheint ZFS zu unterstützen, und ich mag die Debian-Methode. Ich bin mir jedoch nicht sicher, ob ich dies verwenden kann, da es eine kleine unterstützende Community zu geben scheint und immer noch einige große Fehler aufweist.
user51166
@ user51166 - Sie sollten auch FreeBSD oder FreeNAS in Betracht ziehen, wenn Ihr Server nur zur Speicherung dient. Beide haben ZFS-Unterstützung.
Matt H
4

Sie sollten XFS ausprobieren und sich gut in Ihre Anforderungen einfügen:

XFS ist ein 64-Bit-Dateisystem. Es unterstützt eine maximale Dateisystemgröße von 8 Exbibyte minus einem Byte, obwohl dies den vom Host-Betriebssystem auferlegten Blockbeschränkungen unterliegt. Auf 32-Bit-Linux-Systemen werden dadurch die Datei- und Dateisystemgrößen auf 16 Tebibyte begrenzt.

aleroot
quelle
Ich habe gehört, dass es bei Stromausfällen zu Datenverlusten kommen kann und das Journaling keine Daten abdeckt (nur Journaling für Metadaten). Hatte es einmal auf meinem Desktop verwendet, aber viele fsck-Fehler generiert, daher zog ich es vor, es nicht mehr zu verwenden. Ich wiederhole: Leistung ist nicht der (Haupt-) Bereich dieser Wahl: Stabilität ist.
user51166
Ich denke nicht, dass XFS instabil ist, ich benutze es in mehreren Dateiservern und ich hatte keine Probleme ...
Aleroot
Nein, es ist stabil im Sinne einer stabilen Version. Bedeutet das, dass ich im Laufe der Jahre keine Datenverluste habe? XFS ist sicherlich gut, wenn Sie nach Leistung suchen, obwohl ich mich erinnere, dass ich im Internet gelesen habe, dass es Datenverlustprobleme gab (wenn auch nicht so viele wie bei Reiser 3 zum Glück). Ich habe vergessen anzugeben, aber ich schaue mir ein LUKS-Setup an, daher wird LVM verwendet , wenn dies helfen kann.
user51166
Es gibt kein perfektes Dateisystem ... Ich denke, dass XFS für Ihre Anforderungen am besten geeignet ist. Es sollte kein Problem mit LVM unter XFS geben.
Aleroot
Sicher nicht. Irgendwelche speziellen "Einschränkungen" / "Eigenschaften"? Online-Fsck- und / oder Defragmentierungsprobleme wie die Probleme von ext4?
user51166
4

Am einfachsten ist es, XFS zu verwenden. Viele der schlechten Erfahrungen mit XFS basieren auf alten Versionen und Desktop-Hardwareproblemen, die meiner Meinung nach für neue Bereitstellungen auf Serverhardware in Standardqualität nicht wirklich relevant sind. Ich habe einen Blog-Beitrag zu diesem Thema geschrieben, der Ihnen helfen kann, die aktuelle Situation zu klären. Es gibt mehrere ausgelastete XFS-Datenbankinstallationen mit Hunderten von Benutzern und Terabyte an Daten, die ich verwalte. Sie sind alle im Debian Lenny-Kernel (2.6.26) oder höher und ich habe seit Jahren keinen Hinweis mehr auf Probleme mit ihnen gehört. Ich würde XFS mit keinem früheren Kernel verwenden. Ich habe einige direkte Berichte von Personen gehört, die immer noch ein seltsames XFS-Verhalten feststellen, wenn das System nicht über genügend Speicher oder Speicherplatz verfügt. Das habe ich selbst noch nicht gesehen.

Die einzige andere vernünftige Option ist die Verwendung von ext4 mit etwas Hacking , um größere Dateisysteme zu unterstützen. Ich würde nicht erwarten, dass dies ein ganz anderes Zuverlässigkeitsniveau hat. Ich musste Daten von mehreren defekten ext4-Systemen wiederherstellen, bei denen Kernel-Fehler aufgetreten sind. Bisher wurden alle im Upstream behoben, aber zu diesem Zeitpunkt nicht im Kernel des Distributors. ext4 hat seine eigenen Metadatenprobleme wie den verzögerten Verlust von Zuordnungsdaten , Dinge, die bei ext3 weniger wahrscheinlich waren. Ich würde schätzen, dass die Wahrscheinlichkeit, dass Sie einen ext4-Fehler treffen, sogar höher als normal ist, wenn Sie ihn über die normale Größenbeschränkung hinaus erzwingen, einfach weil es wahrscheinlicher ist, dass Sie irgendwann auf einen weniger gut getesteten neuen Codepfad stoßen .

Eine alternative Idee ist, einfach sichereres und langweiligeres ext3 zu verwenden, das 16-TB-Limit zu akzeptieren und die Dinge besser zu partitionieren, damit kein einzelnes Dateisystem so groß sein muss.

Ein loses Ende im Zusammenhang mit Zeitschriftenausgaben. Sie haben nicht darüber gesprochen, wie all diese Laufwerke verbunden werden sollen. Stellen Sie sicher, dass Sie die Auswirkungen von Schreib-Caching in Ihrer Speicherkette hier verstehen. Deaktivieren Sie es entweder oder stellen Sie sicher, dass das Dateisystem den Cache leert. Ich habe einige Ressourcen dazu bei Reliable Writes aufbewahrt, wenn Sie dies noch nicht überprüfen.

Laufwerke saugen. RAID-Arrays saugen. Dateisysteme saugen. Es treten mehrere Fehler auf. Ich bin froh zu sehen, dass Sie bereits über Backups nachdenken. Um von einer guten zu einer hohen Zuverlässigkeit des Speichers zu gelangen, sind mehr als nur RAID und einige Ersatzlaufwerke erforderlich. Redundanz kostet auf jeder Ebene etwas, und das Geld für Hardware- und Softwarekomplexität ist schwierig zu navigieren. Und achten Sie auf Ihre Leistungserwartungen. Während ein RAID-Array, wie Sie es in Betracht ziehen, problemlos Hunderte von MB / s ausführen kann, sind lediglich zwei gleichzeitige Lesegeräte erforderlich, die ständig nach der Festplatte suchen, um diese auf nur wenige MB / s zu reduzieren. Ich kann ein RAID10-Array mit 24 Festplatten problemlos so zerstören, dass es nur <5 MB / s bei einer Benchmark-Arbeitslast liefert . Eine Sache, die dort hilft, ist sicherzustellen, dass Sie den Readahead nach oben optimieren, wenn mehrere Streaming-Reader möglich sind.

Greg Smith
quelle
Ich werde dies zu Hause verwenden, daher plane ich die Verwendung von Mainstream-Hardware. Könnte auch Server-Hardware verwenden, aber ich muss noch sehen, was SB-E nächstes Jahr in der xeon-Abteilung bieten wird (ich hätte auch gerne ein bisschen mit Virtualisierung gespielt). Wenn es nicht zu teuer ist, plane ich billige Serverhardware und ECC-Speicher (viel davon). In Bezug auf die Leistung möchte ich nichts Außergewöhnliches.
user51166
Und ja, ich denke über Backups nach, habe sie aber noch nicht implementiert. Ich bin immer noch auf der Suche nach einer Backup-Lösung, mit der ein System-Image und / oder problemlos tar / zip / ... erforderliche Ordner mit einer Verwaltungsoberfläche erstellt werden können, die automatische Wiederherstellungen ermöglichen. BackupPC scheint nur ein bisschen eingeschränkt zu sein und ich bin mir nicht sicher, ob ich Crashplan vertrauen würde (verwenden Sie es, um Daten an einem entfernten Ort zu sichern, möchte Redundanz daher ein anderes System). Muss ich selbst eine Web-GUI schreiben oder gibt es so etwas bereits (Open-Source-Software oder zumindest kostenlos)
user51166
2

Die Bereitstellung unter ZFS mit FreeBSD kann hier mit gbde zur Verschlüsselung erfolgen. ZFS selbst wäre der Software-RAID-Anbieter über RAIDZ . Die Komplexität der Speicherverwaltung beim Erstellen von Zpools unterscheidet sich nicht wesentlich von der Komplexität, die Linux Ihnen mit mdadm bietet, und ist in einigen Fällen sogar einfacher. Meine erste ZFS-Installation (unter Solaris 10 vor ungefähr 3 Jahren) hatte ein 17-TB-Dateisystem über 48 Laufwerke. Ich habe dort mehrere Fehler problemlos überstanden und dabei das ZFS-Management gelernt.

Der Hauptvorteil ist, dass die Prüfsumme von ZFS eine bessere Fehlererkennung bietet als Linux. Dies ist ein Schutz gegen schlechte Hardware, die es wert ist, in Betracht gezogen zu werden. Die Hauptnachteile sind, dass FreeBSD weniger beliebt ist. Sie wissen noch nicht, wie Sie es verwalten sollen. Die Hardwareunterstützung ist etwas schwächer als bei Linux. Da es sich um eine weniger beliebte Plattform handelt, müssen nicht so viele Leute um Hilfe bitten, wenn Sie auf Probleme stoßen.

Ein Array mit vielen Terabyte Speicherplatz zeigt jedoch wirklich, wozu ZFS gut ist. Es lohnt sich, ernsthaft darüber nachzudenken, ob Sie bereit sind, in etwas Neues einzutauchen. Wenn Sie echte Backup-Paranoia untersuchen möchten, erstellen Sie Linux- und FreeBSD-Backup-Server, um die Wahrscheinlichkeit von Betriebssystemfehlern als einzelne Fehlerursache zu verringern.

Greg Smith
quelle
Ich habe bereits Linux als Dateiserver und muss es noch wirklich verwenden (ich habe nur einige Tests der Software RAID-6 + LUKS auf 6 Festplatten begonnen). Das einzige Problem ist, dass ich sehr wenig Zeit habe, damit zu spielen. Ich mag deine Antwort. Was schlagen Sie als Betriebssystem vor, wenn Sie den ZFS-Weg gehen? FreeBSD und opensolaris (nicht mehr gepflegt), OpenIndiana (OpenSolaris opensource, wie ich es gesehen habe) und Solaris Express 11 (Oracle: S) scheinen die einzigen Optionen zu sein. Ich benutze dies nicht bei der Arbeit, es ist mein Hobby zu Hause, aber ich möchte trotzdem etwas Stabiles und das ist auch einfach zu bedienen.
user51166
Ich habe mich wirklich daran gewöhnt, Eignung zu nutzen und aufzutauchen. Mein Verständnis beim Kompilieren / Verwalten / Aktualisieren von Ports in freebsd (cd / usr / ... && make install) ist, dass es einfach nicht "richtig" erscheint (ich hoffe, der Purist wird mir die Verwendung dieses Begriffs verzeihen , aber es scheint mir seltsam, dass, wenn Sie ein Paket aktualisieren möchten, Sie dies tun müssen, keine automatische Auflösung von Abhängigkeiten [Ich habe nur einen kleinen Blick auf das FreeBSD-Handbuch geworfen]). Oder gibt es ein einfaches Paketverwaltungssystem wie das von Debian oder Gentoo?
user51166
Ich weiß bereits, dass ich einfach rsyncieren kann, was ich will oder tar / diff usw., aber ich würde gerne wissen, ob es bereits etwas Praktischeres gibt. Danke
user51166
-1

Laut der Dateisystem-Vergleichsseite von Wikipedia gibt es viele bemerkenswerte Dateisysteme, die Ihren Anforderungen entsprechen, wie JFS, XFS, UDF, ZFS, GPFS und Btrfs. Klicken Sie einfach auf die maximale Dateigröße, um sie zu sortieren, und wählen Sie die am besten geeignete aus

phuclv
quelle