Jsem uživatel Fedora Linux, který spouští yum upgrade
denně. I když mi tento zvyk umožňuje spouštět veškerý nejnovější software (jeden ze čtyř základů Fedory je „první“ a tomu odpovídá), také upozorňuje na jakoukoli nekompatibilitu mezi úložnou platformou ZFS a novým jádrem.
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Jako vývojář občas potřebuji nové funkce z nejnovější větve ZFS. Například ZFS 2.0.0 obsahuje vzrušující novou funkci, která výrazně zlepšuje výkon synchronizace ZVOL, což je pro mě jako uživatele KVM zásadní. To ale znamená, že pokud chci používat větev 2.0.0, musím si ZFS postavit sám.
Nejprve jsem po každé aktualizaci jádra kompiloval ZFS ručně z jeho úložiště Git. Pokud bych zapomněl, ZFS by se při příštím spuštění nepodařilo rozpoznat. Naštěstí jsem se rychle naučil, jak nastavit podporu dynamických modulů jádra (DKMS) pro ZFS. Toto řešení však není dokonalé. Jednak nevyužívá výkonný systém yum, který může pomoci s řešením závislostí a upgradem. Navíc přepínání mezi vlastním balíčkem a balíčkem upstream je s yum docela snadné.
V tomto článku ukážu, jak nastavit yum repo pro balení ZFS. Řešení má dva kroky:
- Vytvářejte balíčky RPM z úložiště Git ZFS
- Nastavte yum repo pro hostování balíčků
Vytvářejte balíčky RPM
Chcete-li vytvořit balíčky RPM, musíte nainstalovat RPM toolchain. Yum poskytuje skupiny pro instalaci nástrojů:
sudo dnf group install 'C Development Tools and Libraries' 'RPM Development Tools'
Po jejich instalaci musíte nainstalovat všechny balíčky potřebné k sestavení ZFS z repozitáře ZFS Git. Balíčky patří do tří skupin:
- Automatické nástroje pro generování souborů sestavení z konfigurací platformy
- Knihovny pro tvorbu jádra ZFS a nástrojů uživatelského prostředí
- Knihovny pro vytváření balíčků RPM
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
Nyní jste připraveni vytvořit své vlastní balíčky.
Sestavení OpenZFS
OpenZFS poskytuje vynikající infrastrukturu. Chcete-li jej postavit:
- Klonujte úložiště pomocí
git
a přepněte na větev/značku, kterou chcete použít. - Spusťte Autotools a vygenerujte makefile.
- Spusťte
make rpm
a pokud vše funguje, soubory RPM se umístí do složky sestavení.
$ git clone --branch=zfs-2.0.0-rc3 https://github.com/openzfs/zfs.git zfs
$ cd zfs
$ ./autogen.sh
$ ./configure
$ make rpm
Nastavit yum repo
V yum, repo je server nebo místní cesta, která obsahuje metadata a soubory RPM. Zákazník nastaví konfigurační soubor INI a yum
příkaz automaticky vyhodnotí metadata a stáhne odpovídající balíčky.
Fedora poskytuje createrepo
nástroj pro nastavení yum repo. Nejprve vytvořte repo a zkopírujte všechny soubory RPM ze složky ZFS do repo. Poté spusťte createrepo --update
pro zahrnutí všech balíčků do metadat:
$ 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
Vytvořte nový konfigurační soubor v /etc/yum.repos.d
zahrnout cestu k repo:
$ 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
Konečně jste se dostali na konec cesty! Máte funkční yum repo a balíčky ZFS. Nyní je stačí nainstalovat:
$ sudo dnf install zfs
$ sudo /sbin/modprobe zfs
Spusťte sudo zfs version
abyste viděli verzi vaší uživatelské země a nástrojů jádra. Gratulujeme! Máte ZFS pro Fedoru.