Lazy umount oder Unmount einer ausgelasteten Festplatte in Linux

19

Ich habe gelesen, dass es möglich ist, eine Festplatte, die ansonsten ausgelastet ist, mit der Option "Lazy" zu "mounten". Die Manpage hat dazu folgendes zu sagen:

umount - Dateisysteme aushängen

-l Träge aussteigen. Trennen Sie das Dateisystem jetzt von der Dateisystemhierarchie und bereinigen Sie alle Verweise auf das Dateisystem, sobald es nicht mehr ausgelastet ist. Diese Option ermöglicht das Aufheben der Bereitstellung eines ausgelasteten Dateisystems. (Erfordert Kernel 2.4.11 oder neuer.)

Aber worum würde es dabei gehen? Ich habe überlegt, warum wir Partitionen überhaupt entfernen:

  1. So entfernen Sie die Hardware
  2. Ausführen von Vorgängen auf dem Dateisystem, die beim Mounten nicht sicher sind

In beiden Fällen besteht IMHO lediglich darin, durch ein verzögertes Aufheben der Bereitstellung herauszufinden, ob die Bereitstellung des Datenträgers tatsächlich aufgehoben wurde, und Sie können mit diesen Aktionen fortfahren. Die einzige Anwendung für umount -lscheint für unerfahrene Benutzer zu sein, die das Gefühl haben, etwas erreicht zu haben, was sie nicht erreicht haben.

Warum würden Sie ein fauler unmount verwenden?

deed02392
quelle

Antworten:

10

Weil Sie faul sind - Sie möchten die Bereitstellung aufheben, nachdem die Festplattenvorgänge abgeschlossen sind.

Hier ist ein plausibles Szenario:

Sie verwenden rsync, um Ihre Sicherungen durchzuführen und wegzugehen. Sie können umount -ldas Laufwerk deaktivieren, sobald es fertig kopiert und synchronisiert ist. Wenn Sie also nach einer Pause wieder zurückkehren (von der Sie wissen, dass sie länger dauert als die Sicherung), können Sie das Laufwerk einfach vom Computer trennen, anstatt erneut mit der Tastatur spielen zu müssen .

Broam
quelle
Wenn Sie faul wären, würden Sie sicherlich MEHR Zeit sparen wollen, indem Sie das Argument nicht verwenden müssen, denn wenn Sie zurück sind, wissen Sie, dass Sie es sofort wieder entfernen können, wenn die Sicherung abgeschlossen ist? Oder machen Sie das Entfernen des Laufwerks zu einem Teil der Vorgänge nach dem Backup?
deed02392
Stellen Sie es sich folgendermaßen vor: Die Festplatte ist nicht mehr ausgelastet. Hängen Sie sie jetzt aus. Es ist nicht mehr gemountet, so dass nichts anderes darauf schreiben kann. Es heißt "mach das, wenn du kannst", anstatt Fehler zu machen.
Broam
5

Dies wird implementiert, um mehr Zeit für die Ausführung von Folgeaufgaben in Verwaltungsaufgaben zu gewinnen.

Wenn weitere, davon unabhängige Aufgaben in der Pipeline warten, können Sie die Bereitstellung verzögern und mit anderen Aufgaben im Stapel fortfahren.

Beispiel : Task 1 und Task 2 sind zwei Verwaltungsaufgaben, die hintereinander geplant sind.

Aufgabe 1 Tägliche Sicherung

Diese kopiert eine große Anzahl von Dateien von einer Projektpartition auf eine Sicherungspartition, z. B. / mnt / backupProj, die am Ende dieser Aufgabe sofort bereitgestellt und wieder entfernt wird. Das Kopieren nimmt viel Zeit in Anspruch.

Aufgabe 2 Aktualisieren Sie die SQL-Ansichten

Führt eine Reihe von Aktualisierungen der Datenbankansicht auf einem dedizierten Server durch.

