Ich bin ein Fedora-Linux-Benutzer, der yum upgrade
ausführt Täglich. Während diese Gewohnheit es mir ermöglicht, die neueste Software auszuführen (eine von Fedoras vier Grundlagen ist „erste“, und es wird dem gerecht), hebt es auch alle Inkompatibilitäten zwischen der ZFS-Speicherplattform und einem neuen Kernel hervor.
Weitere Linux-Ressourcen
- Spickzettel für Linux-Befehle
- Spickzettel für fortgeschrittene Linux-Befehle
- Kostenloser Online-Kurs:RHEL Technical Overview
- Spickzettel für Linux-Netzwerke
- SELinux-Spickzettel
- Spickzettel für allgemeine Linux-Befehle
- Was sind Linux-Container?
- Unsere neuesten Linux-Artikel
Als Entwickler benötige ich manchmal neue Features aus dem neuesten ZFS-Zweig. Beispielsweise enthält ZFS 2.0.0 eine aufregende neue Funktion, die die ZVOL-Synchronisierungsleistung erheblich verbessert, was für mich als KVM-Benutzer von entscheidender Bedeutung ist. Das bedeutet aber, dass ich ZFS selbst bauen muss, wenn ich den 2.0.0-Zweig verwenden möchte.
Zuerst habe ich ZFS nach jedem Kernel-Update einfach manuell aus seinem Git-Repo kompiliert. Wenn ich es vergessen hätte, würde ZFS beim nächsten Start nicht erkannt werden. Glücklicherweise habe ich schnell gelernt, wie man die dynamische Kernelmodulunterstützung (DKMS) für ZFS einrichtet. Diese Lösung ist jedoch nicht perfekt. Zum einen verwendet es nicht das leistungsstarke yum-System, das beim Auflösen von Abhängigkeiten und Upgrades helfen kann. Außerdem ist das Wechseln zwischen Ihrem eigenen Paket und einem Upstream-Paket mit yum ziemlich einfach.
In diesem Artikel werde ich demonstrieren, wie man ein Yum-Repo zum Packen von ZFS einrichtet. Die Lösung besteht aus zwei Schritten:
- Erstellen Sie RPM-Pakete aus dem ZFS-Git-Repository
- Richten Sie ein Yum-Repository ein, um die Pakete zu hosten
Erstelle RPM-Pakete
Um RPM-Pakete zu erstellen, müssen Sie die RPM-Toolchain installieren. Yum bietet Gruppen zum Bündeln der Installation der Tools:
sudo dnf group install 'C Development Tools and Libraries' 'RPM Development Tools'
Nachdem diese installiert wurden, müssen Sie alle Pakete installieren, die zum Erstellen von ZFS aus dem ZFS-Git-Repository erforderlich sind. Die Pakete gehören zu drei Gruppen:
- Autotools zum Generieren von Build-Dateien aus Plattformkonfigurationen
- Bibliotheken zum Erstellen von ZFS-Kernel- und Userland-Tools
- Bibliotheken zum Erstellen von RPM-Paketen
sudo dnf install libtool autoconf automake gettext createrepo \
libuuid-devel libblkid-devel openssl-devel libtirpc-devel \
lz4-devel libzstd-devel zlib-devel \
kernel-devel elfutils-libelf-devel \
libaio-devel libattr-devel libudev-devel \
python3-devel libffi-devel
Jetzt können Sie Ihre eigenen Pakete erstellen.
Erstelle OpenZFS
OpenZFS bietet eine hervorragende Infrastruktur. Um es zu bauen:
- Klonen Sie das Repository mit
git
und wechseln Sie zu dem Zweig/Tag, den Sie verwenden möchten. - Führen Sie Autotools aus, um ein Makefile zu generieren.
- Führen Sie
make rpm
aus und wenn alles funktioniert, werden RPM-Dateien im Build-Ordner abgelegt.
$ git clone --branch=zfs-2.0.0-rc3 https://github.com/openzfs/zfs.git zfs
$ cd zfs
$ ./autogen.sh
$ ./configure
$ make rpm
Yum-Repo einrichten
In yum ist ein Repo ein Server oder lokaler Pfad, der Metadaten und RPM-Dateien enthält. Ein Konsument erstellt eine INI-Konfigurationsdatei und den yum
Der Befehl löst die Metadaten automatisch auf und lädt die entsprechenden Pakete herunter.
Fedora stellt das createrepo
bereit Tool zum Einrichten eines Yum-Repos. Erstellen Sie zuerst das Repo und kopieren Sie alle RPM-Dateien aus dem ZFS-Ordner in das Repo. Führen Sie dann createrepo --update
aus um alle Pakete in die Metadaten aufzunehmen:
$ sudo mkdir -p /var/lib/zfs.repo
$ sudo createrepo /var/lib/zfs.repo
$ sudo cp *.rpm /var/lib/zfs.repo/
$ sudo createrepo --update /var/lib/zfs.repo
Erstellen Sie eine neue Konfigurationsdatei in /etc/yum.repos.d
um den Repo-Pfad einzuschließen:
$ echo \
"[zfs-local]\\nname=ZFS Local\\nbaseurl=file:///var/lib/zfs.repo\\nenabled=1\\ngpgcheck=0" |\
sudo tee /etc/yum.repos.d/zfs-local.repo
$ sudo dnf --repo=zfs-local list available --refresh
Schließlich haben Sie das Ende der Reise erreicht! Sie haben ein funktionierendes Yum-Repo und ZFS-Pakete. Jetzt müssen Sie sie nur noch installieren:
$ sudo dnf install zfs
$ sudo /sbin/modprobe zfs
Führen Sie sudo zfs version
aus um die Version Ihrer Userland- und Kernel-Tools anzuzeigen. Herzliche Glückwünsche! Sie haben ZFS für Fedora.