Verkaufe die Partitionierung an mich


46

Ich habe mich oft gefragt, warum es eine solche Leidenschaft für das Partitionieren von Laufwerken gibt, insbesondere unter Unixy-Betriebssystemen (/ usr, / var, et al.). Dies scheint bei Windows-Installationen kein alltägliches Thema zu sein.

Es scheint, dass die Partitionierung die Wahrscheinlichkeit, eine Partition zu füllen, erheblich erhöht, während andere über viel freien Speicherplatz verfügen. Offensichtlich kann dies durch sorgfältiges Design und Planung verhindert werden, aber die Dinge können sich ändern. Ich habe dies oft auf Computern erlebt, meistens auf Computern, die von anderen eingerichtet wurden, oder mit den Standardinstallationseinstellungen des betreffenden Betriebssystems.

Ein weiteres Argument, das ich gehört habe, ist, dass es das Backup vereinfacht. Wie vereinfacht es das Backup? Ich habe auch gehört, dass es die Zuverlässigkeit verbessert. Wieder wie?

Fast 100% der Probleme, die ich bei der Datenträgerspeicherung festgestellt habe, sind auf einen physischen Ausfall der Festplatte zurückzuführen. Könnte argumentiert werden, dass die Partitionierung möglicherweise den Hardwarefehler beschleunigen kann, da die Festplatte beim Verschieben oder Kopieren von Daten von einer Partition auf eine andere auf derselben Festplatte überlastet wird?

Ich versuche nicht, das Boot zu sehr zu rocken, ich möchte nur die Rechtfertigung für eine uralte Verwaltungspraxis sehen.


In der Infrastructure As A Service-Cloud sind Partitionen nicht verfügbar, da Laufwerke (normalerweise als Volumes bezeichnet) so flexibel verbunden werden können.
Skaperen

Antworten:


41
  • Schneller fsck. Nehmen wir an, Ihr System fällt aus irgendeinem Grund aus und wenn es neu startet, muss es ein fsck ausführen. Mit einer wirklich großen Partition kann fsck ewig dauern und nichts auf dem System wird funktionieren, bis das fsck des gesamten Systems erledigt ist. Wenn Sie das System so partitionieren, dass die Root-Partition ziemlich klein ist, können Sie möglicherweise das System in Betrieb nehmen und einige der grundlegenden Dienste ausführen, während Sie darauf warten, dass die Überprüfung der größeren Volumes abgeschlossen ist.
    • Wenn Ihr System über kleine Laufwerke verfügt oder nur ein Dienst auf dem System vorhanden ist, spielt dies möglicherweise keine Rolle.
    • Bei aufgezeichneten Dateisystemen ist dies möglicherweise nicht die meiste Zeit von Bedeutung, aber gelegentlich müssen Sie sogar bei einem aufgezeichneten Dateisystem ein vollständiges fsck ausführen.
  • Verbesserte Sicherheit, da Sie ein schreibgeschütztes fs bereitstellen können.
    • Zum Beispiel sollte niemand während des normalen Gebrauchs an / usr schreiben müssen. Warum also nicht einfach das Dateisystem einhängen, damit es schreibgeschützt ist? Wenn Dateisysteme schreibgeschützt sind, für die sie nicht geschrieben werden müssen, werden einige skriptbezogene Angriffe verhindert, und es kann sein, dass Sie keine Dinge zerstören, wenn Sie dies nicht auch meinen.
    • Dies kann die Wartung des Systems erschweren, da Sie es erneut als Lese- / Schreibzugriff bereitstellen müssen, wenn Sie Updates anwenden müssen.
  • Verbesserte Leistung, Funktionalität für einen bestimmten Dienst / eine bestimmte Verwendung.
    • Einige Dateisysteme eignen sich besser für bestimmte Dienste / Anwendungen, oder Sie können das Dateisystem so konfigurieren, dass es in einigen Fällen besser funktioniert. Vielleicht haben Sie ein Dateisystem mit vielen kleinen Dateien und benötigen mehr Inodes. Oder vielleicht müssen Sie ein paar große Dateien, virtuelle Festplatten-Images, groß speichern.

