560 GB: lvm & snapshots

  • Hallo zusammen


    Ich habe mir soeben den KVM-"Schlussverkauf"-Server mit dauerhaft 560 GB SSD gegönnt (War eigentlich genau das passende Angebot)


    Mir stellen sich gerade folgende Fragen:


    1) Ist bei dieser komfortablen HD-Größe eigentlich lvm überhaupt noch empfehlenswert? Ich glaube nicht, dass ich hier jemals in Platznot komme, wenn ich mir vorher ein klein wenig über eine sinnvolle Partitionierung Gedanken mache. Ich würde mir dann eine zusätzliche Zwischenschicht ersparen. (Ich hab's gerne so einfach wie möglich)


    2) Hat es eigentlich eine (reduzierende) Auswirkung auf die snapshot-Möglichkeiten im SCP, was den zu Verfügung stehenden Platz angeht, wenn man lvm dazwischen legt?

  • Gerade wenn du zu Beginn nicht genau weißt wie du den Server partitionieren sollst, ist LVM eigentlich genau das richtige Mittel. Einfach eine VG anlegen und mit minimaler Konfiguration starten (z.B. / mit 20GB, /var mit 80 GB). Den Rest dann bei Bedarf vergrößern. Das ist mit "normalen" Partitionen nicht so einfach möglich, weil es da ja darauf ankommt, mit welchem Sektor die Partition anfängt oder wieder aufhört. Man möchte man eigentlich später ungern ändern.

    Daher empfehle ich hier definitiv wieder zu LVM zu greifen.

    LVM hat auf die Snapshot-Funktionalität keinerlei Auswirkung. Für den Snapshot ist die Partitionierung ziemlich egal, auch welches FS oder OS du installiert hast etc.

  • 2) Hat es eigentlich eine (reduzierende) Auswirkung auf die snapshot-Möglichkeiten im SCP, was den zu Verfügung stehenden Platz angeht, wenn man lvm dazwischen legt?

    Platz hast du wenn du fstrim machst (sonst nur das wo noch nie geschrieben wurde - ob Nullen erkannt werden habe ich nicht ausprobiert). fstrim bügelt freien Speicher weg. Gelöschte Dateien lassen sich dann aber nicht wieder herstellen.


    Mit issue_discards=1 in lvm.conf macht LVM auch TRIM wenn du ein LV löschst oder verkleinerst oder sonstwie verschiebst so daß vorher belegte Extents im LVM frei werden. Falsche lvresize-Befehle lassen sich dann aber nicht rückgängig machen (anhand /etc/lvm/{backup,archive}/), die Daten sind dann schon weg, wenn das Dateisystem größer als das LV war.


    Daher lieber issue_discards=0 in lvm.conf und bei Bedarf den freien LVM-Speicher von Hand wegbügeln


    Code
    lvcreate -l100%FREE -n discard deinevg
    blkdiscard /dev/deinevg/discard
    lvremove deinevg/discard


    Wenn du deine VGs voll belegst (0 free extents) dann ist das hinfällig und fstrim reicht.


    Falls du was mit Verschlüsselung (cryptsetup) machst, das braucht ein --allow-discards damit fstrim durchgeht.

  • Ich greife das hier nochmal auf.


    Es wird ja immer wieder lvm empfohlen und ich setze das ja auch ein.

    Ich habe nun aber bei meinem neuen Server auf großartige Partionierungsorgien verzichtet und nur eine einzige Partition erstellt und dort auch nur eine einzige VG mit nur zwei LVs

    Mein Überlegung war:


    Ich werde nie eine weiter Platte einbinden, also ist dafür lvm schon mal nicht nötig.

    Wenn ich alles auf einer Partition habe, kann mir auch nirgendwo der Platz ausgehen. ;)

    Der einzige weitere Grund für eine eigene Partition, der mir eingefallen ist: Die Gefahr, dass die logs alles volllaufen lassen.


    Deswegen nur zwei LV: ein kleines, eingehängt in /var/log und der große Rest in /


    Habe ich dabei einen Denkfehler?

  • Deswegen nur zwei LV: ein kleines, eingehängt in /var/log und der große Rest in /

    Kannst du prinzipiell machen. Aber es gibt hier keine Masterlösung.


    Es kommt immer darauf an, was du halt betreibst. Hast du z.B. eine Datenbank, eine Cloud, ein GitLab oder irgendwas, das halt Daten speichert - auch das kann dir das rootfs voll laufen lassen.

    Also ich habs mal geschafft mir mit ner Dynmap von nem Minecraft Server die Inodes voll laufen zu lassen. Wollte über Nacht die Welt LeMonde rendern lassen... joa, mit file Backend. Ganz ganz viele minikleine PNG Dateien.

    Das hat mir den kompletten Server abgeschossen - seit dem ist Partitionierung ein empfindliches Thema für mich. :D

    "Denn der radikalste Zweifel ist der Vater der Erkenntnis."

    -Max Weber

  • OK. Ist natürlich ein gutes Argument.

    Eben. Wie gesagt - da gibts keine Masterlösung. Die Partitionierung ist so individuell wie das Server-Setup eines jeden.


    Man sollte sich da mal in Ruhe hinsetzen und schauen, was man betreibt und wo es in welchem Umfang Daten hinspeichert. Und dann überlegt man sich, wie man den Storage dafür am sichersten und sinnvollsten aufteilt. :)

    "Denn der radikalste Zweifel ist der Vater der Erkenntnis."

    -Max Weber

  • Wobei man solche Sachen wie bei whoami0501 auch wunderbar mit Quotas verhindern kann :)


    Ich persönlich setze bei den meisten Systemen gar kein LVM ein und verwende nur eine Partition. Es ist meistens absolut nicht notwendig. Notfalls helfe ich mir eben mit Quotas, die ich sowieso fast immer brauche, unabhängig von den getrennten Partitionen. Wenn ich nicht einen zwingenden Grund für mehrere Partitionen habe, ist das wesentlich unkomplizierter. Und darauf kommt es manchmal auch an, quasi KISS.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Ich persönlich setze bei den meisten Systemen gar kein LVM ein und verwende nur eine Partition. Es ist meistens absolut nicht notwendig. Notfalls helfe ich mir eben mit Quotas, die ich sowieso fast immer brauche, unabhängig von den getrennten Partitionen. Wenn ich nicht einen zwingenden Grund für mehrere Partitionen habe, ist das wesentlich unkomplizierter. Und darauf kommt es manchmal auch an, quasi KISS.

    Mimimi. Ich brauche auch keine Partitionen, weil ich alles in eigenen LXC Containern habe... oh wait. Die haben eigene virtuelle Festplatten, die ZFS Volumes sind... :D


    Also sagen wir es so - viele Wege führen nach Rom! ^^

    "Denn der radikalste Zweifel ist der Vater der Erkenntnis."

    -Max Weber

  • Ich reaktiviere diesen Thread nochmal, weil ich noch loswerden wollte, was mir inzwischen klar geworden ist.

    Ich habe ja inzwischen etliche Server neu aufgesetzt und dabei immer wenn es möglich war lvm verwendet.

    Dabei habe ich den zu Verfügung stehenden Platz großzügig auf die LVs (meist für /var /home /usr und /) verteilt und noch ein wenig Platz (so 10%) übrig gelassen. Ich kann ja dann (auch u.U. im laufenden Betrieb) nach Belieben problemlos hin- und verteilen. Dachte ich.


    Im Prinzip auch richtig, aber meine Erfahrung hat gezeigt, dass es viel ungefährlicher ist ein lvm-Volume zu vergrößern als dieses zu verkleinern!

    Vor kurzen hatte ich ja schon mal diese nette Erkenntnis zitiert, nachdem es mal wieder schiefgegangen war:

    ""Everyone say its critical and may end up with disaster while we reduce the lvm. Reducing lvm is really interesting than any other part in Logical volume management."


    Es ist also ratsam, zu Anfang die LVs eher klein zu halten und den restlichen Speicherplatz einfach frei und unzugeordnet zu lassen und Volumes nur bei Bedarf zu erweitern.


    Eigentlich hatte Paul das schon in der ersten Antwort dieses Threads so geschrieben:

    "Einfach eine VG anlegen und mit minimaler Konfiguration starten (z.B. / mit 20GB, /var mit 80 GB). Den Rest dann bei Bedarf vergrößern."

    Hätte ich mal besser gelesen.;)

  • Ich fange meist mit je 5GB für / und /var und 1GB für /home an.


    Meist kommen dann eher neue LV dazu als dass ich diese 3 vergrössere, z.B. für Datenbank, Docker oder Websites.

    CentOS 7 / nginx / php-fpm / postfix / rspamd / clamav / dovecot / nextcloud running on RS 1000 SSDx4 G8 / VPS 500 G8 / VPS 2000 G8 Plus