📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

ページの作成:「== 概要 == OpenZFSは、オープンソースのストレージプラットフォームである。<br> 従来のファイルシステムとボリュームマネージャの両方の機能を含んでおり、以下に示すような多くの高度な機能を備えている。<br> <br> * データ破損からの保護データとメタデータの整合性チェック * 継続的な整合性検証と自動「自己修復」修復 * ミラーリング、RAID-Z1/2/…」
 
 
(同じ利用者による、間の8版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
OpenZFSは、オープンソースのストレージプラットフォームである。<br>
[https://openzfs.org/wiki/Main%20Page OpenZFS]は、オープンソースのストレージプラットフォームである。<br>
従来のファイルシステムとボリュームマネージャの両方の機能を含んでおり、以下に示すような多くの高度な機能を備えている。<br>
従来のファイルシステムとボリュームマネージャの両方の機能を含んでおり、以下に示すような多くの高度な機能を備えている。<br>
<br>
<br>
14行目: 14行目:


== ZFSのインストール ==
== ZFSのインストール ==
詳細を知りたい場合は、[https://openzfs.github.io/openzfs-docs/ OpenZFSの公式ドキュメント]を参照すること。<br>
<br>
==== リポジトリを追加してインストール ====
==== リポジトリを追加してインストール ====
===== RHEL =====
===== RHEL =====
95行目: 97行目:
<br>
<br>
ZFSをビルドおよびインストールする。<br>
ZFSをビルドおよびインストールする。<br>
  ../configure --prefix=<ZFSのインストールディレクトリ> --enable-nls --enable-linux-builtin
  ../configure --prefix=<ZFSのインストールディレクトリ> --enable-systemd --enable-nls --enable-linux-builtin
  make -j $(nproc)
  make -j $(nproc)
  make install
  sudo make install
<br>
~/.profileファイル等に、環境変数を追記する。<br>
vi ~/.profile
<br>
<syntaxhighlight lang="sh">
# ~/.profileファイル
export PATH="/<ZFSのインストールディレクトリ>/bin:$PATH"
export PATH="/<ZFSのインストールディレクトリ>/sbin:$PATH"
export LD_LIBRARY_PATH="/<ZFSのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"
export MANPATH="/<ZFSのインストールディレクトリ>/share/man:$MANPATH"
</syntaxhighlight>
<br><br>
 
== ZFSのアンインストール ==
ZFSをアンインストールする。<br>
sudo make uninstall
<br>
セキュアブートが有効な場合、署名を削除する。<br>
cd ~/MOK/ZFS
sudo mokutil --delete ./ZFS.der --root-pw
<br>
PCを再起動して、署名を削除する。<br>
<br>
ZFSのカーネルモジュールを削除する。<br>
sudo rm /lib/modules/$(uname -r)/extra/zfs.ko \
        /lib/modules/$(uname -r)/extra/spl.ko
<br>
カーネルモジュールを再読み込みする。<br>
sudo depmod -a $(uname -r)
<br><br>
 
== MOKの署名 ==
セキュアブートが有効の場合、ZFSモジュールの署名を登録する必要がある。<br>
<br>
まず、ZFSモジュールの署名に必要な設定ファイルを作成する。<br>
mkdir -p ~/MOK/ZFS && cd ~/MOK/ZFS
vi ZFS.config
<br>
<syntaxhighlight lang="ini">
# ~/MOK/ZFS/ZFS.configファイル
[ req ]
default_bits = 4096
distinguished_name = req_distinguished_name
prompt = no
string_mask = utf8only
x509_extensions = myexts
[ req_distinguished_name ]
O = SUSE Linux Products GmbH (User Add ZFS)            # 任意の名前
CN = SUSE Linux Enterprise Secure Boot (User Add ZFS)  # 任意の名前
emailAddress = suse@localhost                          # 任意のメールアドレス
[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid
</syntaxhighlight>
<br>
キーペアを作成する。<br>
openssl req -x509 -new -nodes -utf8 -sha256 -days 36500 -batch -config ./ZFS.config \
            -outform DER -out ./ZFS.der -keyout ./ZFS.priv \
            -addext "extendedKeyUsage=codeSigning"
<br>
次に、MOK(Module owned Key)にキーをインポートする。<br>
<code>--root-pw</code>オプションを付加することにより、再起動時のZFSモジュールの署名において、rootパスワードが必要となる。<br>
sudo mokutil --import ./ZFS.der --root-pw
<br>
PCを再起動して、上記のキーの署名する。<br>
sudo systemctl reboot
<br>
ZFSモジュール(spl.koおよびzfs.ko)を署名する。<br>
sudo /lib/modules/$(uname -r)/build/scripts/sign-file sha256 ./ZFS.priv ./ZFS.der /lib/modules/$(uname -r)/extra/spl.ko
sudo /lib/modules/$(uname -r)/build/scripts/sign-file sha256 ./ZFS.priv ./ZFS.der /lib/modules/$(uname -r)/extra/zfs.ko
<br>
必要であれば、ZFSモジュールをXZ形式またはZstandard形式に圧縮する。(任意)<br>
# XZ形式の場合
cd /lib/modules/$(uname -r)/extra/
sudo xz -f spl.ko
sudo xz -f zfs.ko
# Zstandard形式の場合
cd /lib/modules/$(uname -r)/extra/
sudo zstd --rm spl.ko
sudo zstd --rm zfs.ko
<br>
ZFSモジュールを読み込む。<br>
sudo depmod -a $(uname -r)  # モジュール依存リストを更新する
sudo modprobe -v spl        # ZFSモジュールを読み込む
sudo modprobe -v zfs        # ZFSモジュールを読み込む
<br>
ZFSモジュールが正常に読み込まれているかどうかを確認する。<br>
lsmod | grep spl
lsmod | grep zfs
# または
sudo modinfo spl
sudo modinfo zfs
<br>
ZFSモジュールが正しく署名されているかどうかを確認する。<br>
正常に読み込まれている場合は、<u>"ZFS.der is already enrolled"</u>と表示される。<br>
cd <ZFSモジュールの署名ファイルが存在するディレクトリ>
sudo mokutil --test-key ./ZFS.der
<br>
上記の署名は、カーネルがアップデートされた場合、再度、署名が必要となることに注意する。<br>
<br>
作成したキーは信頼されるため、キーを適切に保存する必要がある。<br>
このキーで署名されたものはシステムから信頼されるため、セキュリティリスクとなる可能性があることに注意する。<br>
<br><br>
 
== ZFSの起動 ==
ZFSサービスを起動する。<br>
sudo systemctl start zfs.target
<br>
ZFSプールの再起動時に自動マウントするように、サービスを有効にする。<br>
sudo systemctl start zfs-import-cache
sudo systemctl start zfs-mount
sudo systemctl start zfs-import.target
<br>
ZFSプールのアップデートが必要かどうかを確認する。<br>
sudo zpool status
<br>
もし、<u>action: Upgrade the pool using 'zpool upgrade'.</u>メッセージが表示される場合、アップデートが必要である。<br>
全てのプールをアップデートする。<br>
sudo zpool upgrade -a
<br>
これらのSystemdサービスユニットは、/usr/lib/systemd/systemディレクトリに存在する。<br>
<br><br>
<br><br>