Ich denke nicht, dass Sie viele Partitionen für jedes System einrichten sollten. Persönlich habe ich auf den meisten Linux-Servern nur eine große Partition eingerichtet. Da die meisten meiner Systeme über kleinere Laufwerke verfügen, nur für einen Zweck bestimmt sind und eine gewisse Infrastrukturfunktion haben (DNS, DHCP, Firewall, Router usw.). Auf meinen Dateiservern richte ich Partitionen ein, um die Daten vom System zu trennen.

Könnte argumentiert werden, dass die Partitionierung möglicherweise den Hardwarefehler beschleunigen kann, da die Festplatte beim Verschieben oder Kopieren von Daten von einer Partition auf eine andere auf derselben Festplatte überlastet wird?

Ich bezweifle sehr, dass ein gut partitioniertes System die Wahrscheinlichkeit eines Ausfalls erhöht.


9
+1 Sicherheit und Katastrophenvorsorge erfolgen in mehreren Ebenen. Ich denke gerne an Trennwände, die Schotten in einem Schiff ähneln. Sie sind da, damit das Schiff als Ganzes nicht unbedingt gefährdet ist, wenn in einem Segment des Schiffes etwas Katastrophales passiert. Wenn also eine Beschädigung des Dateisystems auftritt, ist der Schaden etwas begrenzt. Ebenso kann aus Sicherheitsgründen, wenn / homes als noexec gemountet ist, bestimmte Arten von Angriffen verhindert werden, wenn ein Benutzerkonto zum Beispiel durch ein schwaches Passwort kompromittiert wird.
3dinfluence

1
Es sind Exploits bekannt, die nur auf Partitionen funktionieren, die mit noexec oder ro gemountet wurden. Echte Sicherheit wird nicht durch Partitionierung angestrebt, aber Partitionierung kann bei der Schadensbegrenzung hilfreich sein (vgl. beispielsweise Logs Flood Attack)
drAlberT

19

Ein Grund für / home / seperate ist, dass Sie das Betriebssystem neu installieren können und sich keine Sorgen über den Verlust von Benutzerdaten machen müssen. Darüber hinaus gibt es eine Menge Sicherheit, wenn alles entweder nur lesbar oder nicht ausgeführt wird. Wenn Benutzer keinen Code ausführen können, mit dem sie Code schreiben können, ist dies ein Angriffsvektor weniger.

Ich würde mich damit nur auf einem öffentlichen Computer beschäftigen, da der Nachteil, dass auf einer Partition nicht genügend Speicherplatz vorhanden ist, auf einer anderen Partition jedoch, ein ernstes Ärgernis darstellt. Es gibt Möglichkeiten, dies zu umgehen, wie z. B. Software-Raid oder ZFS, bei denen Sie die Größe von Partitionen problemlos dynamisch ändern können sollten, aber ich habe keine Erfahrung damit.


Die Trennung von / home klingt eher nach einer Desktop-Sache. Auf Servern befinden sich Daten häufig an einem anderen Speicherort wie / var / www, / srv. Ich würde argumentieren, dass Ihre Idee eher darin besteht, Benutzerdaten dort zu trennen, wo sie gespeichert sind, nicht nur, wenn sie sich in / home befinden.
Zoredache

Bei Maschinen, die für die wissenschaftliche Verarbeitung verwendet werden, ist es üblich, dass eine erhebliche Anzahl von Personen Shell-Accounts hat. In diesem Fall kann eine separate / home-Partition sehr nützlich sein.
Jay_Dubya

Wenn Sie über eine erhebliche Anzahl von Computern verfügen, ist / home häufig ein NFS-Mount von einem Dateiserver, der / home logischerweise auch aufgrund der oben genannten Probleme auf einer eigenen Partition hat.
Matt Simmons

Benutzer nutzen häufig den gesamten verfügbaren Speicherplatz. Dies kann sich katastrophal auf die von einem Server bereitgestellten Dienste auswirken. Nur das Zulassen des Schreibzugriffs auf eine separate Partition schützt den Server vor einem Ausfall aufgrund einer vollständigen Root-Partition. Das Gleiche gilt, wenn Sie Ihre Protokolldateien auf einer separaten Partition ablegen.
Chris Nava

