Frage Verkaufe Partitionierung an mich


Ich habe mich oft gefragt, warum es so eine Leidenschaft für Partitionierungslaufwerke gibt, insbesondere auf Unixy-Betriebssystemen (/ usr, / var, et al). Dies scheint bei Windows-Installationen kein häufiges Thema zu sein.

Es scheint, dass die Partitionierung die Wahrscheinlichkeit, eine Partition zu füllen, stark erhöht, während andere viel freien Speicherplatz haben. Natürlich kann dies durch sorgfältige Planung und Planung verhindert werden, aber die Dinge können sich ändern. Ich habe das oft auf Maschinen erlebt, meistens auf denen, die von anderen eingerichtet wurden, oder durch die Standard-Installationseinstellungen des betreffenden Betriebssystems.

Ein anderes 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. Nochmal, wie?

Fast 100% der Probleme, die ich beim Plattenspeicher festgestellt habe, sind physische Fehler auf der Festplatte. Könnte man argumentieren, dass die Partitionierung möglicherweise den Hardwarefehler beschleunigen kann, weil die Festplatte beim Verschieben oder Kopieren von Daten von einer Partition auf eine andere auf derselben Platte eine Thrash-Aktion ausführt?

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


45
2017-09-01 19:19


Ursprung


In der Infrastructure As A Service-Cloud sind Partitionen problematisch, da Laufwerke (normalerweise Volumes genannt) so flexibel angehängt werden können. - Skaperen


Antworten:


  • Schnelleres fsck. Nehmen wir an, Ihr System schlägt aus irgendeinem Grund fehl, und wenn es neu startet, muss es einen fsck ausführen. Mit einer wirklich großen Partition kann fsck ewig dauern und nichts auf dem System wird funktionieren, bis der fsck des gesamten Systems fertig ist. Wenn Sie das System so partitionieren, dass die Root-Partition ziemlich klein ist, können Sie möglicherweise das System hochfahren und einige der grundlegenden Dienste ausführen, während Sie darauf warten, dass die FSCK der größeren Volumes abgeschlossen wird.
    • 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 spielt dies meistens keine Rolle, aber gelegentlich muss sogar bei einem aufgezeichneten Dateisystem ein vollständiger fsck ausgeführt werden.
  • Verbesserte Sicherheit, da Sie eine fs schreibgeschützt mounten können.
    • Zum Beispiel sollte niemand während der normalen Benutzung zu / usr schreiben müssen. Warum mounten Sie also das Dateisystem nicht nur so, dass es schreibgeschützt ist? Dateisysteme schreibgeschützt zu haben, wenn sie nicht geschrieben werden müssen, verhindert einige Script-kiddy-Angriffe und kann Sie daran hindern, Dinge zu zerstören, wenn Sie es nicht auch so meinen.
    • Dies kann die Wartung des Systems erschweren, da Sie es erneut als Lese- / Schreibzugriff erneut installieren müssen, wenn Sie Updates installieren müssen.
  • Verbesserte Leistung, Funktionalität für einen bestimmten Dienst / Nutzung.
    • Einige Dateisysteme sind für bestimmte Dienste / Anwendungen besser geeignet oder erlauben es Ihnen, das Dateisystem so zu konfigurieren, dass es in einigen Fällen besser funktioniert. Vielleicht haben Sie ein Dateisystem mit vielen kleinen Dateien und Sie brauchen mehr Inodes. Oder vielleicht müssen Sie ein paar große Dateien, virtuelle Disk-Images speichern.

Ich denke nicht, dass das Einrichten vieler Partitionen für jedes System erforderlich ist. Persönlich, auf den meisten Linux-Servern habe ich nur eine große Partition eingerichtet. Da die meisten meiner Systeme kleine Laufwerke haben, sind sie nur für den Zweck und dienen einer Infrastruktur-Rolle (DNS, DHCP, Firewall, Router, etc.). Auf meinen Dateiservern installiere ich Partitionen, um die Daten vom System zu trennen.

Könnte man diese Partitionierung argumentieren?   kann möglicherweise Hardware beschleunigen   Scheitern, wegen der Prügel a   Festplatte funktioniert beim Verschieben oder Kopieren von Daten   von einer Partition zur anderen auf der   gleiche Scheibe?

Ich bezweifle stark, dass ein gut unterteiltes System eine erhöhte Wahrscheinlichkeit des Scheiterns haben würde.


40
2017-09-01 19:28



