Wie viele und welche Partitionen sollte ich für einen Linux-Server erstellen?

15

Partitionen sind auf Linux-Servern sehr wichtig, da sie Ihnen viel Flexibilität bieten, beispielsweise beim Upgrade auf eine größere Festplatte.

Aber wie viele Partitionen sollte ich erstellen, wenn ich eine Linux-Box baue? Welche Größe sollte ich für jede Partition festlegen?

Zu guter Letzt: Welche Partitionen sollte ich auf einer separaten Festplatte haben (ich denke an / home, / var auf einem schnelleren Laufwerk usw.) und welche Partitionen darf ich auf demselben Laufwerk freigeben?

paulgreg
quelle
1
Wie viele Laufwerke haben Sie? Gehen Sie davon aus, dass sich diese Zahl im Laufe der Zeit ändert? Ist dies eine Einzweckbox oder eine Mehrzweckbox? Single User oder Multi? All diese Dinge sind wichtig.
pjz
Die Frage ist eher allgemeiner Natur, aber immer noch für Server.
Paulgreg

Antworten:

17

Die Planung einer guten Partitionierungsstruktur hängt in hohem Maße davon ab, ob Sie tatsächlich wissen, wie Sie den "Server" verwenden werden. Jede zufällige Empfehlung, die nicht die tatsächlich erbrachten Leistungen in Anspruch nimmt, ist nicht besonders nützlich.

Wenn es sich beispielsweise um eine debian-basierte Box handelt, die für mysql verwendet wird, möchten Sie möglicherweise separate Partitionen für /, / var und / var / lib / mysql.

Wird es ein Dateiserver mit viel gemeinsam genutztem Speicher sein? Möglicherweise möchten Sie eine /, / home- und / srv-Partition.

Für eine Box, auf der nur Squid ausgeführt wird, möchten Sie möglicherweise eine Partition für / und eine Partition auf einer schnellen Festplatte für die Squid-Spool.

Während Sie Ihre Partitionen planen, ist es sehr hilfreich, sich mit dem Dateisystem-Hierarchie-Standard vertraut zu machen und zu wissen, ob bzw. wie Ihre gewählte Distribution 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.

Zoredache
quelle
1
Die bisher beste Antwort.
Bis auf weiteres angehalten.
Gute Antwort. Sowohl die Empfehlung, dass die Struktur von der beabsichtigten Verwendung abhängt, als auch, dass LVM ein guter Weg ist.
RickMeasham
Weitere Informationen zum Wert der Partitionierung finden Sie hier. serverfault.com/questions/61284/sell-partitioning-to-me
Zoredache
Ich war nicht einmal bewusst , dass es war ein Filesystem Hierarchy Standard. Danke, dass du es erwähnt hast.
Joe Internet
8

Ich erstelle immer diese Partitionen und seit dem letzten Jahr immer auf LVM:

/       - a few Gig
/usr    - 24 Gig and mostly empty
/var    - 4 Gig works for me, YMMV
/home   - depends on how many users you will have

Eine der wichtigsten ist /var: Wenn es sich um eine separate Partition handelt, stürzt die Root-Partition beim Auffüllen nicht ab. Obwohl ich das noch nie gemacht habe, machen einige eine separate, /usrso dass sie es nur lesbar mounten können.

und ich erstelle manchmal diese Partitionen:

/boot   - even 1 Gig is way more than enough

Der Grund dafür ist, dass es nicht immer möglich ist, von einer RAID- oder LVM-Partition zu booten. Somit /bootkann eine einfache ext3-Partition sein, die es erlaubt /, weiter fortgeschritten zu sein.

Wenn ich eine große Anzahl großer Dateien habe, erstelle ich manchmal eine bestimmte Partition für diese großen Dateien, damit das Dateisystem so optimiert werden kann, dass es große Dateien effizient speichert. Einige Benutzer erstellen, wenn sie NFS von einem Server aus bedienen, eine separate Partition für ihre NFS-Freigaben oder sogar eine separate Partition für jede NFS-Freigabe. Dies hängt von Ihren Bedürfnissen ab.

Warum LVM? Wie ich in den Antworten an anderer Stelle erwähnt, aber vergessen habe, hier zu erwähnen, ist es VIEL einfacher, später Ihre Meinung zu ändern und eine Partition zu erweitern. Das hat meinen Hintern schon gerettet.

Dies sind allgemeine Richtlinien. Ich gehe natürlich davon aus, dass Sie, wenn Ihr Server spezielle Anforderungen hat, dies berücksichtigen und eine Partition erstellen, die diese Anforderungen widerspiegelt.

Eddie
quelle
7

