Die Vorzüge eines partitionlosen Dateisystems

39

Ich bin vor ein paar Wochen auf etwas gestoßen, das ich noch nie zuvor gesehen hatte: Ein Dateisystem (Ext3, glaube ich), das auf einem Speichergerät ohne Partition installiert wurde. Im Wesentlichen /dev/sdb war das gesamte Dateisystem. Ich weiß, dass viele Dateisysteme in den leeren Raum erweitert werden können. Auf diese Weise können Sie also ohne LVM oder eine andere Art von Volume-Manager erweitern. Gibt es jedoch weitere Vorteile, wenn Sie den Speicher auf diese Weise einrichten?

Der spezielle Fall, den ich sah, war das kurzlebige Datenvolumen für einen Server, auf dem nur Zahlen gespeichert sind. Das Boot- und Root-Volumen waren traditionelle Partitionen auf einem anderen Speichergerät. -

sysadmin1138
quelle
Oracle VM tut dies auch - für "lokalen Speicher".
Nils
3
Ich habe diese Frage verpasst und eine neue gestartet, die denselben Grund abdeckt : unix.stackexchange.com/q/52389/4801 . Diese Frage wurde nun geschlossen, aber einige der Antworten könnten auch für die Leser dieses Q nützlich sein und hier zusammengefasst werden.
dubiousjim
1
... und noch eine unter unix.stackexchange.com/questions/206141/…
derobert
Funktioniert, führt jedoch zu Problemen, bei denen Zeit verschwendet wird, wie hier gezeigt - access.redhat.com/documentation/en-us/red_hat_enterprise_linux/… .
slm

Antworten:

24

Pro: Sie verschwenden keinen Plattensektor auf einer Partitionstabelle. (Yay.)

Pro: Die Festplatte kann in einem Betriebssystem verwendet werden, das keine Partitionen im PC-Stil unterstützt. (Als würdest du eins benutzen.)

Con: Dies ist ungewöhnlich und kann Co-Sysadmins verwirren. (Sehen?)

Con: Wenn Sie ein anderes Betriebssystem installieren, könnte dies den Eindruck erwecken, dass die Festplatte Müll enthält, und das versehentliche Überschreiben durch Auswahl der falschen Festplatte erleichtern - während Betriebssysteme in der Regel Partitionen belassen, deren Typ sie nicht verstehen.

Nicht relevant: Die Erweiterung des Dateisystems ist nicht einfacher, wenn es sich direkt auf der Festplatte befindet, als wenn es sich in einer Partition befindet, und umgekehrt. (Auf LVM zu sein würde es einfacher machen.)

Fazit: Es funktioniert, aber es ist keine gute Idee.

Gilles 'SO - hör auf böse zu sein'
quelle
2
Verwirrung, ahoi! Mein interner Zähler neigt derzeit zu einem "fehlgeleiteten Optimierungsversuch".
sysadmin1138
6
Ein weiteres Manko: macht es schwieriger, die Partition später in zwei Teile aufzuteilen.
Kim
3
Kam über diesen Superuser Q & A, der einige gute Beispiele verwendet hexdumpund odin sehr konkreten Begriffen zeigt, was mit einem /dev/sdavs .. /dev/sda1Setup los ist .
slm
4
Es ist etwas einfacher, das Volume auf einer ganzen Festplatte zu erweitern, da Sie die Partition nicht zuerst erweitern müssen.
Psusi
2
In einer nichtkommerziellen Umgebung kann die Installation eines anderen Betriebssystems relevant sein - aber wer kann Multiboots in einer kommerziellen Umgebung verwenden? Ich bin beunruhigt, dass dies die kanonische Antwort ist. Daran ist nichts auszusetzen, außer dass es die Meinung ist. Ich bin auf dem Zaun über die Verwendung von partitionless Festplatten, aber einige gute Gründe sind unten angegeben.
Graham Nicholls
18

Wir sind uns nicht sicher, wie dies für Linux gelten würde, aber mit nativem ZFS wird empfohlen, Pools auf ganzen Festplatten und nicht auf Partitionen zu erstellen. Im ersten Fall kann der Festplattenschreibcache aktiviert werden.

Einige andere Gründe, die hier ebenfalls erwähnt werden:

http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide#Storage_Pools

Fazit: Es funktioniert und ist je nach Dateisystem eine gute Idee.