+1 Sowohl Sicherheit als auch Katastrophenvorsorge werden in Schichten durchgeführt. Ich denke gerne an Schottwände, die Schotten ähneln. Sie sind dort, so dass, wenn etwas katastrophales in einem Segment des Schiffes passiert, das Schiff als Ganzes nicht unbedingt gefährdet ist. Wenn also Dateisystembeschädigungen auftreten, ist der Schaden etwas eingedämmt. Aus Sicherheitsgründen kann / hoses als noexec bereitgestellt werden, um bestimmte Arten von Angriffen zu verhindern, wenn beispielsweise ein Benutzerkonto durch ein schwaches Passwort kompromittiert wird. - 3dinfluence
Es gibt bekannte Exploits, die funktionieren nur auf Partitionen, die mit noexec oder ro gemountet sind. echte Sicherheit wird nicht durch Partitionierung angestrebt, aber die Partitionierung kann bei der Schadensbegrenzung helfen (vgl. zum Beispiel Hochwasserangriff) - drAlberT


Ein Grund zum Beibehalten / Home / Seperate ist, dass Sie das Betriebssystem neu installieren können und sich keine Gedanken über den Verlust von Benutzerdaten machen müssen. Darüber hinaus gibt es eine Menge Sicherheit, wenn man alles, entweder nur lesen oder noexec, installieren möchte. Wenn Benutzer keinen Code ausführen können, an dem sie Code schreiben können, ist dies ein Angriffsvektor weniger.

Ich würde mich aber nur damit auf einer öffentlichen Maschine beschäftigen, da der Nachteil, dass der Speicherplatz auf einer Partition knapp wird, aber in einer anderen Partition vorhanden ist, eine ernste Belästigung ist. Es gibt Möglichkeiten, um dies zu umgehen, wie Software Raid oder ZFS zu tun, wo Sie in der Lage sein sollten, die Größe von Partitionen einfach zu ändern, aber ich habe keine Erfahrung damit.


19
2017-09-01 19:33



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 mehr darauf bestehen sollte, Benutzerdaten dort zu trennen, wo sie gespeichert sind, nicht nur, wenn sie sich in / home befinden. - Zoredache
Auf Maschinen, die für die wissenschaftliche Verarbeitung verwendet werden, ist es für eine beträchtliche Anzahl von Menschen üblich, Shell-Konten zu haben. In diesem Fall kann eine separate / home Partition sehr nützlich sein. - jay_dubya
Wenn Sie eine beträchtliche Anzahl von Rechnern haben, ist es häufig, dass / home ein NFS-Mount von einem Fileserver ist, der logischerweise / home auf einer eigenen Partition hat, wegen der oben genannten Probleme. - Matt Simmons
Benutzer verwenden häufig den gesamten verfügbaren Speicherplatz und dies kann für die von einem Server bereitgestellten Dienste katastrophal sein. Wenn sie nur Schreibzugriff auf eine separate Partition erhalten, schützt dies den Server vor einem Fehler aufgrund einer vollständigen Root-Partition. Wenn Sie Ihre Protokolldateien auf einer separaten Partition ablegen, wird dasselbe ausgeführt. - Chris Nava
Ich denke, Festplattenquoten und Log-Rotationen sind eine bessere Lösung für das Platzproblem, aber separate Partitionen machen einen schönen letzten Zufluchtsort - semi


  • Vereinfachung der Sicherung

Sie können Sicherungskopien (über dumpf oder ähnliches) von Dingen erstellen, die Sie möchten, nicht von Dingen, die Sie nicht möchten. dump (1) ist ein besseres Sicherungssystem als tar (1).

  • Partitionen auffüllen

Das ist ein Argument für die Partitionierung. Benutzer, die ihre Homedires füllen, ruinieren den Server nicht, nehmen den Webserver herunter, verhindern, dass Logs gespeichert werden, verhindern, dass root sich anmeldet usw.

Außerdem können Sie einen Teil Ihrer Daten (z. B. / home) transparenter auf einen anderen Datenträger verschieben: kopieren Sie ihn, mounten Sie ihn. Wenn du etwas verwendest, das Schattenkopien / Schnappschüsse erlaubt, kannst du das sogar live machen.


13
2017-09-01 19:43





Mir wurde schon immer beigebracht, / var auf einer separaten Partition zu belassen. Wenn Sie eine außer Kontrolle geratene Log-Datei erhalten, werden Sie eine einzelne Partition und nicht das gesamte Laufwerk verstopfen. Wenn es auf dem gleichen Platz wie der Rest des Systems ist und Sie 100% Ihre gesamte CD füllen, kann es abstürzen und für eine böse Wiederherstellung sorgen.


9
2017-09-01 23:25