Angenommen, Sie erstellen eine Maschine, die eine Weile dauern wird, deren Neuerstellung unpraktisch ist und die sehr flexibel sein muss, dann könnte Ihnen ein ähnliches Schema wie das folgende gefallen:

  1. Installieren Sie mindestens zwei physische Laufwerke gleicher Größe. Für die Zwecke dieses Beispiels gehe ich von 500-GB-SATA-Laufwerken aus, die Prinzipien funktionieren jedoch problemlos mit anderen Laufwerksgrößen.

  2. Partitionieren Sie jedes Laufwerk wie folgt:

    /dev/sda1   500MB
    /dev/sda2   100GB
    /dev/sda3   the rest
    

    Das Ziel ist es, eine 500-MB-Partition im Vordergrund, eine große Partition in der Mitte für das Betriebssystem und die Anwendungen und den Großteil des Laufwerks im Hintergrund für zusätzliche Daten bereitzustellen.

  3. Erstellen Sie ein SW-RAID-1-Set /dev/md0aus ,, /dev/sda1und /dev/sdb1; Erstellen Sie zusätzliche SW-RAID-1-Sets /dev/md1und /dev/md2aus den entsprechenden Partitionen.

  4. Format /dev/md0als ext3; das wird sein /boot.

  5. Format /dev/md1und /dev/md2als physische LVM-Volumes.

  6. Erstellen Sie eine LVM-Datenträgergruppe vg_system, die Folgendes enthält /dev/md1.

  7. Erstellen Sie geeignete LVM-Volumes vg_systemfür Ihre verschiedenen Betriebssystempartitionen. zumindest, möchten Sie swap, /varein paar GB und /10 GB oder so. HINWEIS : nicht alle zuweisen vg_system! Wenn Sie später entscheiden, dass Sie die Größe von erhöhen möchten \var, oder Sie möchten ein /optoder was auch immer hinzufügen, dann möchten Sie diesen zusätzlichen Speicherplatz.

  8. Erstellen Sie eine LVM-Datenträgergruppe vg_data, die Folgendes enthält /dev/md2.

  9. Erstellen Sie vg_datadie gewünschten LVM-Volumes . Zumindest möchten Sie eine beträchtliche Größe /home, und Sie möchten möglicherweise zusätzliche Volumes für beispielsweise Mail-Spools oder Datenbanken oder Webstämme oder andere Daten, die nicht Teil des Betriebssystems sind. Weisen Sie vg_dataaus ähnlichen Gründen wie oben nicht alle zu .

Die Vorteile dieser Strategie umfassen Folgendes:

  • Es ist tolerant gegenüber Hardwarefehlern. Jedes Laufwerk kann ausfallen, ohne dass es zu einem Systemausfall kommt. Wenn Sie in einen Hot-Swap-Controller investieren, können Sie ohne Ausfallzeiten eine Wiederherstellung durchführen.

  • Es ist zukunftssicher und erweiterbar. Wenn Sie nach ein paar Jahren 2-TB-Laufwerke kaufen, können Sie diese in den Computer einhängen, in ein anderes SW-RAID-Set umwandeln, als physisches LVM-Volume formatieren und zu einer beliebigen Volume-Gruppe hinzufügen, die (wahrscheinlich lv_data) mehr Speicherplatz benötigt Verwenden Sie pvmovediese Option, um Ihre Daten von den alten Laufwerken auf die neuen zu migrieren. Darüber hinaus können wichtige Betriebssystemupdates erheblich schmerzfreier gestaltet werden. Wenn Sie das Betriebssystem für ein größeres Upgrade neu installieren müssen (ahem Red Hat :(), können Sie dies unter Beibehaltung der Home-Verzeichnisse (und der Mail-Spools und allem, was Sie sonst noch eingeben) tun vg_data.

Die Nachteile dieser Strategie sind gering; Ich nehme an, es ist ein bisschen komplex, und wegen RAID 1 ist die Leistung der Schreibvorgänge beeinträchtigt. Nach diesen Grundsätzen baue ich jedoch seit einigen Jahren Workstations und Standalone-Server baue keine Maschine in dieser Richtung, es würde nicht lange dauern, bis ich es wünschte.

-steve

PS: Wenn Sie über die Infrastruktur verfügen, um schnell und problemlos eine neue Maschine bereitzustellen, ist ein System wie dieses ein Overkill. Anstatt an RAID-Sets und LVM zu basteln, bauen Sie den Computer einfach neu auf, wenn Sie Änderungen benötigen.

Hakamadare
quelle
2

Seit Jahren ist jeder Computer, den ich verwendet habe, ein Dual-Boot-System, und auf der Linux-Seite habe ich mich ziemlich an dieses Schema gehalten (ich spreche hier von Personal Workstations, keine Serverkram, daher kann Ihr Kilometerstand variieren).

/     - main thing
/boot - not that relevant, since cylinder being < 1024 and 
        exotic filesystems are no longer an issue
/home - handy if you upgrade your laptop with each new distro :-)

