Partitionierungs- und Subvol-Strategie mit btrfs

10

Ich bin neu bei btrfs und hätte gerne Ratschläge zur Partitionierung und zur Subvolume-Strategie. Das System ist ein leichter Webserver und setzt voraus, dass es nur eine einzige Festplatte hat.

Mit ext-Dateisystemen habe ich immer separate Partitionen für /, / var, swap (und möglicherweise / boot und / home) erstellt. Für mich enthält / var immer alle wertvollen Webserverdaten (z. B. MySQL-Datenbanken) und keinen Code. Dadurch kann ich die Daten einfach auf ein anderes System verschieben (verschieben oder kopieren / var) oder das Betriebssystem neu installieren, ohne die Daten zu stören (neu formatieren /) usw.

Mit btrfs könnte ich dasselbe tun, dasselbe Partitionierungsschema verwenden und auf jeder Partition ein separates btrfs-Dateisystem haben. Oder ich könnte eine einzelne Partition haben und btrfs-Subvolumes für /, / var usw. verwenden. Was wären die Vor- und Nachteile davon?

Es scheint mir, dass es einen gewissen Vorteil haben kann, beispielsweise / -only- und / var-only-Snapshots zu haben ("Alle Daten an einem vorherigen Prüfpunkt wiederherstellen" vs. "Den gesamten Code wiederherstellen" vs. "Beide wiederherstellen"). Ist das richtig oder erscheint es nur so?

Bonusfrage: Gibt es Vorteile bei der Verwendung von lvm unterhalb der btrfs-Dateisysteme?

Bonusfrage 2: Wie würde sich Ihr Rat ändern, wenn das System zwei Festplatten gleicher Größe hätte?

Hinweise auf Artikel "Das habe ich getan und wie es bei mir funktioniert hat" sind ebenfalls willkommen. Ich kann viel Material darüber finden, was ich tun kann, aber ich finde nicht viel zu sagen: "Das habe ich versucht und deshalb hat es funktioniert oder nicht".

Johannes Ernst
quelle
1
Gute Frage! Ich wollte fast das gleiche fragen. Ich würde gerne die Verschlüsselung raid1 und luks verwenden, aber es ist schwierig, relevante Informationen zu den Grundlagen zu finden. ZB ob ich ein Op-System auf einem einzelnen duplizierten Volume installieren und Subvolume für / Swap usw. ohne Nachteil verwenden kann. Vielleicht sollte ich das Handbuch lesen, aber ich mag keine langen Texte. : D
inf3rno

Antworten:

6

Wenn Sie keine spezifischen Anforderungen haben, verwenden Sie btrfs wie ein anderes Dateisystem. Trennung / Zuhause ist eine gute Praxis.

Persönlich ist mein einziges Subvolumen auf Heimservern / etc, sodass ich Schnappschüsse der Konfigurationen erstellen kann. Dies kann mit Tools wie Snapper automatisiert werden.

Normalerweise besteht wenig Interesse daran, nur eine frühere Version von / var wiederherzustellen, da auch / lib / stuff wiederhergestellt werden muss. Es ist eine Alles-oder-Nichts-Situation.

Snapshots von / home können SEHR groß sein, daher ist die Verwaltung der Festplattengröße bald ein Problem. Dies ist problemlos möglich, behalten Sie jedoch den verbleibenden Platz im Auge. Da Snapshots nur auf derselben Festplatte erstellt werden können, sind sie keine Lösung für Sicherungen im Falle eines Festplattenausfalls. Betrachten Sie sie als etwas für Situationen wie "oups, ich habe diese Datei vor zwei Stunden gelöscht, aber ich brauche sie immer noch".

Bonus 1: keine. Tatsächlich wurde btrfs entwickelt, um den Stapel mdadm + lvm + fs zu vereinfachen. Es ist also wirklich besser, es zu vermeiden.

Bonus 2: Nein, aber machen Sie ein RAID 1! Einfach und effizient, Ihre Daten werden Sie lieben :)

Ninja-Bonus: Sie möchten sich wahrscheinlich das btrfs-Wiki genauer ansehen .

Damien Clauzel
quelle
btrfs unterstützen Spiegelung und andere RAID'ish-Konfigurationen. Auch wenn Sie die Reproduktion von RAID6 vermeiden sollten, können Sie leicht einen Spiegel erstellen, indem Sie nach der Installation einfach eine Partition hinzufügen. Hier finden Sie eine nette Anleitung ( complang.tuwien.ac.at/anton/btrfs-raid1.html )
JOduMonT
0

Ich habe dies in letzter Zeit noch einmal besucht und dachte, ich würde einen sehr gut durchdachten Beitrag teilen, der eine Partition mit Verzeichnissen der obersten Ebene vorschlägt, die Subvolumes enthalten: https://bbs.archlinux.org/viewtopic.php?id=194491

TL; DR

subvolid=0
      ├── subvol_root
      │        └── /usr, /bin, /sbin, /.snapshots, etc
      ├── subvol_snapshots
      ├── subvol_home
      └── subvol_opt
ebrious
quelle