Ich denke , Disk - Quotas und lügen Rotationen eine bessere Lösung für das Raumproblem, aber separate Partitionen machen einen schönen letztes Mittel Sicherheitsmechanismus machen
halb

13
  • Backup vereinfachen

Sie können Backups (über Dumpfs oder ähnliches) von Dingen erstellen, die Sie möchten, und nicht von Dingen, die Sie nicht möchten. dump (1) ist ein besseres Backup-System als tar (1).

  • Füllen von Partitionen

Das ist auch ein Argument für die Partitionierung. Benutzer, die ihre Homedirs ausfüllen, beschädigen den Server nicht, fahren den Webserver herunter, verhindern das Auftreten von Protokollen, verhindern, dass sich Root anmeldet usw.

Außerdem können Sie einen Teil Ihrer Daten (z. B. / home) transparenter auf einen anderen Datenträger verschieben: Kopieren Sie ihn, hängen Sie ihn ein. Wenn Sie etwas verwenden, das Schattenkopien / Schnappschüsse / was auch immer erlaubt, können Sie dies sogar live tun.


9

Mir wurde immer beigebracht, / var auf einer separaten Partition zu speichern. Wenn Sie also eine außer Kontrolle geratene Protokolldatei erhalten, wird eine einzelne Partition und nicht das gesamte Laufwerk verstopft. Wenn es sich auf dem gleichen Platz wie der Rest des Systems befindet und Sie die gesamte Disc zu 100% füllen, kann es zum Absturz kommen und zu einer unangenehmen Wiederherstellung führen.


1
Ich kann auf eine Hand in meiner 15-jährigen Karriere zählen, wie oft ich ein System verloren habe, weil eine weggelaufene Protokolldatei (oder was auch immer) eine Maschine zum Absturz gebracht hat. Auf der anderen Seite kann ich einerseits zählen, wie oft ich in diesem Jahr bisher geschwächt worden bin, weil jemand entschieden hat, dass / var niemals größer als 1 GB sein muss und falsch gelegen hat, was mich dazu veranlasst hat, mir die 00er kostenlos anzusehen GB in / opt, das alles hätte genauso gut auf dem Mond sein können, wie es mir gut tut. (Ich bin gegen Partitionierung. :)
David Mackintosh

Ich stimme David zu, der genau die gleichen Erfahrungen mit Linux- und Windows-Computern gemacht hat. Es sei denn, es gibt einen überwältigenden Grund, etwas anderes zu tun. Jede Festplatte (oder jedes RAID-Array) erhält eine Partition.
John Gardeniers

Nun, diese Woche ist es endlich auf einem Windows-System passiert. McAfee hat ein großes Update veröffentlicht. Wir hatten ungefähr 5-10 Systeme, die es nicht mochten. Das Antivirenprogramm versucht zu installieren, erstellt eine 35-MB-Protokolldatei und versucht es erneut. 1.500 Mal später hatte ich 0 KB frei und ein System, bei dem ich mich nicht einloggen konnte.
Skaughty

8

Alle von Zoredache vorgebrachten Argumente sind gültig. man kann sich ein bisschen mit den Details streiten (eine Maschine schneller hochfahren zu lassen, damit man andere Dinge tun kann, während man andere Dateisysteme prüft, hilft nicht viel, wenn der Grund dafür, dass das System überhaupt existiert, in diesen anderen Dateisystemen liegt) ; Sie sind jedoch alle ein wenig nachträglich zu rechtfertigen.

In den Tagen der alten Schule gab es keine Dateisysteme auf separaten Partitionen - Sie hatten sie auf separaten Festplatten, weil die Festplatten sehr klein waren. Denken Sie an 10 MB. (1) Sie hatten also eine winzige / Partition, eine / var-Festplatte, eine / usr-Festplatte, eine / tmp-Festplatte und eine / home-Festplatte. Wenn Sie mehr Speicherplatz benötigen, haben Sie eine andere Festplatte gekauft.

Dann kosteten "große" 50-MB-Festplatten weniger als das Moon-Programm, und plötzlich war es möglich, ein gesamtes System mit einer nutzbaren Menge an Speicherplatz auf einer Festplatte unterzubringen.