Aufgabe 2 ist offensichtlich völlig unabhängig von Aufgabe 1, sodass wir die Bereitstellung von / mnt / backupProj verzögern können, ohne auf den Abschluss der Sicherungsaufgabe zu warten.

Bora
quelle
1
Können Sie ein Beispiel geben? In welcher Situation würde es "Zeit gewinnen / sparen"?
deed02392
4

Ich verwende Lazy Umount in Fällen, in denen es offensichtlich aus verschiedenen Gründen nicht funktioniert hat (z. B. wenn der NFS-Server nicht funktioniert), auch wenn der ursprüngliche Inhalt des Verzeichnisses angezeigt werden soll, über das das Mount gemountet wurde. In beiden Fällen ist der Mount belegt. Ich denke, es gibt andere Randfälle, aber diese 2 sind die häufigsten Gründe, warum ich die Option verwendet habe.

johnshen64
quelle
Die Empfehlungen --forcefür den NFS-Fall.
Tom Hale
3

Betrachten Sie einen Bind-Mount, wie Sie bei der Arbeit mit möglicherweise sehen chroot:

mount --rbind /proc /mnt/proc
# do stuff
umount /mnt/proc

Wenn Sie einen Daemon auf Ihrem System haben, der ständig abfragt /proc(ich sehe Sie an ksysguardd), können Sie nicht umount /mnt/proc. Lazy lässt Sie umountin diesem Fall.

Goertzenator
quelle
Warum nicht --forcestattdessen hier verwenden?
Tom Hale
2

USB-Laufwerke werden manchmal aufgrund eines Hardwarefehlers blockiert. Selbst wenn Sie das Laufwerk physisch wieder anschließen, erhalten Sie einen anderen Gerätenamen. Der alte Gerätename kann normalerweise nicht abgehängt werden. betrag -l zwang den toten eintritt zu verschwinden.

user296968
quelle
1

Angenommen, Sie müssen wirklich das Volume ändern, auf dem eine Software ein Protokoll schreibt, z. B. ein Webserver, aber es hat viel Verkehr und kann für den Vorgang nicht ausgeschaltet werden, und der Protokollierungspfad kann nicht geändert werden.

Mit Lazy Unmount können Sie die Bereitstellung des Volumes sicher aufheben, während die Software noch ausgeführt wird, ein anderes Volume auf demselben Bereitstellungspunkt bereitstellen und die Software anweisen, die Dateien erneut zu öffnen.

Da Sie die Software nicht ausschalten mussten, gingen im Idealfall keine Anforderungen und im Wesentlichen auch keine Protokolleinträge verloren, da sie noch auf den alten Mount geschrieben wurden, bis die Dateien erneut geöffnet wurden (wie gut die Software das Öffnen der Datei handhabt) Dateien liegt bei der Software).

Um die Manpage zu paraphrasieren, bedeutet dies, dass wenn das Volume geöffnete Dateien hat, wenn es nicht gemountet ist, es in Wirklichkeit gemountet bleibt, aber nur über das Dateisystem nicht zugänglich ist und erst dann wirklich nicht gemountet wird, wenn die zuletzt geöffnete Datei geschlossen wird.

Tuomas Salomäki
quelle
1
Vielen Dank, das klingt nach einer nützlichen Anwendung. Werden lsofgeöffnete Dateien auf dem alten Mountpoint angezeigt? Ich frage mich auch, wie es offene Dateien auf dem alten und dem neuen Volume unterscheiden würde.
deed02392
0

Ich verwende encfs, um einen Teil meiner sensiblen Daten zu verschlüsseln.

Wenn die Festplatte gemountet ist, erstellt Nautilus eine Vorschau (ich bin mir nicht sicher) und sperrt die Dateien. Wenn ich es aushängen möchte, heißt es, dass es von einem anderen Prozess gesperrt ist.

Durch das langsame Aufheben der Bereitstellung wird der Ordner aus meiner Hierarchie entfernt und ausgeblendet. Am Ende des Hintergrundprozesses wird die Bereitstellung erfolgreich aufgehoben.

Jehon
quelle