Welches Dateisystem ist Swap unter Linux?

14

Unter Linux können Sie beispielsweise ext3 und reiserfs für Partitionen auswählen. Für die Swap-Partition wählen Sie einfach "Swap". Welches Dateisystem ist das eigentlich? Können Sie einfach eine ext3-Partition erstellen und sie zu einer Swap-Partition machen? Wie wäre das anders?

tony_sid
quelle
Swap-Dateisystem unter Linux heißt anscheinend Linux Swap-Dateisystem. Wenn es mir gelingt, echte Informationen darüber zu finden, schreibe ich eine Antwort. Bisher habe ich aus en.wikipedia.org/wiki/Paging gelesen, dass der Kernel das Dateisystem bei Swap-Dateien umgeht. Gleiches gilt möglicherweise für Swap-Partitionen.
AndrejaKo
1
Die unglaublichen Leute in den Gentoo-Foren haben mir diesen Link zur Verfügung gestellt! Alles scheint gut erklärt zu sein. Oh und danke an John R. Graham.
AndrejaKo

Antworten:

25

Swap ist kein tatsächliches Dateisystem. Es ist nur ein reservierter Teil der Festplatte, bei dem es sich um unformatierten adressierbaren Speicher ohne spezielle Struktur handelt.

mkswap erstellt einen Header für den Swap-Bereich mit einigen zusätzlichen Informationen. Aus swapheader.h des Pakets util-linux-ng:

struct swap_header_v1 {
    char         bootbits[1024];    /* Space for disklabel etc. */
    unsigned int version;
    unsigned int last_page;
    unsigned int nr_badpages;
    unsigned int padding[125];
    unsigned int badpages[1];
};

Header-Version 1 ist die aktuell verwendete. Das ist ungefähr die Magie hinter der rohen Struktur des Tausches.

matthias krull
quelle
Muss es kein Dateisystem geben, um eine Partition lesen und beschreiben zu können?
Tony_sid
4
Nein, Sie müssen nur Speicherbereiche adressieren. Genau das sind Seiten. Das liegt daran, dass Sie die Daten nicht mit einer komplexen Struktur oder zusätzlichen Informationen wie in echten Dateisystemen speichern, in denen Berechtigungen und Datumsangaben zusammen mit den Daten gespeichert werden.
Matthias Krull
5
Sie können weiterhin Blöcke adressieren, wenn Sie kein Dateisystem haben.
Matthias Krull
7

Ich denke, dass die Swap-Partition kein Dateisystem benötigt, da sich keine Dateien und Verzeichnisse darin befinden. Swap-Partition ist der virtuelle RAM-Platz.

Matteo De Felice
quelle
1
es ist nicht genau der virtuelle RAM-Platz. Es ist (wie RAM) Speicher, der dem virtuellen Speicher eines Prozesses zugeordnet werden kann.
Matthias Krull
3

Linux kennt zwei Arten von Swap Space: die Swap-Partition und die Swap-Datei. Die Auslagerungspartition ist ein unabhängiger Bereich der Festplatte, der ausschließlich zum Auslagern verwendet wird. Dort können sich keine anderen Dateien befinden. Die Auslagerungsdatei ist eine spezielle Datei im Dateisystem, die sich in Ihren System- und Datendateien befindet.

Das Austauschen ist aus zwei wichtigen Gründen erforderlich. Erstens, wenn das System mehr Speicher benötigt als physisch verfügbar ist, tauscht der Kernel weniger genutzte Seiten aus und gibt der aktuellen Anwendung (dem aktuellen Prozess), die den Speicher benötigt, sofort Speicherplatz. Zweitens kann eine erhebliche Anzahl der von einer Anwendung während ihrer Startphase verwendeten Seiten nur zur Initialisierung verwendet und dann nie wieder verwendet werden. Das System kann diese Seiten austauschen und den Speicher für andere Anwendungen oder sogar für den Festplatten-Cache freigeben.

