Optimale UNIX-Dateisystempartition + Setup-Strategie


16

Welche Strategie bevorzugen Sie beim Partitionieren einer neuen Systemfestplatte (n) für UNIX sowohl für den Desktop als auch für die Server?

Bitte geben Sie das Festplattenpartitionslayout, Dateisystemformate und -optionen, Bereitstellungspunkte, RAID-Level, LVM-Gruppen und -Volumes, Verschlüsselung und andere relevante Einstellungen an.


Die Frage scheint fast wie ein Duplikat davon ( serverfault.com/questions/1145/… ).
Zoredache

Ist dies für eine Workstation, einen Testserver oder für einen ausgereiften Online-Server?
Djangofan

Antworten:


9

Ich bin ein Fan von LVM für diese Art von Problemen. Du brauchst nur etwas Platz für / boot (ich benutze ungefähr 100MB). In Kombination mit Dateisystemen, die dynamisch wachsen und schrumpfen (oder zumindest wachsen) können, müssen Sie nie wieder an kleine Partitionen denken.

Auf meinem Desktop verwende ich ein LVM mit XFS als Dateisystem für alle Partitionen. Ich erstelle so klein wie möglich und lasse sie wachsen, wenn ich mehr Platz brauche.


7

Wenn es Linux ist, haben Sie ein separates / boot.

Für andere Unix-Varianten habe ich normalerweise Partitionen für / und / var empfohlen. Daten werden normalerweise unter / u001, / u002 usw. eingehängt.

Zuvor mussten Sie stark partitionieren, da der Festplattenspeicher begrenzt war und Sie nicht wollten, dass eine einzelne gefüllte Partition das gesamte System herunterfährt. Mit dem heute stark erhöhten Speicherplatz und den zahlreichen Optionen zur Größenänderung und Virtualisierung ist der Bedarf an vielen Partitionen, die IMO bietet, gesunken. Zusammen mit der Tatsache, dass es ein Problem ist, Dinge zu verschieben, wenn Sie viele Partitionen haben, bedeutet dies, dass Sie es tun, wenn Sie mit weniger davonkommen können.

Ein Swap als 2xRAM ist nicht sinnvoll, wenn Sie sagen, 32 GB Speicher haben. Denken Sie also daran, dass die "Regeln" wirklich Richtlinien sind und einige angesichts der aktuell verfügbaren neueren Hardware einfach keinen Sinn ergeben.


2
+1 auf die Notwendigkeit der Partitionierung in letzter Zeit, abgesehen davon, wenn Sie mehr Platz in / home benötigen, können Sie immer eine neue Festplatte montieren.
Spoike

1
+1 - Ich bin damit einverstanden, dass verrückte Partitionierungsspiele auf den meisten Systemen heruntergespielt werden müssen. Wenn Sie wissen, dass Sie / var aufgrund einer bestimmten Anwendung auf einer schnellen Festplatte benötigen, sollten Sie es auch tun. Meistens, wenn ich auf verrückte Partitionierungsspiele in Produktionssystemen gestoßen bin, war es ein einzelnes Hardware-RAID-1-Volume, das in eine Reihe kleiner Partitionen zerlegt wurde der admin anscheinend). Wenn Sie wissen, dass Sie eine Anwendung für ein komplexes Partitionsschema haben, entscheiden Sie sich dafür. Wenn nicht, dann nicht.
Evan Anderson

5

Die Planung einer guten Partitionierungsstruktur hängt in hohem Maße davon ab, ob Sie tatsächlich wissen, wie Sie das System verwenden werden. Jeder zufällige Rat, der nicht berücksichtigt, was das System tut, wird nicht besonders nützlich sein.

Alle ausgefallenen Dateisysteme mögen gelegentlich nützlich sein, aber wenn Sie ein stabiles System wollen, ist es möglicherweise eine bessere Idee, sich nur an das 'Standard'-Dateisystem (dh ext3) zu halten, es sei denn, Sie haben einen sehr guten Grund, etwas anderes zu verwenden.

