Inhaltsverzeichnis
Du kommst und gehst

Was bedeutet Linux-Sicherung?

Apr 18, 2023 am 11:20 AM
linux

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.

Was bedeutet Linux-Sicherung?

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.

Was bedeutet Linux-Sicherung?

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“:

Was bedeutet Linux-Sicherung?

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.

Was bedeutet Linux-Sicherung?

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:

Was bedeutet Linux-Sicherung?
#🎜 🎜#Diese Anfragen werden in eine

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

#🎜🎜 #
Was bedeutet Linux-Sicherung? Als Daemon erhält der SSHFS-Prozess Daten, indem er die Gerätedatei „/dev/fuse“ liest. Wenn die ausstehende Warteschlange leer ist, fällt sie in die blockierende Warteschleife:
#🎜🎜 #

Wenn Anfragen in der ausstehenden Warteschlange eintreffen, wird der Daemon-Prozess aktiviert und verarbeitet diese Anfragen. Die verarbeitete Anfrage wird in die Was bedeutet Linux-Sicherung?Verarbeitungswarteschlange
verschoben. Nachdem der Daemon-Prozess auf das Fuse-Kernel-Modul geantwortet hat, wird der Benutzerprozess aktiviert und die entsprechende Anfrage aus der Verarbeitungswarteschlange entfernt. #🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜#【Zweite Runde

】#🎜🎜 ## 🎜 🎜#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
“ ab, die beim Mounten des Fuse-Typ-Dateisystems erstellt wird. Als Verbindung zwischen dem Daemon-Prozess und dem Kernel bleibt die Verbindung immer bestehen, es sei denn, der Daemon-Prozess stirbt ab oder das entsprechende Fuse-Dateisystem wird deinstalliert. Was bedeutet Linux-Sicherung?
Auf der Seite des Daemon-Prozesses gibt es noch ähnliche Vorgänge. Zu beachten ist der Unterschied zwischen

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
Was bedeutet Linux-Sicherung?
Der letzte Schritt des Fuse-Kernel-Moduls und Daemon-Prozess Die Rundeninteraktion besteht darin, die Inode-Nummer im Superblock abzurufen, der das Sicherungsdateisystem darstellt, und die relevanten Informationen dieser Metadaten einzugeben.

Zwei Seiten der Medaille

Es ist nicht schwer, das im Sicherungsdateisystem zu finden, auch wenn es relativ ist Es wird eine einfache „Berührung“ ausgeführt. Vorgänge erfordern einen häufigen Wechsel zwischen Benutzermodus und Kernelmodus und werden von mehreren Datenkopien begleitet. Im Vergleich zu herkömmlichen Kernel-Dateisystemen ist der gesamte E/A-Durchsatz geringer und die Latenz höher. Was bedeutet Linux-Sicherung?

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

subjektives

Gefü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). "):

Was bedeutet Linux-Sicherung? Nehmen Sie als Beispiel den Benutzerprozess, der eine write()-Anfrage an das Fuse-Dateisystem sendet. Das rote Feld rechts ist ein nativer ext4-Aufrufpfad, und der zusätzliche Pfad links ist der Pfad nach der Einführung von Fuse hinzugefügt:

Was bedeutet Linux-Sicherung?Gemäß den in diesem Dokument angegebenen Daten erfordert die von „getxattr“ in diesem Systemaufruf verwendete Anforderung das Doppelte der „Benutzer-Kernel“-Interaktion. Beim
sequentiellen Schreiben

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Unterschied zwischen CentOS und Ubuntu Unterschied zwischen CentOS und Ubuntu Apr 14, 2025 pm 09:09 PM

Die wichtigsten Unterschiede zwischen CentOS und Ubuntu sind: Ursprung (CentOS stammt von Red Hat, für Unternehmen; Ubuntu stammt aus Debian, für Einzelpersonen), Packungsmanagement (CentOS verwendet yum, konzentriert sich auf Stabilität; Ubuntu verwendet apt, für hohe Aktualisierungsfrequenz), Support Cycle (Centos) (CENTOS bieten 10 Jahre. Tutorials und Dokumente), Verwendungen (CentOS ist auf Server voreingenommen, Ubuntu ist für Server und Desktops geeignet). Weitere Unterschiede sind die Einfachheit der Installation (CentOS ist dünn)