Am1rr3zA
quelle
1
Die Antwort ist wirklich nett und erklärt den Kern des Problems, aber es ist eine Antwort auf die Frage "Was ist Swap unter GNU / Linux?" Also, was macht es hier? Link-bezogene linux.com/news/software/applications/…
AndrejaKo
Ich weiß, was Swap ist.
Tony_sid
... wusste nichts über die Auslagerungsdatei-Option
MrCalvin
-1

Es gibt zwei Möglichkeiten, Swap Space zu erstellen: Dateisystem-Swap und Geräte- (oder Raw-) Swap. Mit dem Dateisystem-Swap erstellen Sie eine Datei auf einem Dateisystem und verwenden sie als Swap-Speicherplatz (ähnlich wie unter Windows mit pagefile.sys). Beim Geräteaustausch wechseln Sie zu einer Partition, die Sie speziell für den Austausch erstellt haben.

Welches ist besser:

Früher war diese Debatte viel interessanter, weil:

Warum der Gerätetausch "besser" ist: Da Sie auf eine unformatierte Partition tauschen, ist er schneller, da Sie nicht den gesamten zusätzlichen Aufwand eines Dateisystems mit Inodes und anderem Dateisystem-Overhead bewältigen müssen

Heute jedoch gilt dieses Argument nicht wirklich. Mit der Entwicklung, wie schnell der Festplattenzugriff heutzutage ist, verschafft Ihnen der Geräte-Swap nicht viel mehr Zeit als der Dateisystem-Swap.

Warum der Austausch von Dateisystemen "besser" ist: Es ist viel einfacher, die Größe zu ändern. Wenn Sie die Partitionsgröße ändern, ist es viel schwieriger, als nur neue Dateien zu erstellen.

Heutzutage ist es jedoch bei vielen Leuten, die LVM anstelle von unformatierten Partitionen verwenden, einfach, den Swap-Bereich zu verkleinern und zu vergrößern

HEUTE ist es sogar noch strittiger: Die meisten Server sind heutzutage aus Leistungsgründen die Kosten wert, wenn sie nur voll mit Speicher sind. (Diese Debatte war früher viel populärer, als es schwieriger war, an RAM zu kommen, und es war üblich, nur 4 GB bis 8 GB RAM in einen Server zu stecken.)

WARUM ICH FILESYSTEM SWAP VERWENDE (und Swap im Allgemeinen)

In diesen Tagen weise ich unsere Jungs an, mit 4gig Swap onl zu installieren und wir verwenden die gleiche Konfiguration / das gleiche Image für alle unsere Linux-Installationen. Die Oracle-Installation erfordert eine höhere Auslagerungsnutzung, sodass ich auf Systemen mit Oracle den Rest mit der Auslagerung von Dateisystemen erstelle. Möglicherweise besteht für Ihre Anwendung eine Swap-Anforderung. In diesem Fall können Sie sie später mit dem Dateisystem-Swap hinzufügen.

Hilft das?

Ich habe hier eine detaillierte Anleitung, wie dies unter Linux gemacht wird: http://geekswing.com/geek/how-to-add-filesystem-swap-on-linux-and-unix-systems/

ben
quelle
1
„Heute gilt dieses Argument jedoch nicht wirklich. In Anbetracht der Entwicklung, wie schnell der Festplattenzugriff heutzutage ist, kostet Sie der Gerätetausch nicht viel mehr Zeit als der Austausch von Dateisystemen. “- dies ist nicht der Grund. Die Idee dabei ist, dass Swap Space möglicherweise sofort nachgefragt wird. Das Durchlaufen eines Dateisystems umfasst Verzeichnisse, Blöcke, Inodes, den Puffercache usw., die Codepfade sind, die selbst mehr Speicher benötigen können, was zu einer Schleife führt. Das ist der Grund, warum Swap am besten auf einem Raw-Block-Gerät durchgeführt wird. Außerdem wird die Fragmentierung von Swap-Dateien vermieden.
Mirabilos