ZFSを使用してDell PowerEdge R720xdにUbuntu 18.04をインストールしました。 ZFS mirror
構成には2つの1TBブートドライブがあります。 Linux Wiki上のZFS の指示に従いました。
(注:私のシステムでは、ZFSとこのRAIDカードが連携していないため、オンボードRAIDカードの代わりにLSI LSI00244(9201-16i)ホストバスアダプター(HBA)を使用しています。)
Ubuntuを起動するとき、システムがドライブを列挙するのに約10秒かかります(14のドライブがあります-2つはOS用で、12は後で他のzpoolsにセットアップされるデータストレージ用です)。ただし、ブートプロセスは、ドライブが列挙される前にブートプールをインポートしようとします。
BusyBoxのエラーメッセージが画面上で点滅し、基本的に次のように表示されます。
プールをインポートできませんでした。
このBusyBoxシェルにプールを手動でインポートしてから、
exit
と入力して、起動プロセスを続行します。
メッセージが表示されてから数秒待つと、14台のドライブが一覧表示されます。
動作するBusyBoxプロンプトでzpool import rpool
と入力し(zpool list
で確認)、次にexit
と入力してブートプロセスを続行します。 (これが私の次の問題であるカーネルのクラッシュにつながりますが、それは別の質問です。)
ブートオプションにrootdelay=15
を追加してみましたが、ZFSプールのインポート後に遅延を実行したいため、動作しないようです。
起動プロセスがデバイスの表示を待ってからプールをインポートしようとするにはどうすればよいですか?
私はついにこれを/etc/default/zfs
で見つけました:
# Wait for this many seconds in the initrd mountroot?
# This delays startup and should be '0' on most systems. This might help on
# systems which have their ZFS root on a USB disk that takes just a little
# longer to be available
# Only applicable for Debian GNU/Linux {dkms,initramfs}.
ZFS_INITRD_POST_MODPROBE_SLEEP='0'
設定方法は次のとおりです。
/mnt
を使用してプールをzpool import rpool -R /mnt
にインポートしますmount --rbind /dev /mnt/dev; mount --rbind /proc /mnt/proc; mount --rbind /sys /mnt/sys
/mnt
にchrootします:chroot /mnt /bin/bash --login
/etc/default/zfs
を編集して、上記の値を0
から15
に変更しますupdate-initramfs
およびupdate-grub
を実行します