Von FreeBSD zu OpenBSD – softdep-Entfernung: Wirklich ein Problem?

kraekers

Well-Known Member
Hallo zusammen,

nach Jahren mit FreeBSD auf meinen Servern möchte ich den Wechsel zu OpenBSD wagen. Der Grund ist eigentlich simpel: Ich mag OpenBSD, schätze die Schlankheit des Systems und seine Philosophie – und manchmal braucht es keinen tieferen Grund als „ich will das einfach nutzen".

Nun bin ich bei meiner Recherche auf einiges an Unruhe in englischsprachigen Foren gestoßen: Die Entfernung von Soft Dependencies (softdep) aus dem FFS-Dateisystem wird dort teilweise dramatisch kommentiert. Von „nicht mehr praxistauglich" bis hin zu „Ritt auf der Kanonenkugel" ist alles dabei – verbunden mit dem Vorwurf, es fehle schlicht die Manpower, das Dateisystem ordentlich weiterzupflegen.

Mich würde eure Einschätzung dazu interessieren, gerade von Leuten, die OpenBSD produktiv betreiben:

  • Wie gravierend ist die softdep-Entfernung im Alltag wirklich?
  • Habt ihr messbare Performance-Einbußen festgestellt, oder ist das vor allem bei bestimmten Workloads relevant?
  • Welche Dateisystem-Strategie fahrt ihr auf euren OpenBSD-Servern (z.B. MFS für /tmp, separate Partitionen, SSD-spezifische Überlegungen)?
Ich bin mir bewusst, dass OpenBSD kein FreeBSD ist und andere Prioritäten setzt – Sicherheit und Codequalität stehen dort traditionell vor roher Performance. Aber der Ton in manchen Threads klingt, als wäre das System für Serverbetrieb grundsätzlich disqualifiziert, was mir übertrieben erscheint.

Freue mich auf sachliche Einschätzungen aus der Praxis.

Danke und viele Grüße

Kraekers
 
hi

mir ist nicht signifikantes bezüglich dem wegfall von softdep aufgefallen, aber das muss nichts
bedieuten weil platten performance für mich nicht wichtig sind .

openbsd nutzte ich primär für netzwerk / security aufgaben.

Holger
 
Hallo zusammen,

nach Jahren mit FreeBSD auf meinen Servern möchte ich den Wechsel zu OpenBSD wagen. Der Grund ist eigentlich simpel: Ich mag OpenBSD, schätze die Schlankheit des Systems und seine Philosophie – und manchmal braucht es keinen tieferen Grund als „ich will das einfach nutzen".

Nun bin ich bei meiner Recherche auf einiges an Unruhe in englischsprachigen Foren gestoßen: Die Entfernung von Soft Dependencies (softdep) aus dem FFS-Dateisystem wird dort teilweise dramatisch kommentiert. Von „nicht mehr praxistauglich" bis hin zu „Ritt auf der Kanonenkugel" ist alles dabei – verbunden mit dem Vorwurf, es fehle schlicht die Manpower, das Dateisystem ordentlich weiterzupflegen.

Mich würde eure Einschätzung dazu interessieren, gerade von Leuten, die OpenBSD produktiv betreiben:

  • Wie gravierend ist die softdep-Entfernung im Alltag wirklich?
  • Habt ihr messbare Performance-Einbußen festgestellt, oder ist das vor allem bei bestimmten Workloads relevant?
  • Welche Dateisystem-Strategie fahrt ihr auf euren OpenBSD-Servern (z.B. MFS für /tmp, separate Partitionen, SSD-spezifische Überlegungen)?
Ich bin mir bewusst, dass OpenBSD kein FreeBSD ist und andere Prioritäten setzt – Sicherheit und Codequalität stehen dort traditionell vor roher Performance. Aber der Ton in manchen Threads klingt, als wäre das System für Serverbetrieb grundsätzlich disqualifiziert, was mir übertrieben erscheint.

Freue mich auf sachliche Einschätzungen aus der Praxis.

Danke und viele Grüße

Kraekers

Also ich hab nur den Vergleich ZFS-Linux und EXT4 Linux vs. OpenBSD FFS und OpenBSD ist da schon nen eckchen langsamer.
Quantifizieren kann ich das aber nicht, das ist eine gefühlte Wahrheit und hängt auch sicher immer ein Stückchen vom Workload ab.

Was man nicht unterschlagen sollte, das OpenBSD mit FFS benötigt zwangsweise nen fsck_ffs bei nicht sauberen herunterfahren - zb nen Kernelcrash oder nach nem Stromausfall.
Dieser braucht dann manchmal einen händischen Eingriff (z.B. bestätigen diverser Fehler) oder sogar ein manueller Boot des RD-Kernels um dann fsck_ffs mit zusätzlichen Optionen, teilweise dann auch sehr langwierig, laufen zu lassen.

