FreeBSD + ZFS + 加密?备择方案?建议?

FreeBSD + ZFS + 加密?备择方案?建议?

我想创建一个专用的物理服务器,它将在我的 LAN 内(以及通过 VPN)用作 NAS 和文件服务器。

不过,我需要完全加密驱动器(系统驱动器和数据驱动器,因为我想我将使用两个 zpool)。由于版本 28 不支持 ZFS 加密,而 FreeBSD 支持(以及 OpenIndiana、Nexenta 等),唯一的可能性似乎是使用 GELI。

现在我在想在 ZFS 之上添加 GELI 层是否会导致数据丢失。互联网上的一些帖子(虽然不多)似乎指出了这个问题。特别是,考虑到 RAID(Z) 和校验和的集成,ZFS 似乎是比 Unix/Linux 世界中任何其他文件系统(例如 ext4、xfs 以及 btrfs)都要优越得多的文件系统。

现在在我看来,在此之上添加 GELI 就像在 RAID 设置之上添加 LUKS,尽管我从未体验过 Geli,也不知道它的可靠性。性能不是主要问题,尽管我不希望 LAN 上有 1MB/s 的传输速度(不过 >20MB/s 也是可以接受的)。

我从未离开过 Linux 世界,所以我没有使用 FreeBSD 或 Solaris 衍生产品的经验。由于付费(昂贵)支持问题,我宁愿不使用 Solaris Express 11。这将是家里的一台电脑。如果有必要的话我愿意学习它们。
服务器需要执行基本的 NAS 任务(特别是 samba/cifs 文件共享,我不需要与较新的 ZFS 版本集成的任务)。

考虑了加密层之后,GELI + ZFS 比 LUKS + LVM + ext4 更可靠还是更不可靠??我在另一篇关于超级用户的帖子中询问,他们因为 ZFS 推荐了 FreeBSD/Solaris,尽管我们没有谈论加密。不知道 OpenIndiana 等是否支持 LUKS 或 GELI 等块加密方法。

此外,向阵列添加磁盘、扩展 RAID(Z) 和文件系统是否会很容易,就像我们在 Linux 中所做的那样(例如这里)?

答案1

您应该能够使用 geom 提供程序之一通过 ZFS 进行加密,但您应该对 ZFS 下面的设备进行加密。我可能会设置 geli,然后在 freebsd-zfs 类型内创建一个 gpt 分区,然后从那里开始。

我建议您实际测试这两种解决方案(freebsd 和 linux),并根据系统管理时间和性能做出对您有意义的决定。

答案2

Solaris 11 支持 ZFS 内的本机加密。如果您不依赖 BSD,那么值得考虑一下。它可以免费用于非生产用途,因此您可以在家使用它,而无需购买支持许可证。

要扩展池,您需要添加更多 vdev,您无法通过添加更多磁盘来扩展单个 raidz 或其他 vdev 类型。但是,一旦您开始添加更多 vdev,ZFS 就会在它们之间条带化数据,您将获得一些额外的性能。

答案3

我认为您不必过度担心数据丢失。 FreeBSD 上的 Geli 已经成熟,根据我的经验,它是无懈可击的。先格力,后ZFS在上面。然后,您可以使用 zpool 以您喜欢的任何配置构建池 - 单驱动器、镜像、RAID-Z 等等。

我自己的经历:

我有一台 FreeBSD 9 家庭服务器,具有类似的设置 - 两个驱动器,每个驱动器一个 zpool。这是 ZFS-on-root 设置 - 没有 UFS。一个驱动器是系统,另一个驱动器是数据。数据驱动器具有全盘加密,系统驱动器没有(尽管我相信没有理由不能 - 我只是想避免额外的复杂性)。

我使用 geli 来加密裸数据驱动器。 ZFS(严格来说,zpool)看到这一点就像任何其他块设备一样,您只需以正常方式调用“zpool create ...”,然后您就可以根据需要在池上创建 zfs 数据集。

在我的用例中,性能并不是问题。我的在 4GB Atom D520 上运行得非常好。可能不是闪电般快(磁盘只有 5200rpm 2.5 英寸,功耗/噪音低),但适合家庭网络服务。

该设置已经运行了几年,没有出现任何问题。

答案4

如果您在 ZFS 上放弃像 LUKS 或 Geli 这样的全盘加密 (FDE),您将无法充分利用 ZFS 的功能集。但是,如果您将 ZFS 放在 FDE 上,它就会起作用。

我最近听到 FreeBSD ZFS 专家的讨论,他们推荐在 ZFS 上使用 PEFS,因为这允许 ZFS 仍然可以查看单个文件。未来,可配置文件夹和文件的 PEFS 可能会被配置并捆绑在 FreeBSD ZFS 库中。

虽然有密码学专家建议我们不要依赖全盘加密,但我认为在 FreeBSD 或 Linux 上,链接不同的加密策略可能是一个合理的策略。

例如:原始磁盘 -> FDE (Geli/LUKS) -> ZFS -> (对于 /home)使用 PEFS 或 EncFS 的用户区加密。使用这种模型,如果全盘加密被破坏,据我了解,如果有人有资源和动力,这并不困难,您仍然可以使用 PEFS/EncFS 来保护您最重要的文件,这将更难裂缝。

相关内容