Bei meinem letzten Upgrade habe ich eine Neuinstallation durchgeführt und dabei meine /Partition gelöscht. Das ließ mich denken, dass eine separate Partition /optoder eine /usr/localPartition nett gewesen wäre, und ersparte mir den Aufwand, all das Zeug, das ich dort abgelegt habe, neu zu installieren (Java, Eclipse ... ich kümmere mich normalerweise nicht um die in der Distribution verpackten).

agnul
quelle
2

Zusätzlich zu den von Eddie erwähnten Partitionen erstelle ich normalerweise zwei weitere separate Partitionen

/ tmp - Aus den gleichen Gründen haben Sie eine separate / var-Partition erstellt (ich hatte den temporären Speicherplatz schon einmal voll). Ich gehe normalerweise mit 1-2 GB

/ usr / local - Auf diese Weise können Sie / usr nach Bedarf aktualisieren und bereinigen, ohne Ihre separat installierte Software zu beschädigen. Die Größe hängt davon ab, wie viel externe Software Sie installieren. Normalerweise arbeite ich mit 10 GB, aber ich finde, dass das heutzutage ein bisschen klein ist.

Ich mache / home immer als letztes und fülle den Rest der Platte damit auf.

Auf der / boot-Partition habe ich es nie größer als 100 MB gemacht und stieß nie auf Speicherplatzprobleme (irgendwann entferne ich alte Kernel). Es kann wirklich sehr klein sein.

Vergessen Sie auch nicht eine Swap-Partition.

dagorym
quelle
1

Für die meisten Maschinen tue ich

100MB /boot
1GB * NUMBER_OF_USERS /home
10GB /var/log
10GB /var
REST /

In einigen Fällen muss dies umgestellt werden, aber ich bin ziemlich davon überzeugt, dass Benutzer nicht mehr als 1 GB Speicherplatz auf einem Server erhalten. Wenn sie mehr brauchen, können sie / tmp verwenden, mit der Maßgabe, dass es jede Nacht über cron gelöscht wird.

Glen Solsberry
quelle
1

Angenommen, Sie verwenden dort kein Hardware-RAID - unter Linux würde ich immer LVM anstelle von RAID verwenden. Auch für eine Single-Disk-Konfiguration. Grund dafür ist, dass Sie die Option haben, mehr Speicherplatz hinzuzufügen (durch Erweitern der LVM-Gruppe) oder die Redundanzoptionen zu ändern (z. B. eine "seltsame" RAID1-Konfiguration für eine einzelne Festplatte in eine gespiegelte Konfiguration umzuwandeln oder sogar RAID10 mit einigem Aufwand).

Um Ihre Frage zu beantworten, habe ich normalerweise etwas Ähnliches für einen generischen Server. Beginnend mit 2 Festplatten (sagen wir eine 1HE Dell), beide partitioniert als:

  • ~ 100 MB RAID1 für / boot
  • LVM auf RAID1 für den Rest der Festplatte

Dann erstellen wir alle Volumes als LVM-Volumes: * / * / var * / tmp * / home * / opt

Ich würde es vermeiden, zu viele Dateisysteme zu erstellen, da die Verwaltung schwierig ist. Wenn Sie nur noch wenig Festplattenspeicher haben, steht Ihnen auf vielen Dateisystemen zwar Speicherplatz zur Verfügung, jedoch nicht genug, um daran zu arbeiten.

/ home und / tmp auf einem separaten Dateisystem ist immer eine gute Idee; Im Allgemeinen trenne ich nicht / opt, es sei denn, ich plane, eine Menge Dinge hinein zu stecken. (NFS ist möglicherweise eine bessere Option für / opt, wenn Sie viele Server haben, für die derselbe Software-Stack erforderlich ist.)

Kurz gesagt, verwenden Sie LVM für alles, es sei denn, Sie haben einen Grund, dies nicht zu tun. Auf diese Weise haben Sie die Möglichkeit, Änderungen vorzunehmen.

Verwenden Sie auch einen Protokollserver, damit die Protokolle Ihr / var nicht ausfüllen!

Lester Cheung
quelle
0
  • / boot - 128 MB

Volumengruppe - rootvg

  • / var - 5 GB (hängt davon ab, ob es als Mailserver verwendet wird. Sie können auch die Größe ändern, um Kerndateien abzufangen.)
  • / tmp - 2 GB
  • / opt - 10 GB (für Software, die nicht mit der Distribution geliefert wird)
  • / - 6 GB - mindestens

Volumengruppe - Datavg

  • / home - der rest

Sie können ein separates / usr für Ihre Software erstellen, aber in meinem Fall wird die Box neu installiert, sodass keine eigene Partition erforderlich ist.

setatakahashi
quelle