Das ist einer der wenigen Punkte wo ich den Entwicklern auf den Mailinglisten auch nicht zustimme - in der Praxis hat man mit ZFS/EXT4(ua) einfach nicht so viele Probleme, auch wenn die Entwickler sich da 5x um sich selbst kreisen und sagen das FFS wäre viel zuverlässiger.
Das mag auf dem Papier sein, aber nicht in meiner Praxis.
TBF - auf perfekt funktionierenden System kommt das natürlich so gut wie nie vor. Bei meinen Desktop-Test-Thinkpad musste ich da zb noch nie durch.
 
Zuletzt bearbeitet:
softdep war meines Wissens nach nur interessant fuer Partitionen, auf denen man viel und haeufig auf die Platte geschrieben hat, wie z.B. /home oder der cvs source tree. Ich persoenlich habe allerdings keinen Unterschied gemerkt zwischen softdep und kein softdep. Ich lese aber auch oefter Dateien als dass ich sie schreibe. softdep durfte auch nicht auf Partitionen verwendet werden, auf welchen KARL (Kernel Address Randomized Link) verwendet wurden.
 
Also ich kann jetzt keine praktischen Erfahrungen vorweisen. Aber man kann sich ja zunächst mal anschauen, was softdep überhaupt macht, um dann zumindest ein bisschen einschätzen zu können wie "schlimm" ist das nicht zu haben.

Die Manpage von mount(8) (aus OpenBSD 7.4) sagt folgendes dazu:
Mount the file system using soft dependencies. Instead of metadata being written immediately, it is written in an ordered fashion to keep the on-disk state of the file system consistent. This results in significant speedups for file create/delete operations.
Zudem ist nosoftdep der default (wer also in der /etc/fstab nix angegeben hat, nutzt softdep eh nicht).

Deren Wegfall klingt vielleicht sogar etwas harmloser als man intuitiv denkt. Man darf aber nicht vergessen, das "create" auch häufig beim speichern passiert.
Dennoch sollte man das nicht überbewerten. Ein spürbaren Impact hat es vermutlich eher, wenn man massenhaft Dateien löscht bzw. erzeugt.

Und man darf nicht vergessen, das die Situation bei SSDs noch mal entspannter aussehen kann, da hier die Kopfbewegungen einer mechanischen Festplatte wegfallen und auch etwaige Fragmentierungseffekte nicht mehr so ins Gewicht fallen.

btw. ab OpenBSD 7.5 steht zu softdep in der Manpage noch noch:
Mount an FFS file system using soft dependencies. This option is only supported for compatibility and has no effect on OpenBSD.
daher frag ich mich gerade, ob die das überhaupt noch haben (oder es jetzt per default immer und unausschaltbar an war; was ich aber nicht glaube)
 
Zuletzt bearbeitet:
Ich hab nie softdep verwendet, mein vergleich war ausschließlich auf die FreeBSD vs OpenBSD Filesystemperformance bezogen
 
daher frag ich mich gerade, ob die das überhaupt noch haben (oder es jetzt per default immer und unausschaltbar an war; was ich aber nicht glaube)
softdep wurde in OpenBSD 7.4 entfernt. Wenn man diese Option bei neueren OpenBSD-Versionen verwendet, hat diese keine Effekt mehr. Ein grosses Problem war damals, dass softdep ein ziemlicher hack im vfs war und durch diese Option war vfs nur sehr schwer zu erweitern. Daher und im Hinblick auf die Zukunft des Dateisystems wurde softdep entfernt.
 
Wie gravierend ist die softdep-Entfernung im Alltag wirklich?

Ich darf mich selber zitieren: Ich habe auch schon mehr als einmal mein OpenBSD-System aus dem Backup wiederherstellen müssen, weil ein Stromausfall oder eine Kernel-Panic das komplette Dateisystem gekillt hat, so dass auch ein manueller fsck nicht mehr geholfen hat.

Habt ihr messbare Performance-Einbußen festgestellt, oder ist das vor allem bei bestimmten Workloads relevant?

Die softdep-Entfernung betrifft vor allem die Performance bei HDDs. Die nutzt man sowieso nur noch als Datengrab, bei denen die Performance eher egal ist.

Wenn du Anwendungen auf SSD hast, bei denen die Performance kriegsentscheidend ist, nutzt du sowieso kein OpenBSD.

Welche Dateisystem-Strategie fahrt ihr auf euren OpenBSD-Servern (z.B. MFS für /tmp, separate Partitionen, SSD-spezifische Überlegungen)?

