Das Linux-Kernelmodul zur Unterstützung von User-Space-Dateisystemen heißt FUSE. Der vollständige Name von Fuse lautet „Filesystem in Userspace“, was auf Chinesisch „User Space File System“ bedeutet. Es bezieht sich auf ein Dateisystem, das vollständig im Benutzermodus implementiert ist und eine wichtige Komponente darstellt eines allgemeinen Betriebssystems.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
Was ist Linux Fuse
Dateisystem im Userspace bezieht sich auf ein Dateisystem, das vollständig im Benutzermodus implementiert ist. Es wird in Linux verwendet, um bestimmte Netzwerkbereiche, wie z. B. SSH, in lokale Dateien einzuhängen Systemmodule, relevante Inhalte können finden Sie auf SourceForge.
Das von Linux zur Unterstützung des User-Space-Dateisystems verwendete Kernel-Modul heißt FUSE. Der Begriff FUSE bezieht sich manchmal speziell auf das User-Space-Dateisystem unter Linux. Es ist ein wichtiger Teil eines allgemeinen Betriebssystems. Betriebssysteme bieten traditionell Unterstützung für Dateisysteme auf Kernel-Ebene. Im Allgemeinen ist Kernel-Modus-Code schwer zu debuggen und weist eine geringe Produktivität auf.
Das sogenannte „Benutzermodus-Dateisystem“ bedeutet, dass die Daten und Metadaten eines Dateisystems durch Benutzermodusprozesse bereitgestellt werden (dieser Prozess wird „Daemon“ genannt). Für Mikrokernel-Betriebssysteme ist die Implementierung eines Dateisystems im Benutzermodus nichts, aber für Makrokernel-Linux ist die Bedeutung anders.
Obwohl es als Benutzermodus-Dateisystem bezeichnet wird, bedeutet dies nicht, dass überhaupt keine Beteiligung des Kernels erforderlich ist, da der Zugriff auf Dateien unter Linux einheitlich über die vom VFS bereitgestellte Kernelschnittstelle erfolgt Daher muss ein Prozess (genannt „Benutzer“), der auf das vom Daemon implementierte Dateisystem zugreift, immer noch VFS durchlaufen.
Wenn VFS eine Dateizugriffsanforderung vom Benutzerprozess empfängt und feststellt, dass die Datei zu einem Dateisystem im Benutzermodus gehört (je nach Mount-Typ), überträgt es die Anforderung an ein Kernelmodul namens „fuse“. Anschließend wandelt „fuse“ die Anfrage in das mit dem Daemon vereinbarte Protokollformat um und übermittelt sie an den Daemon-Prozess.
Es ist ersichtlich, dass in dieser Drei-Parteien-Beziehung das Kernelmodul „Fuse“ eine Übertragungsrolle spielt. Es hilft beim Aufbau eines Kommunikationskanals zwischen VFS (es kann auch als Benutzerprozess bezeichnet werden) und Laienhaft ausgedrückt ist seine Rolle tatsächlich die eines „Agenten“.
Die Implementierung dieses vollständigen Frameworks in Linux ist FUSE (Filesystem in Userspace). Wie in Abbildung 1 dargestellt, handelt es sich bei dem Teil im roten Feld um die spezifische Implementierung des Dateisystems vom Typ FUSE und um den Platz, den Designer von Dateisystemen im Benutzermodus nutzen können. Derzeit sind mehr als hundert Dateisysteme basierend auf FUSE implementiert (einige Kernel-basierte Dateisysteme können auch in Benutzermodus-Dateisysteme wie ZFS und NTFS portiert werden). In diesem Artikel wird eine vorgefertigte Sicherung verwendet. sshfs zur Demonstration.
Installieren Sie zunächst das Softwarepaket „fuse-sshfs“ und verwenden Sie den folgenden Befehl, um das Dateisystem zu mounten (mounten Sie das Verzeichnis „remote-dir“ des Remote-Computers in das Verzeichnis „local-dir“ des lokalen Computers):
sshfs:
Danach wird ein Ordner mit dem Namen „fuse“ im Verzeichnis „/sys/fs“ generiert, und Sie können die Datei sehen Das Kernelmodul „fuse“ wurde geladen (das entsprechende Gerät ist „/dev/fuse“), und der Typ des lokalen Montageverzeichnisses wurde zu „fuse.sshfs“:

Der Zweck der Generierung von Geräteknoten ist Es Dies ist praktisch für die Benutzermodussteuerung, aber für Anwendungen auf Dateisystemebene ist es immer noch problematisch, ioctl () direkt für den Zugriff auf das Gerät zu verwenden, da zu viele Details angezeigt werden, sodass libfuse als Zwischenschicht entsteht und der Daemon-Prozess ausgeführt wird Tatsächlich werden Fuse-Gerätedateien über die von libfuse bereitgestellte Schnittstelle betrieben.
Du kommst und gehst
Nehmen Sie als Nächstes das Beispiel der Erstellung einer neuen Datei über den Befehl „touch“ im Dateisystem „fuse.sshfs“, um den spezifischen Interaktionsprozess zwischen dem Fuse-Kernelmodul und dem Daemon-Prozess anzuzeigen (d. h. „sshfs“) (Der Codeteil basiert auf der Kernel-Version 5.2.0):
[Erste Runde]
Der Anfang ist die Berechtigungsüberprüfung, aber die Überprüfung hier entspricht nicht der VFS-Berechtigungsüberprüfung Der Zweck besteht darin, zu verhindern, dass andere Benutzer auf ihr privates Fuse-Dateisystem zugreifen.

Dann wird der Inode der Datei anhand des Dateipfads gefunden. Da es sich um eine neu erstellte Datei handelt, befindet sich der Inode nicht im Inode-Cache des Kernels, daher müssen Sie eine „Lookup“-Anfrage an den Daemon senden:

Ausstehende Warteschlange gestellt und auf die Antwort vom Daemon-Prozess gewartet, und der Benutzerprozess wird in den Ruhezustand versetzt:
#🎜🎜 #

】#🎜🎜 ## 🎜 🎜#Der nächste Schritt sind weitere Systemaufrufe, die beim Ausführen des „touch“-Befehls ausgelöst werden. Wenn bereits zuvor auf Daten/Metadaten zugegriffen wurde, sind diese wahrscheinlich im Cache vorhanden Kernelmodul sichern Es kann von selbst gelöst werden, ohne dass ein Roundtrip in den Benutzerbereich erforderlich ist. Andernfalls muss es weiterhin zur Verarbeitung an den Daemon-Prozess gemeldet werden. Hier ruft get_fuse_conn() die Strukturinstanz „
fuse_conn
Fuse_write/read() und fuse_dev_write/read()
Ersteres wird vom Benutzerprozess verwendet, um auf die Sicherungsdatei zuzugreifen System. VFS-Lese- und Schreibanforderungen für Dateien sind Vorgänge für reguläre Dateien. Letzteres ist das Lesen und Schreiben von „/dev/fuse“, einem Gerät, das das Fuse-Kernelmodul darstellt, durch den Daemon-Prozess anfordern und antworten.【Die dritte Runde

Zwei Seiten der Medaille

Warum nimmt Fuse dann immer noch einen Platz in den vom Betriebssystem unterstützten Dateisystemen ein? Apropos: Die Entwicklung im Benutzermodus hat viele Vorteile. Erstens ist es einfach zu debuggen und eignet sich besonders für die schnelle Überprüfung eines neuen Dateisystem-Prototyps, weshalb es im Bereich der akademischen Forschung sehr beliebt ist. Im Kernel können Sie nur die Sprache C verwenden. Im Benutzermodus gibt es nicht so viele Einschränkungen. Verschiedene Funktionsbibliotheken und verschiedene Programmiersprachen können verwendet werden.
Zweitens führen Kernelfehler häufig dazu, dass das gesamte System bei der geringsten Meinungsverschiedenheit abstürzt (was bei virtualisierten Anwendungen schwerwiegender ist, da der Absturz des Hosts zum Absturz aller darauf ausgeführten virtuellen Maschinen führt) und im Benutzermodus Der Fehler ist relativ begrenzt. Die Vorderseite der Medaille ist also, dass es für die Entwicklung praktisch ist, aber wie praktisch es ist, ist schließlich ein
subjektivesGefühl, während die andere Seite die Auswirkung auf die Leistung ist, die mit objektiv überprüft werden kann experimentelle Daten. Welche Methode sollte also verwendet werden, um den durch die Sicherung verursachten Verlust relativ genau zu messen? Wir verwenden immer noch die Fuse-SSHFS, die wir zuvor verwendet haben, aber hier verwenden wir kein Remote-Mounting mehr, sondern lokales Mounten (vorausgesetzt, das Verzeichnis „dir-src“ der lokalen Maschine befindet sich im ext4-Dateisystem):
sshfs localhost:Wenn der Daemon-Prozess die Anfrage empfängt, muss er erneut in den Kernel eintreten, um auf das ext4-Kernelmodul zuzugreifen (dieser Dateisystemmodus wird als „stapelbar“ bezeichnet). "):


