GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Richten Sie ZFS unter Linux mit yum ein

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:

  1. Erstellen Sie RPM-Pakete aus dem ZFS-Git-Repository
  2. 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:

  1. Autotools zum Generieren von Build-Dateien aus Plattformkonfigurationen
  2. Bibliotheken zum Erstellen von ZFS-Kernel- und Userland-Tools
  3. 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:

  1. Klonen Sie das Repository mit git und wechseln Sie zu dem Zweig/Tag, den Sie verwenden möchten.
  2. Führen Sie Autotools aus, um ein Makefile zu generieren.
  3. 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.


Linux
  1. JQ-Befehl in Linux mit Beispielen

  2. Linux – Suid hat keinen Einfluss auf Verzeichnisse mit Linux?

  3. So erstellen Sie ein ZFS-Dateisystem mit Dateikomprimierung unter Linux

  4. Stellen Sie FTP Autologin mit .netrc-Datei in Linux ein

  5. So richten Sie einen Linux-Server als Router mit NAT ein

15 Linux-PS-Befehl mit Beispielen

So verwalten Sie Pakete auf CentOS mit YUM

Linux-Paketverwaltung mit YUM und RPM

So richten Sie eine Firewall mit GUFW unter Linux ein

Parted Magic Disk Partitioning Live-CD Aktualisiert mit Linux 4.11.4, ZFS unter Linux

Verwenden des tr-Befehls in Linux, um mit Charakteren zu spielen