ZFS(ZoL 0.8)の既存のデータセットの暗号化

ZFS(ZoL 0.8)の既存のデータセットの暗号化

ZFS on Linux >= 0.8元のデータセットを使用して破棄してsend | recv既存のデータセット(スナップショットを含む)を暗号化することは可能ですか?

答え1

はい。この簡単な例を参照してください(ZoL 0.8.3でテスト済み)。

パスワードの代わりに元のキーファイルを使用したい場合:

( umask 777
dd if=/dev/urandom of=/path/to/keyfile bs=32 count=1 )

まず、スナップショットを作成します。

zfs snapshot -r tank/home@transfer

その後、アドバイスに従ってsend | recv(コピーオプションを使用して-R)受信側に暗号化オプションを提供してください。

zfs send -R tank/home@transfer |
    zfs receive \
        -o encryption=aes-256-gcm \
        -o keyformat=raw \
        -o keylocation=file:///path/to/keyfile \
        tank/newhome

元のデータセットがインストールされている場合、新しいデータセットはすぐにはインストールされません。

「/tank/home」をマウントできません。ディレクトリが空ではありません。

暗号化されていないデータセットを削除して新しいデータセットに置き換えます。

zfs destroy -r tank/home
zfs rename tank/newhome tank/home

データセットにサブデータセットがない場合は、インストールが簡単です。

zfs mount tank/home

その他

zfs list -rH -o name tank/home | xargs -L 1 zfs mount

(またはzfs mount -aインストールしない他のデータセットがない場合)

それだけです!

最後に、必要に応じてスナップショットを削除できます。

zfs destroy -r tank/home@transfer

関連情報