我可以使用 ZFSoL 0.8.1 加密整个池吗?

我可以使用 ZFSoL 0.8.1 加密整个池吗?

我已经为我的服务器编译了 ZFS 0.8.1,并且运行良好。我还可以创建加密文件系统,如 mypool/myencfs。

但是,mypool 也是一个文件系统,而且我似乎无法在其上启用加密:

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

该池将使用来自另一个加密驱动器的密钥文件进行解密,因此我希望将可继承属性设置得尽可能高,这样当我意外将某些内容复制到 mypool/ 时也不会冒未加密数据的风险

答案1

虽然我在网上没有直接找到任何关于此事的信息(似乎每个人都只创建加密的子文件系统),但我还是想找出如何在创建池期间设置任何属性。它是-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/系统/[电子邮件保护]

[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

相关内容