Linux中國

在 Linux 上使用 yum 設置 ZFS

我是一名 Fedora Linux 用戶,我每天都會運行 yum upgrade。雖然這個習慣使我能夠運行所有最新的軟體(Fedora 的四個基礎之一的 「First」 ,它也做到了),但它也會提醒 ZFS 存儲平台和新內核之間的不兼容性。

作為一名開發者,有時我需要最新的 ZFS 分支的新特性。例如,ZFS 2.0.0 包含了一個令人興奮的新功能,它大大提高了 ZVOL 同步性能,這對我這個 KVM 用戶來說至關重要。但這意味著,如果我想使用 2.0.0 分支,我必須自己構建 ZFS。

起初,我只是在每次內核更新後從它的 Git 倉庫中手動編譯 ZFS。如果我忘記了,ZFS 就會在下次啟動時無法被識別。幸運的是,我很快就學會了如何為 ZFS 設置動態內核模塊支持 (DKMS)。然而,這個解決方案並不完美。首先,它沒有利用強大的 yum 系統,而這個系統可以幫助解決依賴關係和升級。此外,使用 yum 在你自己的包和上游包之間進行切換是非常容易的。

在本文中,我將演示如何設置 yum 倉庫來打包 ZFS。這個方案有兩個步驟:

  1. 從 ZFS 的 Git 倉庫中創建 RPM 包。
  2. 建立一個 yum 倉庫來託管這些包。

創建 RPM 包

要創建 RPM 包,你需要安裝 RPM 工具鏈。yum 提供了一個組來捆綁安裝這些工具:

sudo dnf group install 'C Development Tools and Libraries' 'RPM Development Tools'

安裝完這些之後,你必須從 ZFS Git 倉庫中安裝構建 ZFS 所需的所有包。這些包屬於三個組:

  1. Autotools,用於從平台配置中生成構建文件。
  2. 用於構建 ZFS 內核和用戶態工具的庫。
  3. 構建 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

現在你已經準備好創建你自己的包了。

構建 OpenZFS

OpenZFS 提供了優秀的基礎設施。要構建它:

  1. git 克隆倉庫,並切換到你希望使用的分支/標籤。
  2. 運行 Autotools 生成一個 makefile。
  3. 運行 make rpm,如果一切正常,RPM 文件將被放置在 build 文件夾中。
$ git clone --branch=zfs-2.0.0-rc3 <https://github.com/openzfs/zfs.git> zfs
$ cd zfs
$ ./autogen.sh
$ ./configure
$ make rpm

建立一個 yum 倉庫

yum 中,倉庫是一個伺服器或本地路徑,包括元數據和 RPM 文件。用戶設置一個 INI 配置文件,yum 命令會自動解析元數據並下載相應的軟體包。

Fedora 提供了 createrepo 工具來設置 yum 倉庫。首先,創建倉庫,並將 ZFS 文件夾中的所有 RPM 文件複製到倉庫中。然後運行 createrepo --update 將所有的包加入到元數據中。

$ 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

/etc/yum.repos.d 中創建一個新的配置文件來包含倉庫路徑:

$ 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

終於完成了!你已經有了一個可以使用的 yum 倉庫和 ZFS 包。現在你只需要安裝它們。

$ sudo dnf install zfs
$ sudo /sbin/modprobe zfs

運行 sudo zfs version 來查看你的用戶態和內核工具的版本。恭喜!你擁有了 Fedora 中的 ZFS

via: https://opensource.com/article/20/10/zfs-dnf

作者:Sheng Mao 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國