ZFSを使い始めて、基本を理解しましたが、ZFSの実行を維持するのに問題があります。
プールが作成され、マウントが作成され、データを保存してディスクアクティビティを確認できます...状況は良好です。ただし、再起動後、zpool list
は「使用可能なプールがありません」と報告します。
CentOSで、zfsの起動スクリプトが修正されたことについて説明している記事をいくつか見つけましたが、これまでのところ、Debianでは見つかりませんでした。
私はDebianバックポートzfs-dkms
パッケージを使用しています。このパッケージには、libzfs2linux
、libzpool2linux
、bfs-zed
、およびzfsutils-linux
が含まれています。また、init
ではなくSysVsystemd
モードで実行しています。
/dev/disk/by-id
と標準の/dev/sdx
デバイスを使用してプールを再作成してみました。 /etc/default/zfs
を編集して設定してみました(一度にすべてではありません):
ZFS_MOUNT='yes'
ZPOOL_IMPORT_ALL_VISIBLE='yes'
ZPOOL_IMPORT_PATH="/dev/disk/by-vdev:/dev/disk/by-id"
ZPOOL_IMPORT_PATH="/dev"
ZFS_INITRD_POST_MODPROBE_SLEEP='5'
プール構成名が/etc/zfs/zpool.cache
に表示されます。 zpool import <pool-name>
を使用して手動ですべてを正常に再インポートでき、すべてのデータがそこにあります。
これは起動時のタイミングの問題ですか?考えられるアイデアが不足しているので、ご意見をいただければ幸いです。
昨日の夕方、ここで謎を解くメーリングリストの投稿に出くわしました。これは、zfs_autoimport_disable
がデフォルトで1/trueに設定されてコンパイルされたことを示しています。したがって、/etc/default/zfs
で何を構成するかは問題ではなく、zfsモジュールがロードされたときにプールがインポートされることはありません。
したがって、私にとっての修正は、/etc/modprobe.d/
構成ファイル(好きなように呼んでください)を追加し、options zfs zfs_autoimport_disable=0
を定義することでした。これで、プールがインポートされ、zfsファイルシステムをzfsまたはレガシーモードでマウントできます。
私はこの決定を理解していませんが、今ではすべてが期待どおりに機能しています...
最初に/etc/default/zfs
をバックアップしてから、それを削除します。
legacy
アプローチを採用することをお勧めします。これにより、自動マウントzfs機能が削除され、マウント情報が/etc/fstab
に依存します。また、最も痛みの少ない設定として、常に/dev/disk/by-id
を使用することをお勧めします。
設定(プール/データセット)がわからないので、例を作成します。
zfs list
必要なデータセットを取得します。 storagepool/backup
storagepool/backup
zfsをアンマウントします。 (mount | grep zfs
またはzfs mount
で確認できます)zfs get mountpoint
でリストします。NAME PROPERTY VALUE SOURCE storagepool/backup mountpoint /storagepool/backup default
マウントポイントを変更するzfs set mountpoint=legacy storagepool/backup
次に、Sudo
またはroot
を介して/etc/fstab
を編集する必要があります。2行目を入力します(最初の行は詳細を説明するためにあります)
<device alias dataset> <mountpoint> <filesystem type> <options> <dump> <fsckorder> storagepool/backup /mnt/backup zfs defaults 0 0
詳細説明:
defaultオプションの意味:
rw, suid, dev, exec, auto, nouser, and async
SSDを使用している可能性が低い場合は、noatime
オプションの後にdefaults
を使用することをお勧めします。
これで、再起動すると、/etc/fstab
ファイルに従ってzfsファイルシステムがマウントされます。
重要な注意:zfsレガシーをマウントする場合は、mount -t zfs <dataset> <mountpoint>
の代わりにzfs mount
を使用する必要があります。
@ Peter-Bあなたのソリューションは、再起動時にzpoolがインポートに失敗するという私の問題を解決しました。どうもありがとう。 modprobe conf構文に慣れていない人のための簡単な説明:オプションは1行である必要があります。
options zfs zfs_autoimport_disable=0