wird im Vergleich zum nativen ext4-Dateisystem der E/A-Durchsatz um 27 % und das zufällige Schreiben um 44 % reduziert. Allerdings hat sich in den vielen Jahren seit der Geburt des Fuse-Dateisystems immer noch jeder viele Optimierungsmaßnahmen dafür ausgedacht. Beim sequentiellen Lesen und Schreiben kann beispielsweise so konzipiert werden, dass Anforderungen stapelweise an den Daemon-Prozess gesendet werden (zufälliges Lesen und Schreiben ist jedoch nicht geeignet). Es gibt auch die Zero-Copy-Technologie des
Splicing. Der vom Linux-Kernel bereitgestellte Spleißmechanismus ermöglicht es dem Benutzer, die Daten der Speicherpuffer der beiden Kernel ohne Kopieren zu übertragen . Das Fuse-Kernelmodul überträgt Daten direkt an das ext4-Kernelmodul (Spleißen wird jedoch normalerweise für Anforderungen über 4 KB verwendet und nicht zum Lesen und Schreiben kleiner Datenmengen).
Welche Leistung kann das Sicherungsdateisystem nach diesen Bemühungen erzielen? Den in diesem Bericht aufgeführten Testergebnissen zufolge kann der Leistungsverlust von Fuse im Vergleich zu nativem ext4 im besten Fall auf weniger als 5 % kontrolliert werden, im schlimmsten Fall beträgt er jedoch 83 %. Gleichzeitig stieg auch die CPU-Ressourcenauslastung um 31 %.
Vom SD-Karten-Daemon, der zwischen Android v4.4 und v7.0 existierte, bis hin zu Ceph und GlusterFS in den letzten Jahren haben alle FUSE-basierte Implementierungen übernommen oder übernehmen dies derzeit. FUSE hat seine Nützlichkeit in Netzwerk-Dateisystem- und Virtualisierungsanwendungen bewiesen. Seine Entstehung und Entwicklung dienen nicht dazu, das im Kernel-Modus implementierte Dateisystem zu ersetzen, sondern als nützliche Ergänzung (theoretisch kann FUSE auch zur Implementierung des Root-Dateisystems verwendet werden, dies jedoch). wird nicht empfohlen, „kann“ und „sollte“ sind zwei verschiedene Dinge). Verwandte Empfehlungen: „
Linux-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas bedeutet Linux-Sicherung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Der Linux -Wartungsmodus kann über das Grub -Menü eingegeben werden. Die spezifischen Schritte sind: 1) Wählen Sie den Kernel im GRUB -Menü aus und drücken Sie 'e', um zu bearbeiten, 2) hinzu 'Single' oder '1' am Ende der "Linux" -Zeile 3) Drücken Sie Strg X, um zu starten. Der Wartungsmodus bietet eine sichere Umgebung für Aufgaben wie Systemreparaturen, Kennwortreset und System -Upgrade.

Die Schritte zur Eingabe des Linux -Wiederherstellungsmodus sind: 1. Starten Sie das System neu und drücken Sie die spezifische Taste, um das Grub -Menü einzugeben. 2. Wählen Sie die Option mit (RecoveryMode) aus; 3. Wählen Sie den Vorgang im Menü Wiederherstellungsmodus wie FSCK oder Root aus. Mit dem Wiederherstellungsmodus können Sie das System im Einzelbenutzermodus starten, Dateisystemprüfungen und -reparaturen durchführen, Konfigurationsdateien bearbeiten und andere Vorgänge zur Lösung von Systemproblemen unterstützen.