jlliagre
quelle
Gut zu wissen. In diesem speziellen Fall war es in der Cloud! Daher ist der Speicherplatz zum Zeitpunkt der Systemeinrichtung ziemlich stark abstrahiert.
sysadmin1138
1
Was in aller Welt hat der Festplattenschreibcache damit zu tun, ob eine Partitionstabelle verwendet wird oder nicht?
Psusi
3
Der Schreibcache kann nicht auf Partitionsebene aktiviert werden. Wenn diese Option aktiviert ist, wirkt sie sich auf die gesamte Festplatte aus. Wenn ein Dateisystem eine ganze Festplatte verwendet, "besitzt" es diese Festplatte, so dass es diesen Cache ohne Sicherheitsrisiko ein- und ausschalten kann. Andernfalls wirkt sich dies möglicherweise auf einen anderen Plattenverbraucher aus, der diesen Cache aus eigenen Gründen deaktivieren muss.
Juli
4
Sicher, aber wenn das Betriebssystem blind den Cache einschaltet, ohne die Anforderungen des Dateisystems oder der Raw-Geräteverbraucher zu kennen, ist dies kein zuverlässiger Ansatz. Es gibt Anwendungen wie Datenbanken, die sicherstellen müssen, dass sich eine festgeschriebene Transaktion auf der Festplatte und nicht nur im Arbeitsspeicher befindet.
Juli
1
@psusi Ob fsync den Festplatten-Cache leeren wird oder nicht, scheint abhängig vom Dateisystem zu sein.
Juli
16

Ich sehe den realen Vorteil, wenn dies in einer virtuellen Umgebung durchgeführt wird. Da unsere VMDKs auf unserem NAS gespeichert sind, können wir sie dynamisch vergrößern.

Wenn wir Partitionen verwenden, müssen wir entweder LVM (und den damit verbundenen Overhead) verwenden und die Partitionen miteinander verketten, oder wir müssen den Host (oder das Dateisystem, wenn es nicht verwendet wird) herunterfahren, um so etwas wie gparted zu verwenden.

Wenn Sie jedoch die gesamte Festplatte anstelle einer Partition verwenden, können Sie eine erneute Überprüfung Ihrer SCSI-Festplatten erzwingen und resize2fs verwenden, um das Dateisystem zu vergrößern, während es online ist (und verwendet wird!).

Nick Gasparovich
quelle
Guter Punkt! Bei virtuellen Laufwerken (da Sie sie nach Bedarf erstellen, entfernen und in der Größe ändern können) scheinen Partitionen eine nutzlose Ebene zu sein.
Pabouk
11

Das Platzieren eines Dateisystems auf einem Datenträgergerät, ohne eine Partition zu erstellen, ist keine Seltenheit.

Vorteile:

  • Wenn Sie trotzdem den gesamten Speicherplatz nutzen möchten, müssen Sie Ihre Zeit nicht mit einem Partitionierungs-Tool verschwenden
  • Sie müssen sich nicht um Inkompatibilitäten des 'Standard'-Partitionsformats kümmern (übrigens, welches Partitionsformat ist das Standard-, das DOS-, das BSD-Format?), z. B. erlaubt das DOS-Partitionsformat nur Partitionen bis zu 2 TB, wenn es verwendet wird 512 Byte logische Sektoren!
  • Bei Laufwerken mit (derzeit) ungewöhnlichen Sektorgrößen (z. B. 4 KByte) müssen Sie sich keine Gedanken über durch Partitionen verursachte Ausrichtungsprobleme machen. Aktuelle Distributionen sollten Partitionierungswerkzeuge bereitstellen, die die richtige Ausrichtung mit unterschiedlichen Sektorgrößen durchführen

Die Größe eines Dateisystems auf einem Raw-Gerät zu ändern, ist kein guter Grund. Den Platz, den Sie auf diese Weise sparen, können Sie nicht für andere Dinge verwenden. Auf diese Weise können Sie das Dateisystem direkt auf dem gesamten Gerät erstellen.

maxschlepzig
quelle
2

Eine nicht aufgeführte Antwort lautet: Wenn Sie keine Partition erstellen, müssen Sie nicht darauf warten, dass der Kernel sie erkennt, was möglicherweise erst nach einem Neustart der Fall ist.

Ein Anwendungsfall könnte ein EC2-EBS-Volume sein, das Sie dem Knoten hinzufügen und beim ersten Start initialisieren möchten.

Wenn bei der Initialisierung eine Partition erstellt wird, besteht die Gefahr, dass der Kernel neu gestartet werden muss, um die neu erstellte Partition anzuzeigen. Normalerweise sehen Sie eine Nachricht wie:

Fehler: Fehler beim Informieren des Kernels über Änderungen an partition / dev / xvde1 - Gerät oder Ressource belegt. Dies bedeutet, dass Linux erst nach einem Neustart von Ihnen vorgenommene Änderungen an / dev / xvde1 kennt. Sie sollten es also nicht mounten oder auf irgendeine Weise verwenden, bevor Sie es neu starten.

In diesem Fall müsste Ihr Initialisierungsprozess einen Neustart durchführen und dann der neu erstellten Partition ein Dateisystem hinzufügen.

Wenn Sie wissen, dass Sie nur eine Partition benötigen, können Sie diese auch überspringen, ohne das Risiko eines Neustarts einzugehen.

Loesche
quelle