GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでyumを使用してZFSをセットアップする

私は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つのステップがあります。

  1. ZFSGitリポジトリからRPMパッケージを作成します
  2. パッケージをホストするためのyumリポジトリを設定します
RPMパッケージを作成する

RPMパッケージを作成するには、RPMツールチェーンをインストールする必要があります。 Yumは、ツールのインストールをバンドルするグループを提供します:

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

これらをインストールした後、ZFSGitリポジトリからZFSをビルドするために必要なすべてのパッケージをインストールする必要があります。パッケージは3つのグループに属しています:

  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ファイルはビルドフォルダーに配置されます。
$ 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があります。


Linux
  1. LinuxでのJQコマンドと例

  2. Linux – Slimで自動ログインを設定しますか?

  3. Linux でファイル圧縮を使用して ZFS ファイルシステムを作成する方法

  1. Linux – SuidはLinuxのディレクトリに影響を与えませんか?

  2. Linux で .netrc ファイルを使用して FTP 自動ログインを設定する

  3. Go 1.8 を yum でインストールする

  1. Linux でスペースを使用して環境変数を設定する

  2. Ansible で Linux 環境変数を設定する方法

  3. NAT を使用して Linux サーバーをルーターとして設定する方法