RAID ist gut, ich führe RAID1 immer auf allen meinen PCs aus, weil zu viele Festplatten ausgefallen sind.

Die Verschlüsselung mit so etwas wie dm-crypt ist gut, wenn Ihr System ein tragbares Gerät ist, über hochwertige Daten verfügt oder nur paranoid ist.

Während Sie Ihre Partitionen planen, ist es sehr hilfreich, sich mit Dingen wie dem Dateisystem-Hierarchie-Standard vertraut zu machen und zu wissen, ob bzw. wie Ihr ausgewähltes Unix vom Standard abweicht.

Durch die Verwendung von LVM können Sie Ihre Meinung in Zukunft ändern und Ihre Partitionen anpassen, ohne neu starten zu müssen. Durch die Möglichkeit, Snapshots zu erstellen, können sehr einfach gute Backups erstellt werden. Verwenden Sie LVM und ordnen Sie nicht sofort Ihren gesamten Speicherplatz zu.


5

Es gibt zwei sehr gute Gründe, neben dem FS-Typ zu partitionieren:

  1. Verhindern Sie ein Überlaufen einer Anwendung, die die Funktionalität des Systems beeinträchtigt. Wenn Ihre App voll ist /usr, ist es nützlich, etwas Platz zu haben /var, damit das System fortfahren und Protokolle aufgezeichnet werden können.

    Jauder sagte oben, dass dies durch die Größe der Festplatten heute negiert wird - ich denke nicht, dass dies streng wahr ist. Unsere Laufwerke sind möglicherweise größer, aber die Daten, die wir abrufen, werden immer größer. Es ist nicht nötig, selbstgefällig zu werden.

  2. Mount-Optionen. Sie können genauer definieren, welche Berechtigungen jede Partition annehmen soll. Beispielsweise ist es empfehlenswert, die Ausführung von Dateien, insbesondere von suid-Dateien, nicht zuzulassen, /tmpda dies ein üblicher Angriffsvektor für Computer ist, die Webanwendungen bedienen. Sofern Sie keine Jails ausführen, sollten Sie nicht erwarten, dass Geräteknoten irgendwo anders zu sehen sind /dev. Und so weiter.

z.B.

/ noatime  
/tmp noatime,nodev,nosuid,noexec  
/var noatime,nodev,nosuid  
/usr noatime,nodev  
/home noatime,nodev,nosuid  

4

Partitionierung physischer Festplatten
Beginnen Sie mit mindestens 2 Festplatten:

# 1 100 MB, ID = 83 (Linux), Startflag EIN
Verbleibende Nummer 2, ID = FD (Linux Raid Auto)

Die 100-MB-Partition ist für das / boot-Volume. Ich lasse dies auf allen meinen Laufwerken (auch ohne Start), um Flexibilität zu ermöglichen, damit jedes Laufwerk später zum Starten aktiviert werden kann. WENN die Größe der Datenträger nicht übereinstimmt oder Sie eine ungerade Zahl (500 GB, 250 GB x 2) haben, teilen Sie die Partitionen des 500-GB-Laufwerks so auf, dass sie den kleineren Datenträgern entsprechen.

RAID
Verwenden Sie die 100-MB-Partitionen sdaund sdberstellen Sie ein RAID1-Volume (Mirror-Volume) für /boot. Das wird md0.

md0 / boot 100MB Ext2

Benutze keinen exotischen FS on / boot, es lohnt sich nicht.

Der verbleibende Speicherplatz kann auf verschiedene Arten eingerichtet werden. Ich entscheide mich für ein RAID10 (Mirror / Stripe) mit 64K-Chunks und "2 Fernkopien" für die Geschwindigkeit. Dies gibt Ihnen viel Flexibilität, um Laufwerke schrittweise auf den neuesten Stand zu bringen. Die anderen Optionen sind RAID5 / 6. Der nutzbare Speicherplatz ist jedoch auf die kleinste Partition beschränkt. Verwenden Sie KEINE Partitionen von denselben Geräten. Benennen Sie den neuen RAID - Arrays md1, md2und so weiter.

