Ich denke darüber nach, ZFS für mein selbstgebautes NAS-Array zu verwenden. Ich hätte 4 Festplatten in raidz auf einem Ubuntu Server 10.04-Rechner.
Ich möchte beim Speichern von Daten die Snapshot-Funktion und Deduplizierung verwenden. Die Geschwindigkeit ist mir nicht so wichtig, da auf die Maschine über ein N-Funknetzwerk zugegriffen wird und dies wahrscheinlich der Engpass sein wird.
Hat also jemand praktische Erfahrung mit zfs-fuse 0.6.9 auf einer solchen (oder einer ähnlichen) Konfiguration?
Antwort1
Ich habe zwei 500-GB-Laufwerke in einem ZFS-Fuse-Mirror-Setup auf meinem Heim-NAS (Debian Lenny). Es läuft jetzt seit fast 6 Monaten und ich hatte keine Probleme. Weitere DetailsHierauf meinem Blog.
Antwort2
Es gibt jetzt einenativer Linux-Portvon ZFS. Ich habe erst vor Kurzem davon erfahren und hatte daher noch keine Gelegenheit, es zu testen. Es wird jedoch aktiv weiterentwickelt, was ein gutes Zeichen ist. Es ist wahrscheinlich einen Versuch wert, solange Sie sich nicht davor scheuen, das Kernelmodul und die Tools selbst kompilieren zu müssen.
Wenn Sie es zum Laufen bringen, wird es zweifellos eine viel bessere Leistung erbringen als zfs-fuse.
Antwort3
Ich weiß, dass dieser Thread uralt ist, aber seitdem hat sich einiges geändert. (Zum Beispiel der Status von ZFS-FUSE und In-Kernel-Optionen, das fragwürdige Verschwinden von „Open“ Solaris usw.)
Zunächst einmal wird der Kernel-Port von ZFS nichtNotwendigviel besser als ZFS-FUSE, „ohne Zweifel“. Diese Antwort scheint das weit verbreitete Missverständnis zu wiederholen, dass FUSE-Dateisysteme immer schlechter abschneiden als Kernel-Dateisysteme. (Falls Sie es noch nicht wissen, kurz gesagt: Theoretisch schneiden Kernel-Dateisysteme besser ab, wenn alles andere gleich ist. Aber es gibt viele andere Faktoren, die die Leistung beeinflussen und die größere Auswirkungen haben als Kernel vs. Benutzerspeicher.) Bei ZFS-FUSE scheint es laut Benchmarks jedoch in einigen Fällen deutlich langsamer zu sein als natives ZFS (oder BTRFS). Für meine Zwecke ist es jedoch in Ordnung.
Ubuntu verfügt nun über ein „ubuntu-zfs“-Paket über sein PPA-Repository-System, das lediglich eine nette Verpackung und automatische Modulerstellung des nativen zfs-on-linux-Projekts darstellt. Es läuft im Kernel-Space und unterstützt derzeit eine höhere Zpool-Version als zfs-fuse.
Früher habe ich OpenSolaris auf einem großen redundanten 20-TB-Server verwendet und verwende jetzt Oracle Solaris 11 darauf. Solaris hat einige erhebliche Probleme und Herausforderungen (insbesondere, wenn Sie mit der Konfiguration und Verwaltung von Linux und nicht mit dem alten UNIX vertraut sind) und viele der Hardwareverwaltungs- und anderen Konfigurationsschnittstellen wurden zwischen Betriebssystemversionen und sogar Updates drastisch geändert, was es zu einem oft sehr frustrierenden Ziel macht (selbst wenn man eine Version endlich beherrscht, bevor man auf die nächste aktualisiert). Aber mit der richtigen (kompatiblen) Hardware und viel Geduld für Änderungen, Lernen und Optimieren kann es in Bezug auf das Dateisystem eine erstaunliche Wahl sein.
Noch ein Ratschlag: Verwenden Sie nicht die integrierte CIFS-Unterstützung. Verwenden Sie Samba. Die integrierte Unterstützung ist defekt und wird möglicherweise nie einsatzbereit sein. Als ich das letzte Mal nachgesehen habe, gab es viele Unternehmensinstallationen mit Samba, aber keine einzige mit CIFS, da die Berechtigungsverwaltung ein Albtraum war.
Ich verwende ZFS-FUSE auch täglich unter Ubuntu (auf meiner persönlichen Workstation) und finde, dass es absolut zuverlässig und eine großartige Lösung ist. Die einzigen Probleme, die mir speziell bei ZFS-FUSE einfallen, sind:
Sie können den ZIL (Schreibcache) nicht deaktivieren, zumindest nicht, ohne ein Flag im Quellcode zu setzen und sich selbst zu kompilieren. Übrigens – entgegen einer weit verbreiteten Fehleinschätzung führt das Deaktivieren des ZIL nicht dazu, dass Sie Ihren Pool bei einem Absturz verlieren. Sie verlieren lediglich, was zu diesem Zeitpunkt geschrieben wurde. Das ist nicht anders als bei den meisten Dateisystemen. Es ist möglicherweise nicht ideal für viele unternehmenskritische Serverszenarien (in diesem Fall sollten Sie wahrscheinlich ohnehin natives Oracle Solaris verwenden), aber es ist normalerweise ein sehr lohnender Kompromiss für die meisten Workstation-/persönlichen Anwendungsfälle. Bei einer kleinen Konfiguration kann der ZIL ein großes Problem bei der Schreibleistung darstellen, da der Cache standardmäßig auf den Pool selbst verteilt ist – was besonders bei einer Parity-Stripe-Konfiguration (RAIDZx) ziemlich langsam sein kann. Unter Oracle Solaris ist das Deaktivieren einfach, ich glaube, es ist die „Sync“-Eigenschaft des Pools, wenn ich mich recht entsinne. (Ich weiß nicht, ob es in der nativen Linux-Kernel-Version einfach deaktiviert werden kann.)
Auch bei ZFS-FUSE ist die Zpool-Version nicht hoch genug, um die besseren Pool-Wiederherstellungsoptionen neuerer Versionen zu unterstützen. Seien Sie also vorsichtig, wenn Sie sich dazu entschließen, den Schreibcache beispielsweise auf eine oder mehrere SSDs oder RAM-Laufwerke auszulagern. (Und spiegeln Sie ihn immer!) Wenn Sie das ZIL verlieren, haben Sie mit ziemlicher Sicherheit auch Ihren gesamten Pool verloren. (Das ist mir damals mit OpenSolaris auf katastrophale Weise passiert.) Neuere Zpool-Versionen auf Oracle Solaris haben dieses Problem gemildert. Ich kann anscheinend nicht feststellen, ob der Linux-Port auf Kernelebene diese Milderung integriert hat oder nicht.
Außerdem können Sie den Alarm „ZFS ARC-Bug“ getrost ignorieren, mit dem dieser Typ die Diskussionen zugespammt zu haben schien. Mein Server wird stark beansprucht, wie unzählige Produktionsserver auf der ganzen Welt, und ich habe das noch nie erlebt.
Persönlich mag ich Solaris zwar überhaupt nicht, aber ZFS ist einfach großartig, und jetzt, da ich mich an seine Funktionen gewöhnt habe, kann ich nicht mehr ohne. Ich verwende es sogar auf Windows-Notebooks. (Über eine komplexe, aber sehr zuverlässige Virtualisierungslösung und USB-Laufwerke, die mit Klettverschluss am Deckel befestigt sind.)
Bearbeiten: Einige kleinere Änderungen zur Verbesserung der Klarheit, Relevanz und unter Berücksichtigung der Leistungseinschränkungen von ZFS-FUSE.
Antwort4
Ich habe ZFS-FUSE fast ein Jahr lang ohne Probleme unter Ubuntu ausgeführt, bevor ich den Pool auf OpenSolaris migriert habe. Allerdings übersteigt der Speicherbedarf für Dedup auf einem Pool mit mehreren TB wahrscheinlich den Speicher Ihres Linux-Heimservers. Die Deduplizierungsleistung ist schrecklich, sobald Ihre Deduplizierungstabellen aus ARC (Primary Memory Cache) überlaufen, es sei denn, Sie haben eine SSD für L2ARC, um sie jederzeit verfügbar zu halten. Ohne die Deduplizierungstabellen im Speicher können einige Vorgänge unglaublich langsam werden (Löschen von Dateiverzeichnissen, Löschen von Snapshots usw.). Snapshots können ohne Deduplizierung funktionieren und haben selbst fast keinen Overhead. Wenn Sie also nicht viel Redundanz speichern und 8-16 GB RAM und/oder eine SSD zur Lösung des Problems haben, würde ich auf Deduplizierung verzichten.