MFS für /tmp ist ein ziemlicher Mist, weil es - egal wie wenig Dateien in /tmp liegen - den gesamten zugewiesenen RAM beansprucht.

SSDs sind heute auch robust genug, dass man /tmp bedenkenlos auf der SSD lassen kann. Vernünftigerweise hat man aber einfach ein Betriebssystem mit funktionierendem tmpfs.

Ansonsten ist das Default-Layout von OpenBSD mein Mittel der Wahl (wobei ich auf Servern /var eher größer dimensioniere). Das deckt schon die Vorteile von OpenBSDs mount options ab.

Man darf nicht vergessen, dass die Vielzahl der Partitionen auch aus einer Zeit stammt, in der es HDDs nur in zu klein und viel zu klein gab. Man brauchte viele davon, nur um das nackte Betriebssystem zu betreiben - von Anwendungen ganz zu schweigen.

Ich bin mir bewusst, dass OpenBSD kein FreeBSD ist und andere Prioritäten setzt – Sicherheit und Codequalität stehen dort traditionell vor roher Performance.

Die Performance ist noch nicht einmal das Problem. In den meisten Fällen kommt es ja auf ein paar Prozent mehr oder weniger nicht an.

Aber der Ton in manchen Threads klingt, als wäre das System für Serverbetrieb grundsätzlich disqualifiziert, was mir übertrieben erscheint.

Willst du auf ein Betriebssystem auf dem Server setzen, bei dem Datenverlust bei eigentlich trivialen Ereignissen (Stromausfall) zum Alltag gehört? Bei dem es normal ist, dass ein Server nach einem Stromausfall (oder einem hartem Reset) nicht mehr startet, weil die Integrität des Dateisystems nicht gewährleistet ist?

Im Jahre 2026 würde ich nur noch auf Dateisysteme setzen, die entweder Journaling oder Copy on Write beherrschen. Alles andere bettelt gerade zu nach Ärger.

Freue mich auf sachliche Einschätzungen aus der Praxis.

OpenBSD hat brilliante Aspekte und Tools. Das ändert aber nichts daran, das es u.a. obige Unzulänglichkeiten für viele Einsatzzwecke völlig disqualifizieren (Ausnahmen bestätigen die Regel).
 
Moin zusammen,
ich glaube FFS ist mir doch ein wenig zu heiß, vor allem ohne USV. Die ganzen Features von ZFS benötige ich eigentlich nicht, höre aber heraus, dass auch schon eine Standardinstallation mit ZFS wohl seine Vorteile bringt. Der Reiz für OpenBSD ist jedoch da. Ich danke Euch allen für die netten Ausführungen.

Beste Grüße
kraekers
 
Das Problem ist nicht unbedingt das Dateisystem, sondern das alte Drama mit lügender Konsumerhardware. Wobei das über Jahre deutlich besser geworden ist. Um etwas auszuholen muss die Software davon ausgehen, dass das System jederzeit crashen kann. Durch Programmfehler und damit Absturz, durch gekippte Bits aufgrund von einem Alpha-Teilchen zur falschen Zeit am falschen Ort, durch Stromausfall und so weiter. Daher muss der Zustand der Daten auf dem Speichermedium jederzeit konsistent sein. Dem steht allerdings im Weg, dass sich zwischen der Daten schreibenden Anwendung und dem Speichermedium mehrere Caches (Dateisystemcache des Kernels, eventuell ein Cache des Controllers, interner Cache der Festplatte oder der SSD, bei SSDs noch Zuordnungstabellen, etc.) und andere Magie (als Beispiel NCQ bei Festplatten, was ATA- und SCSI-Befehle umordnen kann) befinden.

Der einfachste Weg Konsistenz sicher zu stellen ist synchrones Schreiben. Das ist das, was OpenBSD mit FFS macht. Einfach gesagt schickt man jeder Schreiboperation, die Metadaten verändert, ein Cache Flush hinterher. Damit ergibt sich ein minimales Zeitfenster zwischen Schreiben der Metadaten und dem Cache Flush, in dem das Dateisystem inkonsistent ist. Das lässt noch weiter minimieren, indem man erst Daten und das Metadaten schreibt. Ein fsck kann nach dem Crash halb geschriebene Metadaten wegräumen. Das funktioniert an sich gut, hat allerdings den Nachteil, dass es die Caches aushebelt. Das tut ziemlich weh, je langsamer das Speichermedium ist, umso mehr. Daher wollte man eigentlich immer vom Synchronen schreiben weg.