Ich kann auf der einen Seite über meine 15-jährige Karriere zählen, wie oft ich ein System verloren habe, weil eine Run-away Log-Datei (oder was auch immer) eine Maschine zum Absturz gebracht hat. Auf der anderen Seite kann ich auf der einen Seite zählen, wie oft ich dieses Jahr schon verstoßen habe, weil jemand entschieden hat, / var würde niemals größer als 1GB sein und falsch liegen müssen, was mich dazu brachte, '00s frei zu sehen GB in / opt, all das könnte genauso gut auf dem Mond gewesen sein, wie es mir gut tut. (Ich bin gegen Partitionierung. :) - David Mackintosh
Ich stimme David zu, da ich genau dieselben Erfahrungen mit Linux- und Windows-Rechnern gemacht habe. Wenn es keinen überwältigenden Grund gibt, etwas anderes zu tun, erhält jeder Datenträger (oder RAID-Array) eine Partition. - John Gardeniers
Nun, diese Woche passierte es auf einem Windows-System. McAfee hat ein großes Update veröffentlicht. Wir hatten ungefähr 5-10 Systeme, die es nicht mochten. Der Antiviren-Assistent versucht zu installieren, erstellt eine 35-MB-Protokolldatei und versucht es erneut. 1500 Mal später hatte ich 0KB frei und ein System, bei dem nicht eingeloggt werden konnte. - Skaughty


