Debian Buster上のLinux(7.13)でZFSを使用してzpoolを作成したいと思います。問題は、プールがLUKS暗号化ドライブ(ルートではなく外部のみ)に基づいて作成されることです。これらのドライブは、外部ソースからキーファイルをプルしているため、私が作成したスクリプトによって、起動時に復号化およびロードされます。
ドライブが復号化されてロードされる前にシステムがzpoolをマウントするタイミングの問題を回避するために、スクリプトの一部としてプールも手動でマウントしたいと思います。
次に、プールの作成時にマウントポイントにどのオプションを選択する必要があるかを自問します。noneまたはlegacy
マニュアルページは実際の違いが何であるかを本当に助けません:
ファイルシステムのマウントポイントがレガシーZFSに設定されている場合、ファイルシステムの管理は行われず、管理者はファイルシステムのマウントとマウント解除を担当します。従来のマウントが成功する前にプールをインポートする必要があるため、管理者は、zpoolインポートプロセスがブート時に終了した後でのみ、従来のマウントが試行されるようにする必要があります。たとえば、systemdを使用するマシンでは、マウントオプション
実際の違いと、スクリプトを使用して後で手動でマウントする方法を誰かが知っていますか?
LUKSで暗号化されたボリュームでZFSプールを使用してきたのは、10年の大半です。正常に動作します。
存在しないタイミングの問題を回避するためにプールを手動でマウントする理由はありません。普通にプールを作って楽しんでください。
今後の問題を回避するには、プールを作成および管理するときに、luks-
ディレクトリの/dev/mapper
で始まる名前を使用してデバイスを参照します。たとえば、デバイス:
lrwxrwxrwx. 1 root root 10 Jul 26 22:22 luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1046856 -> ../../dm-5
lrwxrwxrwx. 1 root root 10 Jul 26 22:22 luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1145175 -> ../../dm-4
lrwxrwxrwx. 1 root root 10 Jul 26 22:22 luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1165144 -> ../../dm-2
lrwxrwxrwx. 1 root root 10 Jul 26 22:22 luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WMC1P0DHH53R -> ../../dm-3
対応する:
pool: srv
state: ONLINE
scan: scrub repaired 0B in 0h42m with 0 errors on Tue Jul 30 14:42:04 2019
config:
NAME STATE READ WRITE CKSUM
srv ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1046856 ONLINE 0 0 0
luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1145175 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1165144 ONLINE 0 0 0
luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WMC1P0DHH53R ONLINE 0 0 0
このプールは次のように作成されます:
zpool create -o ashift=12 srv \
mirror \
luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1046856 \
luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1145175 \
mirror \
luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1165144 \
luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WMC1P0DHH53R
ポータブルドライブのあるluksでzfsを使用しています。標準のマウントポイントで問題が発生したことはありません。マウントはプールがインポートされるまで行われず、luksボリュームがロック解除されるまで行われません。だからあなたはこれを考えすぎているのではないかと思います。
とにかく、本当に必要な場合は、手動マウントのレガシーを使用してください。
LUKSドライブに多少の遅延があり、ドライブのロード後にzpool import <poolname>
を追加する限り、スクリプトによってこれらを復号化する場合でも、マウントポイントとしてnone
またはlegacy
を使用する必要はありません。当時、ZFSはプールをインポートしようとしているため、それらは利用できない可能性があります。これは、syslog
のメッセージで確認できます