web-dev-qa-db-ja.com

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

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

3
BayerSe

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

(パスフレーズではなく)生のキーファイルを使用する場合:

dd if=/dev/urandom of=/path/to/keyfile bs=32 count=1
chmod 000 /path/to/keyfile

最初にスナップショットを作成します。

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

else

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

(または単にzfs mount -aマウントすべきでない他のデータセットがない場合)。

そしてそれはそれについてでした!

最後に、必要に応じてスナップショットを破棄します。

zfs destroy -r tank/home@transfer
1
dmt