LVM (Logical Volume Manager) erlaubt im Grunde die flexiblere Verwaltung von "Partitionen" einer Festplatte. Anstatt die Partitionen beim Einrichten eines Datenträgers (z.B. mittels fdisk
) einmal - mehr oder weniger - fix festzulegen, erzeugt man mit LVM sog. Volume Groups
(VG). Eine solche Volume Group
kann mehrere physikalische Datenträger umfassen1. Innerhalb der Volume Groups
werden dann die eigentlichen Logical Volumes
(LV) erzeugt. Diese können dann wie physikalische Datenträger behandelt und mit beliebigen Dateisystemen versehen werden.
Ein weiteres Feature von LVM sind sog. Snapshots
. Ein Snapshot
friert den Zustand des Dateisystems zum Zeitpunkt der Erstellung des Snapshots quasi ein. Die Daten im Snapshot verändern sich nicht mehr. Technisch funktioniert dies über das sog. Copy on write
2. Dies ist sehr hilfreich um konsistente Backups erstellen zu können.
Verschiedene Betriebssysteme haben jeweils ihre eigenen Stärken und Schwächen. Ich nutze daher gern Multibootsysteme, auf denen mehrere Betriebssysteme (hoffentlich) friedlich koexistieren. In der Vergangenheit waren Multibootsetups oft etwas hakelig, da man sich mit den Konfigurationsdateien der jeweiligen Bootloader (z.B. GRUB1) beschäftigen musste, die mitunter sehr kryptisch sind.
Hier schaffen EFI-Bootmanager wie rEFInd2 Abhilfe, diese erkennen die anderen Systeme automatisch und bieten zudem eine optische ansprechende Oberfläche. Zudem kann rEFInd unabhängig von den jeweiligen Betriebssystemen installiert werden, wenn man ein System nicht mehr benötigen sollte, können dessen Partition(en) einfach gelöscht werden und der Eintrag in rEFInd verschwindet automatisch.
Häufig führt man Wartungsscripte aus und lässt sich den Status z.B. via Mail zustellen. Oft schleicht es sich dann irgendwann ein, dass man diese zwar zur Kenntnis nimmt, aber nicht mehr wirklich intensiv beachtet. Je nachdem, wie der Inhalt gestaltet ist, können hierbei Fehlermeldungen untergehen.
Daher mag ich es, wenn neben dem vollständigen Output der Aktionen eine Statuszusammenfassung enthalten ist, bei der man auf einen Blick erkennt, ob alle Teilschritte funktioniert haben.
Wenn man einen Server betreibt, ist es oft sinnvoll sich über dessen Status informieren zu lassen. Hierzu bieten sich z.B. Push-Notifications an. Der kleinste gemeinsame Nenner ist jedoch oft immer noch die klassische E-Mail. Nahezu jedes Tool kann Statusberichte oder Fehlermeldungen per Mail zustellen. Darüber hinaus kann der Mailversand für Passwort-Reset-Funktionen und ähnliches genutzt werden.
Es lohnt sich also, sich damit einmal zu beschäftigen.
ZFS1 ist ein sehr mächtiges Dateisystem. Es wurde ursprünglich für BSD2-Systeme entwickelt, kann aber auch unter Linux problemlos genutzt werden. ZFS unterstützt nativ Verschlüsselung, Snapshots3 und verschiedene RAID4-Funktionen. Snapshots frieren quasi den Zustand eines ZFS-Volumes ein und man kann diesen Zustand zu einem späteren Zeitpunkt wiederherstellen. Dies ist z.B. vor größeren Updates einer Software praktisch. Auch Backups können mittels Snapshots sicherer erstellt werden, da sich die Daten in einem Snapshot nicht mehr verändern. Die RAID-Funktionen von ZFS erhöhen, je nach gewähltem Typ, die Datensicherheit und/oder die Geschwindigkeit der genutzten Datenträger.
Gitea ist eine leichtgewichtige Oberfläche zur Verwaltung von Git-Repositories. Eine der besonders hervorzuhebenden Funktionen ist die Migration von Repos aus anderen Tools, wie z.B. GitHub, GitLab, etc., hierbei ist es auch möglich einen Mirror der Repos in Gitea anzulegen. So kann man vom größeren Funktionsumfang der zuvor genannten Tools profitieren, muss aber nicht fürchten, irgendwann einmal nicht mehr an seine Daten zu kommen, z.B. weil der Dienst eingestellt wird.
Dropbear ist eine leichtgewichtige SSH-Server-Implementierung für Unix-ähnliche Systeme. Es ermöglicht sichere Fernzugriffe und Dateiübertragungen über das SSH-Protokoll. Dropbear bietet ähnliche Funktionen wie der bekannte OpenSSH, ist jedoch aufgrund seiner geringen Größe und Ressourcenanforderungen besonders für eingebettete Systeme oder Geräte mit begrenzten Ressourcen geeignet.
Docker1 ist eine Open-Source-Plattform, die ermöglicht, Anwendungen in Containern zu erstellen, bereitzustellen und auszuführen. Container sind isolierte Umgebungen, die alle notwendigen Abhängigkeiten und Ressourcen einer Anwendung enthalten, einschließlich des Betriebssystems, der Bibliotheken und anderer Komponenten.
Durch die Verwendung von Docker können Anwendungen weitgehend unabhängig von der zugrunde liegenden Infrastruktur bereitgestellt werden.