私はyum upgrade
を実行するFedoraLinuxユーザーです 毎日。この習慣により、最新のソフトウェアをすべて実行できますが(Fedoraの4つの基盤の1つは「最初」であり、それに対応しています)、ZFSストレージプラットフォームと新しいカーネルの間の非互換性も浮き彫りになります。
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
開発者として、最新のZFSブランチの新機能が必要になることがあります。たとえば、ZFS 2.0.0には、KVMユーザーとして重要なZVOL同期パフォーマンスを大幅に向上させるエキサイティングな新機能が含まれています。ただし、これは、2.0.0ブランチを使用する場合は、自分でZFSをビルドする必要があることを意味します。
最初は、カーネルを更新するたびに、GitリポジトリからZFSを手動でコンパイルしました。忘れてしまうと、次回の起動時にZFSが認識されなくなります。幸い、ZFSの動的カーネルモジュールサポート(DKMS)を設定する方法をすぐに学びました。ただし、このソリューションは完全ではありません。一つには、依存関係の解決とアップグレードに役立つ強力なyumシステムを利用していません。さらに、yumを使用すると、独自のパッケージとアップストリームパッケージを簡単に切り替えることができます。
この記事では、ZFSをパッケージ化するためのyumリポジトリーをセットアップする方法を示します。このソリューションには2つのステップがあります。
- ZFSGitリポジトリからRPMパッケージを作成します
- パッケージをホストするためのyumリポジトリを設定します
RPMパッケージを作成するには、RPMツールチェーンをインストールする必要があります。 Yumは、ツールのインストールをバンドルするグループを提供します:
sudo dnf group install 'C Development Tools and Libraries' 'RPM Development Tools'
これらをインストールした後、ZFSGitリポジトリからZFSをビルドするために必要なすべてのパッケージをインストールする必要があります。パッケージは3つのグループに属しています:
- プラットフォーム構成からビルドファイルを生成するAutotools
- ZFSカーネルおよびユーザーランドツールを構築するためのライブラリ
- 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は優れたインフラストラクチャを提供します。構築するには:
-
git
を使用してリポジトリのクローンを作成します 使用したいブランチ/タグに切り替えます。 - Autotoolsを実行してmakefileを生成します。
-
make rpm
を実行します そして、すべてが機能する場合、RPMファイルはビルドフォルダーに配置されます。
$ 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リポジトリを設定するためのツール。まず、リポジトリを作成し、すべてのRPMファイルをZFSフォルダーからリポジトリにコピーします。次に、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があります。