Linux experimentierte in den 90ern mit asynchronem Schreiben, also keine Rücksicht auf Caches zu nehmen. extfs und ext2fs (algorithmisch letztendlich vereinfachte Implementierungen von Kirk McKusiks Paper zu FFS) waren die beiden Dateisysteme, die es taten. Man versucht halbwegs geordnet in recht simple Datenstrukturen zu schreiben und hofft, es nach dem Crash durch fsck aufräumen zu können. Das funktionierte nicht, bei ext2fs hieß ein Crash in den 90ern das Backup rauszuholen zu müssen.

Danach ging man bei Linux zu Journaling über und bei FreeBSD zu Soft Updates. Da die Mechaniken zum großen Teil im VFS, also dem Abstraktionslayer zwischen Dateisystem und Kernel implementiert werden müssen, war das eine Richtungsentscheidung. Nachdem Linux mit XFS die Strukturen für Journaling geschaffen hatte, war es der Weg, den alle darauffolgenden Dateisysteme wie ext3, ext4 und eine ganze Reihe exotischerer Vertreter gingen. Diese Strukturen sind unter anderem Filter, die Daten von Metadaten trennen und Write Barriers, die Sicherstellen, dass Reihenfolgen eingehalten werden. Die Idee hinter Journaling ist, dass man erst eine Undo-Redo-Log ins Journal schreibt. Dann die Daten und zum Schluss die Metadaten. Nach einem Crash kann man anhand der Undo-Redo-Log, also dem Journal, nachvollziehen, was hätte gemacht werden sollen. Das wird mit dem Ist-Zustand abgeglichen und daraus ein konsistenter Zustand erstellt.

Soft Updates sind konzeptionell ähnlich, kommen aber ohne Undo-Redo-Log aus. Man filtert den Datenstrom durch, schreibt erst die Daten aus, sammelt parallel dazu die Metadaten und schreibt diese am Ende in einer Operation synchron aus. Damit sind die Metadaten immer synchron, geschriebene aber nicht in den Metadaten abgebildete Daten sind nach einem Crash verloren.

Etwas später, Mitte der 2000er, kam das ZFS mit einem ganz anderen Ansatz. Es ist Copy on Write, überschreibt also niemals Daten. Stattdessen wird in Transaktionen gedacht. Es wird immer ein neuer Datensatz geschrieben und dieser nach dem Schreiben aktuell gesetzt. Sind die Daten geschrieben, aber noch nicht aktuell gesetzt, sind sie nach einem Crash verloren. Sobald sie aktuell gesetzt sind, sind sie sicher ausgeschrieben. Sollte, aus welchen Gründen auch immer, die letzte Transaktion auf dem Speichermedium inkonsistent sein, kann man in der Transaktionshistorie zurückgehen und einen älteren Zustand wiederherstellen.

Um zum Ausgangsproblem zurückzukommen, sind alle diese Methoden darauf angewiesen, dass die Hardware die Wahrheit sagt. Also das ein Cache Flush Dinge auch wirklich auf allen Ebenen der Kette ausschreibt und nicht nur "Ja klar hab ich ausgeschrieben, trust me Bro!" behauptet. Denn in dem Moment geht die Software davon aus, dass ausgeschrieben wurde, was die Hardware nicht hat. Früher war das echt die Pest. Ich und viele andere hatten Generationen von Konsumerhardware, die gerne mal aus dem Grund Dateisysteme zerschredderte. Linux machte sich viel Mühe drum herum zu werkeln, die BSDs sahen es eher nicht so ein. Irgendwann, vor allem durch Druck von Microsoft, wurd es besser. Im Moment sind vor allem einige SSDs das Problem, die ihre Zuordnungstabellen im Cache halten und um ein paar Cent zu sparen keinen Stützkondensator haben, sodass sie Falle eines Stromausfalls oder harten Ausschaltens Daten verlieren.

Lange Rede, kurzer Sinn: Lügende Hardware wird auf jedem Betriebssystem mit jedem Dateisystem Ärger machen. Es fragt sich nur wie viel. Ob die eigene Hardware lügt, weiß man im Zweifel erst hinterher. Dafür gibt es Backups, die man immer, völlig unabhängig von Hardware und Software, dem Betriebssystem, dem Dateisystem und der Mondphase haben sollte.