Trotzdem war es immer noch eine gute Idee, den Computer zu isolieren, damit er nicht herunterfällt, da die Festplattengröße im Vergleich zu den Möglichkeiten, die der Computer hatte, klein ist.

Heute partitioniere ich in einer Unternehmenssituation die Betriebssysteme nicht. Daten werden partitioniert, insbesondere wenn sie vom Benutzer erstellt wurden. Das liegt aber häufig daran, dass es sich um Hochgeschwindigkeits- und / oder redundante Festplatten-Arrays handelt. / Var und / usr befinden sich jedoch alle in derselben Partition wie /.

In einer häuslichen Umgebung sollte sich das Gleiche - / home wahrscheinlich auf einer separaten Festplatte / einem separaten Array befinden, damit man die gewünschten Betriebssystemvarianten installieren / aktualisieren / unterbrechen / reparieren kann.

Der Grund dafür ist, dass Sie, egal wie groß Sie Ihren / var oder / usr oder welchen Baum Sie auch immer schätzen, entweder komisch falsch liegen oder auf lächerliche Weise überbeanspruchen. Einer meiner alten Schulkollegen schwört auf Partitionierung, und ich bekomme immer Kummer von ihm, wenn er ein 180-Tage-Fsck auf einem System durchläuft, das ich erstellt habe. Aber ich kann mit einer Hand über meine gesamte Karriere hinweg zählen, wie oft etwas gefüllt / heruntergekommen ist, während ich mit einer Hand zählen kann, wie oft in diesem Jahr jemand auf ein System gestarrt hat, bei dem es jemanden gibt \ var muss niemals mehr als (sagen wir mal) 1 GB haben und hat sich geirrt, sodass ich auf ein vollständiges \ var und eine Menge freier GB an anderer Stelle im System gestarrt habe, die alle genauso gut für alle auf dem Mond gewesen sein könnten das Gute, das sie mir tun.

In der heutigen Welt der großen Festplatten sehe ich keinen wirklichen Grund, den Betriebssystembaum zu partitionieren. Benutzerdaten, ja. Aber separate Partitionen für / var und / usr und / var / spool etc etc etc? Nein.


(1) = und wenn ich nur diese Größe auswähle , bekomme ich jemanden in den Kommentaren, der 10 MB sagt ? Luxus. Warum waren unsere Scheiben nur ...


Tatsächlich waren 10 MB die Größe der Festplatte, als ich zum ersten Mal jemanden "XXX FooBytes: mehr Speicher, als ich jemals brauchen werde!" Hörte . Obwohl ich noch ein Kind bin, war das ungefähr 1982. Andere Werte waren 40 MB, 320 MB, 2,5 GB, 40 GB, ... die Daten werden erweitert, um den verfügbaren Speicher zu füllen.
dmckee

5

Als Antwort auf :

Es scheint, dass die Partitionierung die Wahrscheinlichkeit, eine Partition zu füllen, erheblich erhöht, während andere über viel freien Speicherplatz verfügen.

Auf einem Linux-Computer wird LVM (Logical Volume Management) verwendet, um dies zu verhindern. Die meisten Dateisysteme erlauben eine Größenänderung (manche sogar online). Ich erstelle verschiedene Partitionen für unterschiedliche Zwecke und formatiere sie in verschiedenen Dateisystemen (z. B. xfs für große Download-Dateien, die ich schnell löschen kann). Brauche mehr Platz? Hängen Sie ein neues Laufwerk ein, verschieben Sie die Daten dorthin und hängen Sie sie dort ein, wo sie sich früher befanden. Es ist völlig nahtlos für Benutzer und Anwendungen.

Mit LVM können Sie der Datenträgergruppe Datenträger oder Partitionen hinzufügen und anschließend logische Datenträger in dieser Gruppe erstellen. Wenn Sie in der Datenträgergruppe freien Speicherplatz lassen, können Sie Partitionen vergrößern, die sich füllen. Wenn das Dateisystem dies unterstützt (ext3, ext4, reiserfs), können Sie eine Partition verkleinern, die Sie überbelegt haben.

