Was bedeutet Linux-Sicherung?
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!

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

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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 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.

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.

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.

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

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).

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.

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.