LVM
Nehmen Sie alle RAID-Arrays außer md0und ordnen Sie sie einer einzelnen LVM-Datenträgergruppe mit dem Namen zu lvm_vg0. Wenn Sie RAID5- und RAID10-Volumes haben, ist es wahrscheinlich am besten, sie nicht zu kombinieren, aber ich denke, es würde nicht schaden.

Partitionieren Sie VG0 für die verbleibenden Systemladevorgänge. Denken Sie daran, dass es relativ einfach ist, bei Bedarf mehr Speicherplatz hinzuzufügen, sodass diese Zahlen etwas konservativ sein können.

lvm_vg0-root / 8GB Ext3 / ReiserFS (Core-Distributionsdateien)
lvm_vg0-home / home 20 + GB Ext3 / ReiserFS (Benutzerdaten, Dokumente)
lvm_vg0-data / data 60 + GB XFS (Medien, große Dateien, VMs)

XFS-Dateisysteme können nicht verkleinert werden. Beachten Sie dies. Außerdem wird das Verkleinern eines Online-Root-Volumes wahrscheinlich nicht unterstützt.

Aktualisieren Wenn Sie jemals die Festplatten gegen größere Größen austauschen möchten, haben Sie einige Optionen. Am einfachsten ist es, Laufwerke paarweise oder mehr hinzuzufügen und die neuen RAID-Arrays der aktuellen LVM-VG hinzuzufügen.

Eine andere Option ist das Hinzufügen eines einzelnen Laufwerks, das> = zur Summe des aktuellen Speicherplatzes ist. Wenn Sie beispielsweise zwei 100-GB-Geräte in RAID 10 haben, können Sie ein neues 200-GB-Gerät hinzufügen und es mit den beiden alten Geräten spiegeln. Dies ist fehleranfälliger, funktioniert aber.

Bei Bedarf können md#Geräte aus dem LVM VG entfernt werden, ohne dass Daten verloren gehen. Dies ist möglich, wenn genügend freier LVM-Speicherplatz vorhanden ist, um alle verwendeten LVM-Blöcke vom md#Gerät auf andere zu verschieben. LVM kann nur Speicherplatz verwenden, der keinem LV zugewiesen wurde, sodass ein leeres Dateisystem nicht als "freier" Speicherplatz gilt.


1
Die Angst vor exotischen Dateisystemen auf / boot überzeugt mich nicht. ext3 und XFS sind 2009 nicht mehr exotisch. Früher war es ein Problem, wenn Live-CDs nicht mit Treibern für sie gepackt wurden, aber heutzutage sind es fast alle.
Dan Carley

@Casey, Sie können ein Ext3-Volume "live" verkleinern, vorausgesetzt, Sie haben genügend freien Speicherplatz für Inhalte, in die Sie verschieben können. Ja, das ist ein unglaubliches Erlebnis, aber ich habe es geschafft und es funktioniert wie angekündigt. Seien Sie nur SEHR vorsichtig mit den Parametern.
Avery Payne

2

Ich führe gerade Linux Workstations aus. Ich verwende das ext3-Dateisystem und die Größen hängen etwas von der Größe der Festplatten ab, wobei die Partitionen auf den größeren Festplatten großzügiger sind. Diese befinden sich ungefähr in der Reihenfolge, in der sie in der Partitionstabelle angezeigt werden:

  • / boot - 100 MB
  • Swap Space - 2xRAM
  • / usr - 10-20 GB
  • / - 5-10 GB
  • / var - 1-2 GB
  • / tmp - 1-2 GB
  • / usr / local - 10-20 GB
  • / home - alles andere.