Beispiel: Erstellen Sie eine Startpartition unter / dev / sda1. Erstellen Sie eine zweite (unformatierte) Partition unter / dev / sda2

pvcreate /dev/sda2 # add the partition to LVM
vgcreate vg /dev/sda2 # create a volume group with sda2 in it
lvcreate -n root -L5G vg
lvcreate -n home -L10G vg
lvcreate -n downloads -L100G vg

mkfs.ext3 /dev/vg/root
mkfs.ext4 /dev/vg/home
mkfs.xfs /dev/vg/downloads

mount /dev/vg/root /
mount /dev/vg/home /home
mount /dev/vg/downloads /downloads

Wenn Sie mehr Speicherplatz für / downloads benötigen (während das Dateisystem geladen ist):

lvresize -L+50G /dev/vg/downloads
xfs_growfs /dev/vg/downloads

Und Sie haben jetzt eine 150 GB Download-Partition. Ähnliches gilt für zu Hause. Tatsächlich habe ich heute gerade die Größe einer ext4 lvm "Partition" geändert. Auf der anderen Seite sind logische Volumes keine echten Partitionen, und was Sie sagen, dass Partitionen die falsche Größe haben, hängt von meiner persönlichen Erfahrung ab (mehr Mühe als sie wert sind).


4

Das traditionelle Unix-Partitionierungsschema ist definitiv eine alte Schulpraxis, die nicht mehr so ​​nützlich ist wie früher. Damals, als die Verfügbarkeit des Unix-Systems in Jahren gemessen wurde und Dutzende von Benutzern mit Shells herumwirbelten, war das Aktivieren von / usr als schreibgeschützt eine nützliche Methode, um das System zu schützen. Jetzt scheint das erneute Mounten von Dateisystemen zum Patchen arbeitsintensiver und weniger nützlich zu sein.

An meiner Universität hatten die Unix-Cluster in früheren Zeiten schreibgeschützte Dateisysteme mit den Standard-Unix-Tools, und Zusatzanwendungen befanden sich in / usr / local, einem NFS- und später einem AFS-Dateisystem. Ein Teil davon war die Bequemlichkeit ... wer wollte Software auf einem Dutzend Boxen im Cluster neu kompilieren, wenn man Apps über ein Hochgeschwindigkeits-, 4Mb- oder 10Mb-Netzwerk ausführen konnte? Heute, mit anständigen Paketmanagern und vielen billigen Festplatten, ist das keine große Sache.

Ich denke, dass sich die Denkprozesse bei Sun-Boxen mit Veritas Volume Manager seit 1999 für mich geändert haben, was die Schmerzgrenze für das Bewegen von Datenträgern erheblich gesenkt hat.

Wenn ich heute an Partitionierung denke, denke ich an Datenschutz und Leistung. Bildhaftes Beispiel:

  • Tier 1 SAN ist sehr schnell, sehr verfügbar (5 bis 9), repliziert und sehr teuer. Dort befinden sich geschäftskritische Datenbanken oder Transaktionsprotokolle.
  • Tier 2 SAN ist schnell, verfügbar (4 9) und teuer. Anwendungen oder Daten mit niedrigerer Priorität leben hier.
  • Tier 3 SAN ist verfügbar (4 9), billig. Sachen, die nicht leistungsempfindlich sind, leben dort.

Diese Überlegungen gelten auch für Windows. Wir haben einen SCCM-Server, der rund 40.000 Clients verwaltet. Die Datenbank und die Protokolle befinden sich auf einer IBM DS8000-Megabuck-Festplatte. Die Softwarepakete befinden sich auf einem EMC Celerra mit großen, langsamen SATA-Festplatten, die 60% weniger pro GB kosten.


2

Ich verstehe, dass diese Frage nicht OS-spezifisch ist, oder?

Unter Windows neige ich dazu, allen meinen Maschinen so wenig Partitionen wie möglich zuzuweisen, aber nicht weniger als zwei - SYSTEM und DATA. Wenn der Computer über zwei physische Datenträger verfügt, ist einer (kleiner) SYSTEM und der andere DATA. Wenn es nur eine Festplatte gibt, teile ich sie in zwei Partitionen auf.

