所以我最近在家里建立了自己的小服务器。
我将主系统安装在 SSD 上,并采用更大的 HDD ZFS 池来存储数据。
现在我问自己的问题是,对于我想要设置的服务(例如 mysql、ownCloud、gitolite 等),将数据文件夹保存在 SSD 上并对 ZFS 卷上的特殊备份数据集执行定期 RSYNC 是否更有意义,或者首先将数据文件夹保存在 ZFS 池中。
在我看来,将它们放在 SSD 上并同步它们可能不是一个好主意,因为这会让我失去 ZFS 附带的一致性检查,并且有点违背了最初拥有它的目的。
在这种情况下,推荐的选项是什么?将 /var/lib 中的所有内容符号链接到池文件夹是正确的做法吗?我应该修改配置脚本吗?我应该首先将 /var 挂载到 ZFS 卷上吗?
一般来说,哪些文件夹应该放在 ZFS 卷上?
答案1
与往常一样,这很大程度上取决于您的情况。
如果您只想使用 ZFS 进行长期备份存档而不存在位翻转的危险,并且不想进行太多更改,那么您可以以任何您想要的方式使用您的主系统并对md5deep
活动数据使用校验和(例如),然后将其复制/rsync 到备份池,再进行一次散列并完成它。
如果您希望最大限度地提高应用程序性能,则可以拆分应用程序和数据 - 应用程序位于任何文件系统上的 SSD 上(因为它们可以轻松重新安装),数据位于您的池中(因为它很有价值)。然后,您可以根据应用程序的需要,在本地或通过 NFS 使用数据。
如果您想要平衡的性能(更好的池性能,但不如第二个示例中的本机访问速度快),并且不介意重新组织布局,则可以将 SSD 添加为 ZFS 意向日志 (ZIL) 的单独日志设备,这可以加快同步写入速度。但要小心,因为您写入磁盘的所有数据也会写入 SSD,因此 SSD 可能会比正常情况下更快地因磨损均衡而损坏。
无论如何,您只能在 ZFS 文件系统和 zvols 上获得快照。仅凭这一功能,我就相信我会尽可能多地使用 ZFS。安装了错误的软件?只需回滚,您的状态就会恢复正常。系统升级后启动失败?只需使用 15 分钟前最后一个好的快照,不用担心。在编辑 /etc/ 中的某些文件时意外覆盖了重要的系统信息?没问题,一切都为您准备好了。