Auf den Arbeitsstationen meiner Frau an der Universität, die über zwei 750-GB-Laufwerke verfügen, haben wir zusätzlich zu den oben genannten Partitionen ein Dutzend ~ 100-GB-Partitionen auf den verschiedenen Laufwerken erstellt, die alle in / data / N eingebunden sind, wobei N eine Zahl von 1 bis 12 ist Sie verwendet diese, um die Daten für ihre verschiedenen Forschungsprojekte zu speichern.


Ich persönlich sehe keinen Vorteil darin, dass / var, / usr auf eine andere Partition aufgeteilt wurde. Während / usr / local eine gute Idee sein kann, wenn Sie eine benutzerdefinierte Software installiert haben (= nicht über die Paketverwaltung installiert), sind die beiden genannten imho ziemlich nutzlos. Auch 2xRAM als Swap ist imho nicht nötig. Wenn Ihr System anfängt zu tauschen, wird alles sehr langsam. Deshalb möchten Sie dies am Anfang vermeiden. Ich persönlich habe nur eine Swap-Partition mit Ramsize + X, weil ich manchmal Suspend-to-Disk verwende.
Martin

2
@Martin, Auf einer Linux-Box, die als Squid-Cache fungiert, möchten Sie, dass sich Ihr Spool-Verzeichnis und das Protokollverzeichnis auf einer schnellen Festplatte befinden, und normalerweise benötigen Sie diese Festplatte nicht, um zuverlässig zu sein. Man könnte Ihre Spool auf ein RAID0 (Stripe) setzen (/ var) und alles andere auf einem langsameren Laufwerk belassen.
Zoredache

@Martin - Du hast Recht, es ist wahrscheinlich unnötig, / usr abzuspalten, und ich mache es auch nicht mehr immer. Der Swap = 2xRAM ist eine alte Gewohnheit aus der Zeit, als ich Systeme mit nur 256 MB RAM oder weniger konfiguriert habe.
Dagorym

1
Tatsächlich können Sie durch Aufteilen von / usr und / var das Journaling auf der einen und nicht auf der anderen Seite aktivieren.
Scott

1
Wenn Sie / var auf eine separate Partition stellen, wird sichergestellt, dass nur / var mit Protokolldateien gefüllt werden kann, die sonst Ihr System in die Knie gezwungen hätten.
wzzrd

1

Verwenden Sie noatime auf allen Festplatten (es sei denn, Sie haben einen Grund, dies nicht zu tun). Ich mounte / tmp in tmpfs, obwohl dies auf einem Server möglicherweise nicht so gut ist. Ich stelle sicher, dass es sich um eine separate Partition handelt, und mounte sie nodev, nosuid, noexec, noatime . Ich benutze immer ext2 für / boot, damit ich mich nicht darum kümmern muss, das fs-Zeug zu ändern, um meine Bootfähigkeit mit grub zu verbessern. ext4 für alles andere verwende ich journal = data on / home, was die Sache wahrscheinlich ein wenig verlangsamt (da es keine Freigabe gibt), aber ich habe mit journal = data auch nie Daten verloren und bin ein bisschen aktueller / bester Hure, manchmal stürzt mein System ab und ich muss es hart zurücksetzen (weil ich so etwas wie kms ausprobiert habe und einen Fehler gefunden habe).


1
Vergessen Sie nicht, auch 'nodiratime' zu verwenden, da Sie sonst Ihren vfs_cache_pressure mit Tonnen von Inodes (plus den tatsächlichen Schreibvorgängen auf die Festplatte!) Verstärken.
Gazzonyx

0

Wow, schöne Frage. Ich habe nach der perfekten Antwort für Eigelb gesucht.

Ich persönlich habe 50Mb / boot ~ 8GB / und der Rest geht in Richtung / home Das ist alles andere als perfekt. Ich muss nach alternativen Dateisystemen suchen, derzeit verwende ich ext3, aber ich habe großartige Dinge von anderen Dateisystemen gehört, zum Beispiel XFS.

Normalerweise erstelle ich auch einen Datei-Container für / tmp, damit ich in Zukunft flexibler damit umgehen kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.