Der Grund dafür ist nur einer: Wenn ich den Computer neu installieren muss (und es wird eine solche Zeit geben), muss ich mir keine Sorgen um den Inhalt der SYSTEM-Partition machen saubere Installation. Dies bedeutet natürlich, dass meine Dokumente (und vorzugsweise auch der Desktop) einem Ordner in DATA zugeordnet werden müssen. Dies ist jedoch besonders unter Vista und höher einfach.

Ich habe auch versucht, mehr Partitons zu machen (wie GAMES, MUSIC, MOVIES usw.), aber das führte nur dazu, dass einige von ihnen in andere überliefen und mehr Chaos als Ordnung erzeugten.


Dies gilt umso mehr, wenn dies auf Servern ausgeführt wird.
SpaceManSpiff

2

(Angenommen, eine einzige große Festplatte ist verfügbar.) Ich habe homeund varauf separate Partitionen verteilt, um das Problem "außer Kontrolle [Benutzer | Protokolldatei], das den gesamten Speicherplatz ausfüllt" zu kontrollieren und einfache Betriebssystemaktualisierungen zu ermöglichen, ohne die Startseite zu berühren zusammen ruhen.

Auf älterer Hardware war es manchmal erforderlich, eine separate bootPartition zu haben, um sicherzustellen, dass das Kernel-Image für den Bootloader zugänglich war.


2

Sie erwähnen, dass eine Festplatte gefüllt ist, während die andere über freien Speicherplatz verfügt - das ist einer der Gründe, warum ich partitioniere -, weil ich sicherstellen kann, dass bestimmte Partitionen nicht voll werden. Obwohl, wie Kontingente früher verwaltet wurden, müssen Sie allen Benutzern ein 0-Kontingent für die anderen Partitionen zuweisen, um sicherzustellen, dass sie keine Dateien verstecken, wenn sie ein Verzeichnis finden, in dem sie sich befinden könnte schreiben.

Zur Vereinfachung des Backups: Wenn ich weiß, wie groß die einzelnen Partitionen maximal sein dürfen, kann ich sicherstellen, dass sie genau auf ein einzelnes Band passen und in einer festgelegten Zeit abgeschlossen werden können.

Was die Zuverlässigkeit anbelangt, kann ich mir nichts anderes vorstellen als das Überwachen. Ich kann leichter erkennen, wann eine bestimmte Partition größer wird, als es sein sollte, und kann mir einen Grund geben, dies zu untersuchen.

... Nun sind wir weit davon entfernt, dass jedem Benutzer sein kleines 20-MB-Kontingent auf einem gemeinsam genutzten Computer zugewiesen wird. Einige der alten Gewohnheiten machen keinen Sinn - aber wenn ein Prozess durchgedreht ist und / var füllt, was wiederum / füllt und die Dinge zum Erliegen bringt, ist es gar nicht so schlecht, Schutz für Produktionsmaschinen zu haben .

Zu Hause habe ich Partitionen, aber dies soll die Verwaltung der installierten Betriebssysteme vereinfachen.


1

Persönlich nutze ich nur die Partitionierung auf den Computern meines Kindes. Ich erstelle eine große Partition für das Betriebssystem und eine kleine Partition für ein Image der Betriebssystempartition, damit ich das Image schnell wiederherstellen kann, wenn der Computer kaputt ist.

In einer Unternehmensumgebung habe ich noch nie ein überzeugendes Argument für die Partitionierung gehört.


1

Alles in Maßen ist eine gute Sache - es kann ein gutes Werkzeug sein, um Probleme zu isolieren, wenn ein Fehler vorliegt - wie z. B. das Auffüllen der Festplatte oder die Beschädigung des Dateisystems.

Nicht mit Hardwarefehlern verwechseln - diese sollten durch Hardware-Redundanz (RAID) behandelt werden

Allerdings fallen Dateisysteme heutzutage seltener aus - manche führen sogar Online-Integritätsprüfungen durch (wie ZFS). Also hoffentlich geht fsck irgendwann offline ...

Auf der anderen Seite bedeutet das Übertreiben am Ende nur mehr Arbeit (für Sie und Ihr Team) - tun Sie es nur in Maßen und wenn es Sinn macht ...

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.