Zu den Kernkomponenten von Linux gehören Kernel, Dateisystem, Shell und gemeinsame Werkzeuge. 1. Der Kernel verwaltet Hardware -Ressourcen und bietet grundlegende Dienste an. 2. Das Dateisystem organisiert und speichert Daten. 3. Shell ist die Schnittstelle, in der Benutzer mit dem System interagieren können. 4. Common Tools helfen dabei, tägliche Aufgaben zu erledigen.

Die Grundstruktur von Linux umfasst Kernel, Dateisystem und Shell. 1) Kernel-Management-Hardware-Ressourcen und verwenden Sie UNAME-R, um die Version anzuzeigen. 2) Das Ext4 -Dateisystem unterstützt große Dateien und Protokolle und wird mit mkfs.ext4 erstellt. 3) Shell bietet die Befehlszeileninteraktion wie Bash und listet Dateien mithilfe von LS-L auf.

Zu den wichtigsten Schritten der Linux -Systemverwaltung und -wartung gehören: 1) das Grundkenntnis, z. B. die Dateisystemstruktur und die Benutzerverwaltung; 2) Systemüberwachung und Ressourcenverwaltung durchführen, Top-, HTOP- und andere Tools verwenden. 3) Verwenden Sie Systemprotokolle zur Behebung, verwenden Sie JournalCtl und andere Tools. 4) Automatisierte Skripte und Aufgabenplanung schreiben, Cron -Tools verwenden. 5) Sicherheitsmanagement und Schutz implementieren, Firewalls durch Iptables konfigurieren. 6) Führen Sie Leistungsoptimierung und Best Practices durch, passen Sie die Kernelparameter an und entwickeln Sie gute Gewohnheiten.

Der Linux -Wartungsmodus wird eingegeben, indem init =/bin/bash oder einzelne Parameter beim Start hinzugefügt werden. 1. Geben Sie den Wartungsmodus ein: Bearbeiten Sie das Grub -Menü und fügen Sie Startparameter hinzu. 2. REMOUNG DAS FILE-SYSTEM zum Lesen und Schreibmodus: Mount-Oremount, RW/. 3. Reparieren Sie das Dateisystem: Verwenden Sie den Befehl FSCK, z. B. FSCK/Dev/SDA1. 4. Sichern Sie die Daten und arbeiten Sie mit Vorsicht, um den Datenverlust zu vermeiden.

In diesem Artikel wird erläutert, wie die Effizienz der Hadoop -Datenverarbeitung auf Debian -Systemen verbessert werden kann. Optimierungsstrategien decken Hardware -Upgrades, Parameteranpassungen des Betriebssystems, Änderungen der Hadoop -Konfiguration und die Verwendung effizienter Algorithmen und Tools ab. 1. Hardware -Ressourcenverstärkung stellt sicher, dass alle Knoten konsistente Hardwarekonfigurationen aufweisen, insbesondere die Aufmerksamkeit auf die Leistung von CPU-, Speicher- und Netzwerkgeräten. Die Auswahl von Hochleistungs-Hardwarekomponenten ist wichtig, um die Gesamtverarbeitungsgeschwindigkeit zu verbessern. 2. Betriebssystem -Tunes -Dateideskriptoren und Netzwerkverbindungen: Ändern Sie die Datei /etc/security/limits.conf, um die Obergrenze der Dateideskriptoren und Netzwerkverbindungen zu erhöhen, die gleichzeitig vom System geöffnet werden dürfen. JVM-Parameteranpassung: Einstellen in der Hadoop-env.sh-Datei einstellen

In diesem Leitfaden werden Sie erfahren, wie Sie Syslog in Debian -Systemen verwenden. Syslog ist ein Schlüsseldienst in Linux -Systemen für Protokollierungssysteme und Anwendungsprotokollnachrichten. Es hilft den Administratoren, die Systemaktivitäten zu überwachen und zu analysieren, um Probleme schnell zu identifizieren und zu lösen. 1. Grundkenntnisse über syslog Die Kernfunktionen von Syslog umfassen: zentrales Sammeln und Verwalten von Protokollnachrichten; Unterstützung mehrerer Protokoll -Ausgabesformate und Zielorte (z. B. Dateien oder Netzwerke); Bereitstellung von Echtzeit-Protokoll- und Filterfunktionen. 2. Installieren und Konfigurieren von Syslog (mit Rsyslog) Das Debian -System verwendet standardmäßig Rsyslog. Sie können es mit dem folgenden Befehl installieren: sudoaptupdatesud


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung