Beiträge von S. King

    Hallo!


    Gehen wir von einem Benutzer aus, der (so wie ich) beim Installieren von openSUSE 13.2 auf die Voreinstellungen vertraut hat. Das heißt, die Root-Partition benutzt btrfs. Dank Snapper und dank der btrfs-Metadaten kann sich die Root-Partition in der Default-Größe (20GB bei mir) schnell als zu klein erweisen, was der Benutzer mit "df" nicht erkennen kann und wodurch der Computer unbenutzbar werden kann.


    Natürlich könnte man dieses Problem durch eine Neuinstallation mit ext4 für die Root-Partition oder auch mit einer Vergrößerung der Root-Partition lösen. Aber ich schlage vor, in diesem Thread Möglichkeiten zu behandeln, wie man *ohne* eine Neuinstallation mit der Situation klar kommt.


    Man sollte sicherlich die Speicherung von Snapshots beschränken und man sollte für die zügige Löschung temporärer Dateien sorgen (Sehe ich das richtig, dass Yasts "/etc/sysconfig-Editor" dies nicht mehr anbietet?). Für die folgenden weiteren Ideen fehlt mir die Erfahrung, vielleicht kann da jemand weiterhelfen?


    1. Ist es sinnvoll, einen Cron-Job zu erzeugen, der regelmäßig das btrfs balanciert und/oder defragmentiert? Wenn ja, wie würde man so etwas machen?


    2. Ist es sinnvoll, die Root-Partition zu komprimieren? Hat jemand Erfahrung, was die Folgen sind? Wird der Computer dadurch spürbar langsamer?
    Falls es sinnvoll ist: lzo oder zlib? Und geht das mit folgenden zwei Schritten, oder ist noch mehr/anderes nötig?


    2a) /etc/fstab edieren und dort

    Code
    UUID=... / btrfs defaults 0 0

    ersetzen durch

    Code
    UUID=... / btrfs defaults,compress=lzo 0 0

    (Folge: Neue Dateien werden komprimiert) Müsste man das zusätzlich auch für subvolumes machen?


    2b) Alte Dateien komprimieren mit

    Code
    btrfs filesystem defrag -r -clzo /


    Was könnte man noch tun, um mit dem knappen Platz dauerhaft auszukommen?


    Viele Grüße,
    Simon

    Hallo!

    Außerdem könnte man Deine Frage auch als Kritik verstehen: "btrfs filesystem resize"-Befehl-Problem.

    Ganz bestimmt nicht. Letztlich zeige ich durch die Frage nur, dass ich zu naiv bin. "10 GB vom /home nach / schieben" ändert nicht ein btrfs-System auf einer Partition, sondern es ändert die Partitionen als solche. Das kann "btrfs filesystem resize" offenbar nicht leisten. Ich bitte daher um Entschuldigung für die Frage. Vermutlich wäre es sinnvoller, wenn ich meine derzeitige Situation (Root-Partition per Default zu knapp bemessen) anders zu lösen suchte (snapper zähmen, Daten komprimieren). Aber dazu öffne ich einen neuen Thread.


    Viele Grüße,
    Simon

    Da ich den Eindruck gewann, dass die default-Größe der Root-Partition (20GB bei mir) bei Verwendung von btrfs zu klein ist, hatte ich mich schon gefreut, als ich die Existenz von "btrfs filesystem resize" entdeckte.


    Anhand dieser Dokumentation hatte ich gehofft, dass es damit möglich sein könnte, die Root-Partition zu vergrößern. Aber anscheinend ist das doch nicht so leicht.


    Was meint ihr: Ist es möglich, 10 oder 20GB von der /home-Partition (bei mir ext4) abzuziehen und dann der Root-Partition hinzuzufügen? Ich hoffe, diese Frage ist in der Sektion "Lob&Kritik" nicht zu off-topic.


    Viele Grüße,
    Simon

    Hallo Alero,

    Man muß halt nur darauf achten das man bei der Partitionierung gewisse Partititionen größer macht, um Platz für die zusätzlichen Dateien zu schaffen.

    Nein, das sollte "man" nicht müssen. Wenn die Default-Größe der Root-Partition für das Default-Filesystem nicht reicht, dann liegt der Fehler in den Default-Einstellungen, nicht beim Benutzer.

    Hallo!


    Linux-freund bat mich, meine in diesem Thread behandelten Erfahrungen mit btrfs hier wiederzugeben. Wahrscheinlich hat nicht alles von dem, was ich hier schildere, direkt mit btrfs zu tun; manches ist eher ein allgemeiner Erfahrungsbericht mit openSUSE 13.2, manches sind auch nur Randbemerkungen (Dinge, auf die ich gerne eine Antwort hätte).


    Ich möchte mit einem Grundsatz starten, den ihr hoffentlich für sinnvoll haltet: "Wenn ein OS per default für die Root-Partition ein bestimmtes Filesystem verwendet, dann müssen alle Systemkomponenten mit diesem Filesystem harmonieren."


    Meines Erachtens verletzt die Verwendung von btrfs für die Root-Partition in openSUSE 13.2 diesen Grundsatz in mehrfacher Hinsicht, und ein paar OS-unabhängige Probleme von btrfs/snapper sehe ich ebenfalls.


    Diagnosemöglichkeiten
    ---------------------------------


    Ich benutze das Miniprogramm "Festplattenbelegung". Es zeigte mir an, dass in der Root-Partition viel Platz war. Auch gemäß "df -h" war die Root-Partition nur zu 66% belegt, in diesem englischsprachigen Thread waren es sogar nur 29%. Dennoch konnte mein Laptop plötzlich nicht mehr normal booten, ich erhielt nur noch ein Login auf der Kommandozeile, weil die Root-Partition komplett voll war. Grund waren anscheinend Metadaten, wie mir "btrfs filesystem df" zeigte.


    ==>
    a) Wenn eine Partition wie in dem englischsprachigen Thread zu 70% aus Metadaten besteht, ist mit dem Filesystem was faul (grundsätzliche Kritik an btrfs)


    b) Wenn bekannte Diagnosetools plötzlich irreführende Antworten liefern, ist der oben formulierte Grundsatz verletzt.


    Randbemerkung: Das Miniprogramm "Festplattenbelegung" hat mir früher per Balkengraphik die Plattenbelegung gezeigt. Jetzt sehe ich nur noch für ziemlich kurze Zeit eine Textanzeige, wenn ich mit der Maus drüber gehe. Suboptimal. Lässt sich das anders einstellen?


    Balancierung
    -------------------
    Wenn ich es richtig verstanden habe, sorgt der Befehl "btrfs balance start /" für eine bessere Verteilung der Daten in der Root-Partition und damit zu einer Reduzierung der Metadaten. Ist das so etwas ähnliches wie eine Defragmentierung? Irgendwann hat mir mal jemand gesagt, dass das zwar bei Windows sinnvoll ist, aber die Filesysteme in Linux besser sind. Hat sich wohl geändert...


    Es war viel manuelle Intervention nötig (Beschränkung der zu verschiebenden Chunks), bis "btrfs balance start /" wirklich Erfolg hatte, einfach weil zu wenig Platz war.


    Jedenfalls:


    a) Letztlich war es straight forward, das Balancieren zu ermöglichen. Sollte das nicht automatisch gehen? (grundsätzliche Kritik an btrfs)


    b) WENN es wirklich sinnvoll ist, regelmäßig "btrfs balance start /" durchzuführen, um das Default-System benutzbar zu halten, dann sollte es dafür einen default Cron-Job geben. Andernfalls ist der oben formulierte Grundsatz verletzt.


    Softwareverwaltung
    ---------------------------


    - Früher gab es unten in der Leiste mit den Miniprogrammen ein käferartiges Symbol, welches anzeigte, dass es Updates gibt. Jetzt hingegen taucht plötzlich über die ganze Bildschirmbreite im VORDERGRUND ein dicker fetter Balken auf, der mich über die Updates informiert, und der weder minimiert noch geschlossen werden kann. Die einzige Möglichkeit ist, sich die vorgeschlagenen Updates anzeigen zu lassen. Ich möchte nicht, dass dieser Vordergrundbalken jemals auftaucht, wenn ich gerade auf einer Konferenz eine Präsentation halte!!


    - Ich benutze Apper (oder heißt das PackageKit?). Gerade jetzt versuche ich ein Update. Seit rund einer halben Stunde tut sich nichts! Es gibt ein Fenster "Auf die Berechtigung wird gewartet", welches "auf andere Vorgänge" wartet (welche denn?); schlecht! Ich drückte auf "Abbrechen", aber es brach nicht ab; schlecht! Müsste ich nicht an dieser Stelle das Root-Passwort eingeben können? Dafür gibt es aber kein Fenster; schlecht!


    - Vor wenigen Tagen war das auch schon so. Ich killte das PackageKit manuell und versuchte das Update per "zypper up". Das scheiterte, weil angeblich kein Platz mehr auf der Platte war, und nach einem Reboot konnte ich mich nur noch auf der Kommandozeile einloggen.
    ==>
    zypper sollte unbedingt in der Lage sein, den benötigten Platz abzuschätzen, EINSCHLIESSLICH der vom Filesystem verwendeten Metadaten; wenn der Platz nicht reicht, sollte es gar nicht erst das Update starten. Hier ist wieder der oben formulierte Grundsatz verletzt.


    Snapshots
    ---------------
    Ob Snapshots für einen Benutzer, der keine OS-Entwicklung betreibt, wirklich sinnvoll sind, wage ich nicht zu beurteilen. Jedenfalls: Als ich wie oben erwähnt mit "zypper up" updatete, wurden mehr als 10(!) Snapshots gespeichert --- nicht etwa nur zwei (einer vorher, einer nachher)! Das ist m.E. ein schwerwiegendes Problem von btrfs/snapper (wenn auch kein grundsätzliches).
    Es darf jedenfalls nicht möglich sein, dass snapper tatsächlich den ganzen Platz auf der Root-Partition verbraucht. Wenn kein Platz ist, muss snapper eben abbrechen, mit einem Warnhinweis an den Benutzer. Hier ist wieder der oben formulierte Grundsatz verletzt.


    Zusammenfassung
    ==============
    openSUSE 13.2 verletzt den oben formulierten Grundsatz in mehrfacher Hinsicht, bis hin zu dem Punkt, dass plötzlich der Computer unbenutzbar wird. So etwas würde in einer x.0.beta-Version wenig überraschen, aber in einer x.2-Version möchte ich das nicht haben.


    Viele Grüße,
    Simon

    Bevor ich den Thread auf "gelöst" setze, habe ich aber noch eine Schlussfrage: Wie kann ich `btrfs balance` doch noch vollständig laufen zu lassen? Bzw. ist das nötig? Ich werde als nächstes zu lernen versuchen, wie ich snapper dazu bringe, weniger Snapshots zu behalten.

    Bitte noch:
    Gelöst: einen Beitrag als gelöst markieren

    Wie vorher angedeutet: Bevor ich den Beitrag als "gelöst" markiere, hätte ich ihn gerne in einem Zustand, den ich als "gelöst" betrachte.


    Gerade eben habe ich allerdings `btrfs balance` vollständig hinbekommen. Lösung war, einfach geduldig mit `btrfs balance start -dusage=...` und `btrfs balance start -musage=...` herumzuspielen (damit weniger chunks zu verschieben waren), dann war irgendwann genug Platz geschaffen, und dann ging `btrfs balance start` irgendwann für alle chunks.


    Insofern ist der Thread jetzt wohl gelöst (die Zähmung von snapper ist wohl ein anderes Thema).
    Viele Grüße,
    Simon

    Ich bin glaube ich ziemlich nah an einer Lösung. Hier das Protokoll der unternommenen Schritte:


    1. Zuerst einige Diagnosetools (alles unter `su -`):

    Code
    btrfs filesystem df /


    Dies zeigte, dass in der Tat zu viele Metadaten da waren. Ziel war die Verwendung von `btrfs balance start /`, aber das ging zunächst nicht, weil nicht genug Platz auf der Platte war.


    Code
    snapper -c root list


    Dies zeigte mir zahlreiche Snapshots, alleine 13 von gestern früh.


    2. Schritte zur Platzwiederbeschaffung

    Code
    snapper -c root delete first_number-some_number_of_a_post_type_snapshot


    Dies schaffte viel Platz, so dass ich nun den nächsten Schritt versuchte:

    Code
    btrfs balance start /


    Das dauerte sehr lange, scheiterte aber wieder mit "No space left on device".


    Daher versuchte ich als nächstes ein Balancieren in kleineren Teilen:

    Code
    btrfs balance start -musage=0 -dusage=0 /
    ...
    btrfs balance start -musage=41 -dusage=41 /


    Das ging, allerdings ging es danach mit `-musage=42 -dusage=42` nicht mehr.


    ABER: Ich kann mich jetzt wieder normal einloggen! :smilie_hops_092:


    Bevor ich den Thread auf "gelöst" setze, habe ich aber noch eine Schlussfrage: Wie kann ich `btrfs balance` doch noch vollständig laufen zu lassen? Bzw. ist das nötig? Ich werde als nächstes zu lernen versuchen, wie ich snapper dazu bringe, weniger Snapshots zu behalten.


    Viele Grüße,
    Simon

    Möglicherweise habe ich eine Lösung in einem englischsprachigen Forum gefunden: https://forums.opensuse.org/sh…t-on-device-opensuse-13-2


    Ich habe es noch nicht komplett durchgelesen, aber der Fall scheint ähnlich dem meinigen zu sein. Auch der User in dem verlinkten Thread hat ein btrfs-Filesystem, und was da möglicherweise voll war, war nicht etwa die Partition selbst, sondern irgendwelche Metadaten.


    Naja, wollte ich nur mal erwähnen. Ich gehe es mal ganz durch und hoffe, dass es funktioniert.


    Viele Grüße,
    Simon

    Hallo Alero,

    Ich weiß aber nicht, was du mit den sysadmin-tools tust und ob du damit evtl. im System etwas verbogen hast. Auch fällt noch das fehlende Packman-Repo auf, das einzubinden angeraten wäre.

    Wie sysadmin-tools da rein kommt und warum Packman fehlt, weiß ich auch nicht.


    Naja, ich bin mal gespannt, ob (1) sich der Rechner nach wie vor an der Uni mit dem WLAN verbinden kann und ob (2) der Systemverwalter meines Fachbereichs mir helfen kann. Bei (2) bin ich allerdings noch weniger zuversichtlich als bei (1), denn der Systemverwalter benutzt openSUSE normalerweise gar nicht (deswegen suche ich hier im Forum nach Hilfe). Er hatte mir nur einen Memory-Stick hergestellt, mit dem ich dann openSUSE installiert habe (und ich kann mich nicht erinnern, ob ich da vielleicht an irgendeiner Stelle sysadmin-tools aus- und Packman abgewählt habe).


    Viele Grüße,
    Simon