Alle Argumente, die Zoredache vorbringt, sind gültig; Man könnte mit den Details ein bisschen knabbern (eine Maschine schneller zu haben, so dass man andere Dinge tun kann, während andere Dateisysteme fsck'n nicht viel nützen, wenn der Grund des Systems für das Vorhandensein an erster Stelle auf diesen anderen Dateisystemen liegt) ; aber sie sind alle ein bisschen gerechtfertigt - nach der Tat.

In der Zeit der alten Schule hatten Sie keine Dateisysteme auf separaten Partitionen - Sie hatten sie auf separaten Festplatten, weil die Festplatten wirklich klein waren. Denken Sie an 10MB. (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 begannen "große" 50MB-Festplatten weniger zu kosten als das Mondprogramm, und plötzlich wurde es möglich, ein ganzes System auf eine Platte mit einer brauchbaren Menge an Benutzerplatz zu bringen.

Da die Größe der Datenträger im Vergleich zu dem, was der Computer generieren konnte, klein war, wurde die Isolierung von / var und / opt und / home, so dass das Ausfüllen des Computers den Computer nicht herunterbrachte, immer noch eine gute Idee.

Heute, in einer Unternehmenssituation, partitioniere ich die Betriebssysteme nicht. Daten werden partitioniert, besonders wenn sie vom Benutzer generiert werden; aber häufig liegt das daran, dass es sich um High-Speed- und / oder redundante Platten-Arrays handelt. Jedoch leben / var und / usr alle in derselben Partition wie /.

In einer Heimumgebung sollte dasselbe - / home wahrscheinlich auf einer separaten Platte / einem separaten Array sein, so dass man installieren / upgraden / brechen / reparieren kann, welche OS-Varianten gewünscht werden.

Der Grund dafür ist, dass, egal wie groß Sie Ihre / var oder / usr oder was auch immer Baum bekommen könnte - Sie werden entweder urkomisch falsch sein oder Sie werden lächerlich zu viel festlegen. Einer meiner alten (Schul-) Kollegen schwört auf Partitionierung, und ich bekomme immer Kummer von ihm, wenn er durch eine 180-Tage-Fsck auf einem System, das ich erstellt habe, sitzt. Aber ich kann auf einer Hand über meine gesamte Karriere die Anzahl von Zeiten zählen, die etwas voll ist / und das System heruntergebracht hat, während ich eine Hand die Zahl von Zeiten so weit dieses Jahr zählen kann, dass ich auf ein System gestarrt habe, wo jemand ist entschieden / var würde nie mehr als (sagen wir) 1GB brauchen und falsch liegen, so dass ich auf eine volle / var und '00s freie GB irgendwo anders im System starrte, was genauso gut für alle auf dem Mond hätte sein können das Gute, das sie mir tun.

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


(1) = und ich weiß nur, dass ich jemanden in den Kommentaren dazu bringe, diese Größe zu wählen 10 MB? Luxus. Warum unsere Scheiben nur ... waren


8
2017-09-01 22:27



Eigentlich 10 MB war die Größe der Festplatte das erste Mal, dass ich jemanden hörte "XXX FooBytes: mehr Speicher als ich werde je brauche ich! ". Obwohl ich ein Junge bin, so war das circa 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


Als Antwort auf :

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

Auf einer Linux-Maschine wird dies durch LVM (Logical Volume Management) verhindert. Die meisten Dateisysteme erlauben eine Größenänderung (einige sogar online). Ich erstelle verschiedene Partitionen für verschiedene Zwecke und formatiere sie zu verschiedenen Dateisystemen (zB: xfs für große Download-Dateien, die ich schnell löschen kann). Brauche mehr Platz? Mounten Sie ein neues Laufwerk, verschieben Sie die Daten dorthin und mounten Sie es dort, wo die Daten früher waren. Es ist völlig nahtlos für Benutzer und Anwendungen.

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

Zum Beispiel: Machen Sie eine Boot-Partition auf / dev / sda1 Mach eine zweite (unformatierte) Partition / 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 auf / Downloads benötigen (während das Dateisystem eingebunden ist):

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

Und Sie haben jetzt eine Download-Partition mit 150 GB. Ähnlich für Zuhause. Tatsächlich habe ich gerade eine ext4 lvm "Partition" geändert. Auf der anderen Seite sind logische Volumes nicht wirklich Partitionen und was Sie sagen, dass Partitionen die falsche Größe haben, mit meiner persönlichen Erfahrung (mehr Ärger, als sie wert sind).


5
2017-09-02 00:53





Das traditionelle Unix-Partitionierungsschema ist definitiv eine alte Schulpraxis, die nicht so nützlich ist wie früher. An dem Tag, an dem die Betriebszeit des Unix-Systems in Jahren gemessen wurde und Dutzende von hunderten von Benutzern mit Shells herumfummelten, war die Installation von / usr als schreibgeschützt eine nützliche Methode, um das System zu schützen. Die erneute Installation von Dateisystemen auf einen Patch scheint arbeitsintensiver und nicht so nützlich zu sein.

An meiner Universität in den guten alten Tagen hatten die Unix-Cluster schreibgeschützte Dateisysteme mit den Standard-Unix-Tools, und Add-On-Anwendungen befanden sich in / usr / local, einem NFS- und später einem AFS-Dateisystem. Ein Teil davon war Bequemlichkeit ... wer wollte Software auf einem Dutzend Boxen im Cluster neu kompilieren, wenn Sie Apps über ein Hochgeschwindigkeits-4Mb- oder 10Mb-Netzwerk laufen lassen konnten? Heute, mit anständigen Paketmanagern und vielen billigen Festplatten, ist das kein großer Deal.

Ich denke, dass sich die Denkprozesse für mich auf Sun-Boxen mit Veritas Volume Manager um 1999 herum änderten, wodurch die Schmerzschwelle für das Bewegen von Festplatten erheblich reduziert wurde.

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

  • Tier 1 SAN ist sehr schnell, sehr verfügbar (5 9), repliziert und sehr teuer. Mission Critical Datenbanken oder Transaktionsprotokolle leben dort.
  • Tier 2 SAN ist schnell, verfügbar (4 9), teuer. Anwendungen oder Daten mit niedrigerer Priorität leben hier.
  • Tier 3 SAN ist verfügbar (4 9), billig. Dinge, 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 Mega-Buck-IBM DS8000-Festplatte. Die Softwarepakete befinden sich auf einer EMC Celerra mit großen, langsamen SATA-Festplatten, die pro GB 60% weniger kosten.


4
2017-09-01 22:21





Ich verstehe, dass diese Frage nicht betriebssystemspezifisch ist, oder?

Unter Windows tendiere ich dazu, all meinen Rechnern so wenige Partitionen wie möglich zu geben, aber nicht weniger als zwei - SYSTEM und DATA. Wenn die Maschine zwei physische Festplatten hat, ist eine (kleinere) SYSTEM, die anderen DATEN. Wenn es nur eine Festplatte gibt, teile ich sie in zwei Partitionen auf.

Der Grund dafür ist nur einer - wenn ich die Maschine neu installieren muss (und es wird so eine Zeit geben), muss ich mich nicht um den Inhalt der SYSTEM-Partition kümmern - ich mache nur ein volles Format darauf und a sauber installieren. Dies bedeutet natürlich, dass meine Dokumente (und vorzugsweise auch Desktop) in einen Ordner auf DATA gemappt werden müssen, aber das ist einfach zu tun, besonders auf Vista und später.

Ich habe auch versucht, mehr Partitons (wie GAMES, MUSIC, MOVIES, etc.) zu machen, aber das hat nur dazu geführt, dass einige von ihnen in andere übergelaufen sind und mehr Chaos als Ordnung erzeugt haben.


2
2017-09-01 20:04



Das ist sogar noch anwendbarer, wenn Sie es auf Servern tun. - SpaceManSpiff


(Angenommen, eine einzige große Festplatte ist verfügbar,) habe ich home und var auf separaten Partitionen, um das Problem "außer Kontrolle [Benutzer | Log-Datei], das den gesamten Speicherplatz ausfüllt" zu kontrollieren, und einfache OS-Upgrades zu ermöglichen, ohne zu Hause zu berühren, aber den Rest zusammen zu lassen.

Auf älterer Hardware war es manchmal notwendig, ein separates zu haben boot Partitionierung, um sicherzustellen, dass das Kernel-Image für den Bootloader zugänglich ist.


2
2017-09-02 14:18