Mit Überlegungen, welches Betriebsystem oder Dateisystem da besser ist, würde ich gar nicht erst anfangen. Vor allem führt das immer zu Fragen um Pest und Cholera. Als Beispiel ist die ganze FFS- und UFS-Familie recht simplel aufgebaut. Es sind lineare Strukturen, man kann einfach ausrechnen, wo die Daten liegen und sie auslesen. Tools wie ffs2recov machen das automatisch, mit Debuggern wie fsdb kann man es manuell machen. Es ist daher fast unmöglich in letzter Konsequenz auf FFS oder UFS Daten zu verlieren. Allerdings haben die Dateisysteme keinen Mechanismus die Konsistenz der Daten zu garantieren. ZFS kann das wiederum, aber erkauft es sich mit deutlich höherer Komplexität. Da heißt kaputt meist auch tatsächlich kaputt. Lässt ein Pool sich nicht mehr öffnen, sind die Daten weg. Was darf es also sein? Wiederherstellbare Daten ohne Garantie, dass die wiederhergestellten Daten auch wirklich konsistent sind oder doch lieber garantiert konsistente Daten, die im Zweifel verloren sind? Ist beides blöd. Also einfach Backups machen und nicht allzu viele Gedanken an die Robustheit des Dateisystems verschwenden.
 
Wow, klasse, ich danke Dir Yamagi für den ausführlichen Beitrag. Du hast natürlich recht, egal ob es um Updates, Migrationen, neue Software oder einfach den täglichen Betrieb geht – ein aktuelles, getestetes Backup ist die Lebensversicherung für Daten.

Beste Grüße
kraekers
 
Was man Dateisystemen wie ZFS noch zugute halten kann, das die Blockprüfsummen haben. Und man dann zumindest merkt, wenn an der Stelle durch was auch immer mal was schiefgegangen ist.

Denn man kriegt ja unter Umständen Fehler auch nicht mit und dann backupt man zwar, aber kaputte Daten.

Und klar. Auch das kriegt nicht alle Probleme, aber verbessert die Erkennungschancen.
 
Ich glaube worauf @Azazyel und auch ich ein bisschen hinauswollen, sind zwei sachen die etwas ineinander greifen.

Erstens - Absturzhäufigkeit
OpenBSD ist nicht das verzeihenste Betriebsystem bei Hard oder Softwarefehlern - aka: Es stürzt öfters ab als ein Linux (und ich vermute auch FreeBSD, da fehlt mir die Erfahrung) bei ähnlichen Workload und gleicher Hardware. Natürlich nicht random, da steckt schon irgend ein Problem meist hinter, oft ist es schrottige Hardware, vereinzelnd aber auch z.B. ein Treiberproblem - OpenBSD ist kleiner und dadurch auch etwas schlechter vertestet mit weniger Entwicklerressourcen.
(Das soll nicht so klingen das OpenBSD ständig irgendwie abstürzt - weder auf meinen Thinkpad im Desktopmodus noch auf meinem QOTOM Router war das der fall z.B. - das lief beides über Jahre problemfrei z.B. - wenn es sehr wenige panics z.B. mal gab hab ich die verdrängt)

Aber ganz ohne dies kann man ja z.B. mal nen Stromausfall haben, gerade son Router im Privathaushalt ohne USV ist da natülrich ein Ziel.

Zweitens - oft gelingt kein automatisches Recovery

Egal aus welchen Grund, ist ein Problem da startet OpenBSD beim Boot - wie vermutlich jedes Betriebsystem - einen automatischen fsck_ffs und versucht die Dateisysteme wieder in einen vernünftigen Zustand zu bringen. Leider sind die einstellungen beim Boot bei diesem aufruf sehr "soft" eingestellt (und AFAIK auch nicht leicht änderbar). In vielen fällen bedeutet dies, das der Fehler nicht behoben wird und wenn es eine boot relevante Partition ist das der Boot halt scheitert.
Einzige Option: Neustarten, den bsd.rd laden und dann manuell die Partitionen einmal durchchecken.
Bei einem Desktop kein Problem, aber bei einem Gerät das z.B. unter der Kellertreppe als Router hängt ohne Bildschirm in der nähe oder einem Server der irgendwie nicht gut erreichbar ist, ist das super nerfig.
Klar mag das mit ZFS oder ext4 mit journaling auch mal vereizelnt nötig sein, aber ich hatte das mit ner etwas buggigen Hardware teilweise mehrfach pro Woche.
Nicht jedesmal ist das aber mit den normalen Optionen erfolgreich. Dann hilft es oft aber noch mit zusätzlichen Optionen den fsck zu starten und hier hatte ich anders als @Azazyel bislang immer Glück und keinen Datenverlust - aber bei ner 4TB HDD hat das schon mal 10 Stunden gedauert (Andererseits betreibe ich OpenBSD nur im privaten Rahmen, evtl. wäre ich bei beruflicher nutzung auch noch über mehr probleme gestolpert.

Eigentlich braucht man schon fast zwangsweise irgendeine Remote-Zugriffsmöglichkeit bei Headless systemen.

Privat betreibe ich inzwischen produktiv vor allem noch den OpenBSD Router, und der liegt in einer qemu-vm so das ich die probleme einfach mitigieren kann. Es gab verschiedene gründe für mich bei den meisten anderen privaten Serverzeugs auf Linux zu wechseln, aber die genannten Probleme waren ein (wenn auch kleiner) Teil davon.

Bitte versteht das nicht als "rant" oder das ich OpenBSD komplett blöd finde, ganz im gegenteil, ich mag weiterhin OpenBSD sehr sehr gerne als Betriebsystem, bin villeicht auch kleiner "fan" - aber gerade dann sollte man vorhandene Probleme auch ehrlich bennen.

Und zum schluss wie die vorredner: Egal welche OS und Filesystem, ein sehr gutes, sehr durchdachtes Backup war immer und ist immer das a und o.
 
Leider sind die einstellungen beim Boot bei diesem aufruf sehr "soft" eingestellt
Als Ergänzung an der Stelle:
Das kann bei FreeBSD durchaus auch passieren.
Da kann es helfen in der /etc/rc.conf
fsck_y_enable="YES"
zu setzen. siehe auch rc.conf(5)

btw.: Wenn man mehrere Partitionen hat, kanns dann durchaus sinnvoll sein die readonly zu mounten und dann nur für Update/Maintaince auf rw zu setzen.
Also insbesondere, wenn es ein Gerät ist was einfach laufen soll und auch vielleicht nicht so leicht zugänglich ist (wie Du ja beschreibst).

sehr durchdachtes Backup war immer und ist immer das a und o.
Wie ich immer sage: Echte Kerle backuppen auf RAM-Disk. ;-)
 
btw.: Wenn man mehrere Partitionen hat, kanns dann durchaus sinnvoll sein die readonly zu mounten und dann nur für Update/Maintaince auf rw zu setzen.
Also insbesondere, wenn es ein Gerät ist was einfach laufen soll und auch vielleicht nicht so leicht zugänglich ist (wie Du ja beschreibst).

Shoot, das wollte ich eigentlich auch noch schreiben das man damit je-nach-dem experimentieren könnte in solchen Umgebungen um das Bootproblem zumindest zu lösen.
Villeicht mache ich das mal spaßeshalber.
 
Was man Dateisystemen wie ZFS noch zugute halten kann, das die Blockprüfsummen haben. Und man dann zumindest merkt, wenn an der Stelle durch was auch immer mal was schiefgegangen ist

Korrekt. Ich will jederzeit wissen, ob ich im Zweifelsfalle ein Problem habe und es nicht auf die harte Tour herausfinden (d.h. ich nutze lieber ZFS oder btrfs und mit Einschränkungen ein paar andere Dateisysteme).

Ich habe das Zitat etwas gekürzt (Auslassungen von mir):
Ich glaube worauf @Azazyel und auch ich ein bisschen hinauswollen, sind zwei sachen die etwas ineinander greifen.
[...]
Erstens - Absturzhäufigkeit
[...]
Zweitens - oft gelingt kein automatisches Recovery

Gut erkannt. Mit der Absturzhäufigkeit kann ich noch leben (ich gehe sowieso davon aus, dass jeder Teil meiner Infrastruktur jederzeit ausfallen kann). Der häufig notwendige manuelle Eingriff ist aus meiner Sicht inakzeptabel, speziell bei einem Server.

btw.: Wenn man mehrere Partitionen hat, kanns dann durchaus sinnvoll sein die readonly zu mounten und dann nur für Update/Maintaince auf rw zu setzen.

Das klingt nach einem hässlichen Workaround, weil OpenBSD kein zeitgemäßes Dateisystem hat. :(

Vorallem weil man damit ja auch lange fsck-Zeiten vermeiden kann. Man muss sich ja dann nur um /etc, /var, /home und /root kümmern. Und die macht man dann idealerweise auch nicht größer als nötig.

Womit man dann Probleme kriegt, wenn man auf den Partitionen doch mehr Platz als gedacht braucht. Es wird Zeit, dass OpenBSD endlich ZFS integriert. :)
 
Zuletzt bearbeitet:
Das klingt nach einem hässlichen Workaround, weil OpenBSD kein zeitgemäßes Dateisystem hat.
Jaein.
Hardwaredefekte oder Stromausfälle und ähnliches gefallen kein Dateisystem wirklich gut.
Zudem ist so ein readonly-Mount ja auch eine wirksame Sicherheitsmaßnahme.

Womit man dann Probleme kriegt, wenn man auf den Partitionen doch mehr Platz als gedacht braucht.
Gut. Das kann man sich ja vorher überlegen ob der Fall fürs eigene Szenario vorkommt.
Jemand der OpenBSD einsetzt und auch gezielt selber partitioniert dem trau ich das auch durchaus zu. :-)

Es wird Zeit, dass OpenBSD endlich ZFS integriert.
Das insinuiert so ein bisschen, das dies eine gewollte Entscheidung ist.

Und möglicherweise ist das auch zum Teil so, weil ZFS ist schon ziemlich groß und umfangreich und das verträgt sich dann nicht mit der Philosophie ein einfaches System zu haben.

Aber es dürfte auch ein relativ großer Aufwand sein ZFS in OpenBSD zu integrieren. Und die Manpower hat man nicht oder will sie zumindest nicht dafür aufbringen weils genug andere Baustellen gibt.
Ich denk mal, wenn Du mit einem 10-Mann-Team anrückst und sagst: "Wir kümmern uns jetzt mal darum" dann wird sich kaum einer ernsthaft dagegen wehren.
 
es ist vor allem ein Lizenzproblem:
OpenZFS müsste unter was (mit OpenBSD) kompatibleren als der CDDL lizenziert werden, um in OpenBSD integriert werden zu können - sagte meine ich der gute Ted Unangst (finde grad wie üblich auf die Schnelle keine Quelle mehr dazu im Netz)
 
kompatibleren als der CDDL lizenziert werden, um in OpenBSD integriert werden zu können
Wobei ja OpenBSD eine BSD-artige Lizenz hat und das sicher keine Probleme mit der CDDL gibt.
Wenn, dann wäre es ja höchstens der Aspekt, das man sich keine Lizenz wie die CDDL ins Projekt reinziehen will, weil zu die zu komplex und vielleicht auch an der ein oder anderen Stelle Einschränkungen hat, mit denen man nicht Leben will.

Das wäre also eher ein Politikum und keine rechtliche Einschränkung.
 
Die ganze Debatte ist doch rein akademisch. Es hat FreeBSDs Entwickler viele Jahre gekostet, bis ZFS so weit in das System integriert war, dass es in jeder Situation performant und stabil läuft. FreeBSD hatte dabei den Vorteil, dass es beide Seiten kontrollierte. Also das Dateisystem und den zugrundeliegenden Kernel. Für die ZFS on Linux Entwickler war es noch ein viel größerer Kampf, da sie gegen einen ihren Bemühungen gegenüber tendenziell feindlich eingestellten Kernel kämpfen mussten und zum Teil immer noch müssen... Für beide Systeme reden wir hier von einem Aufwand im Bereich mehrerer Mannjahr, die sich nur mit massiver kommerzieller Unterstützung in Form von Entwicklerzeit oder zumindest Geld stemmen lassen. Das ist für OpenBSD und andere Projekte schlicht unerreichbar. Das sieht man auch gut an anderen, in Sachen Ressourcen ähnlich aufgestellten Systemen, wo ZFS bestenfalls halbherzig integriert wurde und nie annähern Produktionsreife erreicht hat.

Und selbst wenn man ZFS hinbekommt, ist es damit ja nicht getan. Man will dann auch entsprechende Hardware nutzen können und das bedeutet Millionen IOPS. Ich weiß ungefähr, wie viel Arbeit darein geflossen ist, FreeBSD in diese Dimensionen zu treten. Dabei hat man sich den wirklich geilen Kram wie ein Äquivalent zu Linux io_uring als generelles Framework für asynchrones I/O wohlweislich gespart, bzw. an ein Sponsoring, was bisher nicht kam gekoppelt und sich stattdessen auf klassisches AIO konzentriert. Nicht ganz so geil, aber aus Manpower-Sicht wesentlich handhabbarer. OpenBSD hat im Moment nicht mal die notwendigen Abstraktionslayer äquivalent zu FreeBSDs CAM oder GEOM, um überhaupt anfangen zu können.

Aber auch wenn man das alles implementieren würde. Schnelles I/O ist paralleles I/O und das ist ein Hirnfick vor dem Herren. Massiv, extrem, unendlich, unvorstellbar fehleranfällig. Man muss nur mal schauen, wie viele sicherheitsrelevante Fehler über die Jahre alleine in FreeBSDs und Linux VFS gefunden wurden. Je geiler im Sinne von schneller es wird, umso schlimmer wird es. Siehe io_uring, was die erste Technologie war, für die Googles Vulnerability Rewards Program mehr als eine Million Dollar an Belohnungen für sicherheitsrelevante Fehler ausgezahlt hat. Dieser ganze Bereich ist schon konzeptionell weiter von OpenBSDs Philosophie und Zielen entfernt, als der Mars von der Erde.

Und das ist auch völlig okay. Es muss nicht jeder alles können und ist häufig besser sich auf eine Sache zu konzentrieren, die dafür richtig zu machen. "Schuster bleib bei deinen Leisten!", wie man schon vor hunderten Jahren wusste.
 
HAMMER2 laeuft auch unter OpenBSD und wird vom offiziellen HAMMER2-Entwickler auch gepflegt. Allerdings nur read-only. Um auch snapshots und write zu ermoeglichen, muesste das ins VFS integriert werden. Das wurde auch schon z.B. im Google Summer of Code versucht, allerdings weiss ich nicht, wie weit das Projekt gekommen ist. HAMMER2 waere auch von der Lizenz her passend.
 
Und das ist auch völlig okay. Es muss nicht jeder alles können und ist häufig besser sich auf eine Sache zu konzentrieren, die dafür richtig zu machen. "Schuster bleib bei deinen Leisten!", wie man schon vor hunderten Jahren wusste.
HAMMER2 laeuft auch unter OpenBSD und wird vom offiziellen HAMMER2-Entwickler auch gepflegt. Allerdings nur read-only. Um auch snapshots und write zu ermoeglichen, muesste das ins VFS integriert werden. Das wurde auch schon z.B. im Google Summer of Code versucht, allerdings weiss ich nicht, wie weit das Projekt gekommen ist. HAMMER2 waere auch von der Lizenz her passend.
ja, genau das ging mir beim Lesen der Beiträge auch durch den Kopf, aber in etwas anderer Richtung.
Nun bin ich wirklich kein Experte, aber ich habe im Laufe meines Lebens einen ganzen Wald von Dateisystemen durchwandert und außer dem unglücklichen JFS haben alle funktioniert und ich hatte nie größere Probleme mit einem davon gehabt.
Nun rufe ich mal kurz Microsoft in Erinnerung. Eigentlich stimmt das nicht wirklich, aber im Grunde genommen schon: Diese Firma hat seit vielen vielen Jahren NTFS und sonst nichts. Die diversen FAT wollen wir mal außen vor lassen, weil sie wiederum eigentlich keine Dateisysteme sind. Nochmal zu NTFS: es kam mit Windows NT, das war so etwa in der Mitte der 80er? Natürlich hat es sich unter der Haube ein wenig verändert im Laufe der Zeit, aber kein Anwender eines Microsofts kümmert sich darum und die wenigsten werden überhaupt den Namen kennen oder irgendwas von Dateisystemen wissen.
Im OpenSource Land hat man das Gefühl, dass jedes Betriebssystem wenigsten zwei Dateisysteme braucht, also zwei eigene Dateisysteme, die sonst niemand hat.
Als relativ Ideologie befreiter Endanwender bleibt mir manchmal nur noch das berühmte Kopfschütteln.

Wer die Wahl hat, hat die Qual.
Eine Entscheidung für das eine oder andere Dateisystem, wenn es denn überhaupt eine Entscheidungsmöglichkeit gibt, würde ich persönlich vom Einsatzzweck und der verwendeten HW abhängig machen. SSDs und NVME haben einige andere Bedürfnisse, als HDs und hier wiederum gibt es deutliche Unterschiede zwischen Laptops und Servern, um mal zwei zu nennen und dann etwa externen Medien, die ich womöglich nicht nur mit mir herum tragen, sondern unter Umständen auch mal in einem fremden System einlesen möchte. Hier kommt dann auch ein weiterer Aspekt ins Spiel: Langzeit-Archivierung. Was nützt mir das beste Dateisystem der Welt, wenn in einigen Jahren das zugehörige System eingestellt wird und ich deshalb keinen Zugriff mehr auf meine alten Daten habe?

Also, wenn man sich klug überlegt, was man für ein Dateisystem haben möchte und weshalb, ist das vollkommen in Ordnung. Aber, wenn man es einfach haben will und es nur um den Betrieb eines Systems geht, dann mach es wie die Microsoft-Nutzer: frag nicht lange, nimm, was per Default angeboten wird und werd glücklich damit.
 
Die diversen FAT wollen wir mal außen vor lassen, weil sie wiederum eigentlich keine Dateisysteme sind.
So weit würde ich nicht gehen. Es sind eben sehr einfache Dateisysteme. Und für das, was sie sein und leisten sollen finde ich es auch völlig ok.
Immerhin haben sie ja auch nach wie vor ihre Bedeutung. Man denke nur an beispielsweise UEFI-Partitionen.
Würdest Du da wirklich ein full-featured-Dateisystem haben, dessen Features Du letztlich aber gar nicht brauchst und die ja auch komplex in der Implementierung wären?

Ich denke eher nicht. :-)

NTFS: es kam mit Windows NT, das war so etwa in der Mitte der 80er?
So grob kann man das sagen. :-)
 
Zurück
Oben