CentOS stoppt die Wartung 2024 CentOS stoppt die Wartung 2024 Apr 14, 2025 pm 08:39 PM

CentOS wird 2024 geschlossen, da seine stromaufwärts gelegene Verteilung RHEL 8 geschlossen wurde. Diese Abschaltung wirkt sich auf das CentOS 8 -System aus und verhindert, dass es weiterhin Aktualisierungen erhalten. Benutzer sollten eine Migration planen, und empfohlene Optionen umfassen CentOS Stream, Almalinux und Rocky Linux, um das System sicher und stabil zu halten.

Detaillierte Erklärung des Docker -Prinzips Detaillierte Erklärung des Docker -Prinzips Apr 14, 2025 pm 11:57 PM

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

So installieren Sie CentOs So installieren Sie CentOs Apr 14, 2025 pm 09:03 PM

CentOS -Installationsschritte: Laden Sie das ISO -Bild herunter und verbrennen Sie bootfähige Medien. Starten und wählen Sie die Installationsquelle; Wählen Sie das Layout der Sprache und Tastatur aus. Konfigurieren Sie das Netzwerk; Partition die Festplatte; Setzen Sie die Systemuhr; Erstellen Sie den Root -Benutzer; Wählen Sie das Softwarepaket aus; Starten Sie die Installation; Starten Sie nach Abschluss der Installation von der Festplatte neu und starten Sie von der Festplatte.

Was sind die Backup -Methoden für Gitlab auf CentOS? Was sind die Backup -Methoden für Gitlab auf CentOS? Apr 14, 2025 pm 05:33 PM

Backup- und Wiederherstellungsrichtlinie von GitLab im Rahmen von CentOS -System Um die Datensicherheit und Wiederherstellung der Daten zu gewährleisten, bietet GitLab on CentOS eine Vielzahl von Sicherungsmethoden. In diesem Artikel werden mehrere gängige Sicherungsmethoden, Konfigurationsparameter und Wiederherstellungsprozesse im Detail eingeführt, um eine vollständige GitLab -Sicherungs- und Wiederherstellungsstrategie aufzubauen. 1. Manuell Backup Verwenden Sie den GitLab-RakegitLab: Backup: Befehl erstellen, um die manuelle Sicherung auszuführen. Dieser Befehl unterstützt wichtige Informationen wie GitLab Repository, Datenbank, Benutzer, Benutzergruppen, Schlüssel und Berechtigungen. Die Standardsicherungsdatei wird im Verzeichnis/var/opt/gitlab/backups gespeichert. Sie können /etc /gitlab ändern

So verwenden Sie Docker Desktop So verwenden Sie Docker Desktop Apr 15, 2025 am 11:45 AM

Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).

Wie man in CentOS fester Festplatten montiert Wie man in CentOS fester Festplatten montiert Apr 14, 2025 pm 08:15 PM

CentOS -Festplattenhalterung ist in die folgenden Schritte unterteilt: Bestimmen Sie den Namen der Festplattengeräte (/dev/sdx); Erstellen Sie einen Mountspunkt (es wird empfohlen, /mnt /newDisk zu verwenden). Führen Sie den Befehl montage (mont /dev /sdx1 /mnt /newdisk) aus; Bearbeiten Sie die Datei /etc /fstab, um eine permanente Konfiguration des Montings hinzuzufügen. Verwenden Sie den Befehl uMount, um das Gerät zu deinstallieren, um sicherzustellen, dass kein Prozess das Gerät verwendet.

Was zu tun ist, nachdem CentOS die Wartung gestoppt hat Was zu tun ist, nachdem CentOS die Wartung gestoppt hat Apr 14, 2025 pm 08:48 PM

Nachdem CentOS gestoppt wurde, können Benutzer die folgenden Maßnahmen ergreifen, um sich damit zu befassen: Wählen Sie eine kompatible Verteilung aus: wie Almalinux, Rocky Linux und CentOS Stream. Migrieren Sie auf kommerzielle Verteilungen: wie Red Hat Enterprise Linux, Oracle Linux. Upgrade auf CentOS 9 Stream: Rolling Distribution und bietet die neueste Technologie. Wählen Sie andere Linux -Verteilungen aus: wie Ubuntu, Debian. Bewerten Sie andere Optionen wie Container, virtuelle Maschinen oder Cloud -Plattformen.

See all articles