Zfs

我可以使用 ZFSoL 0.8.1 加密整個池嗎?

  • June 27, 2019

我已經為我的伺服器編譯了 ZFS 0.8.1,它執行良好。我還能夠創建像 mypool/myencfs 這樣的加密文件系統。

但是,mypool 也是一個文件系統,我似乎無法對其啟用加密:

zfs set encryption=on mypool
cannot set property for 'mypool': 'encryption' is readonly

該池將使用來自另一個加密驅動器的密鑰文件進行解密,因此我想將可繼承屬性盡可能高,當我不小心將某些內容複製到 mypool/ 時,也不會冒未加密數據的風險

雖然我沒有直接在網上找到任何關於這件事的東西(每個人似乎都只創建加密的子文件系統),但我想知道如何在創建池期間設置任何屬性。它是-O(大寫)選項。

這有效

zpool create -o ashift=12 -o feature@encryption=enabled \
            -O encryption=on -O keylocation=file:///root/keys/hdd256.key \
            -O keyformat=raw \
            mypool /dev/disk/by-id/mydisk

為了完整起見,由於網上似乎仍然很少有這件事,這也是我設置 systemd 以自動掛載驅動器的方式:

/etc/systemd/system/zfs-load-key@.service

[Unit]
Description=Import key for ZFS pool
Documentation=man:zfs(8)
DefaultDependencies=no
After=systemd-udev-settle.service
After=zfs-import.target
After=systemd-remount-fs.service
Before=zfs-mount.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/zfs load-key -r %i

[Install]
WantedBy=zfs.target

systemctl enable zfs-load-key@mypool

引用自:https://serverfault.com/questions/972496