我现在有一台配备 256 GB M.2 SSD 驱动器的 PC,用于 Linux Mint 根目录、交换分区和主分区。我有一个 2TB 的 HDD 来存储我的所有数据(实际上,我将它与主目录分开,因为用户的主文件夹有用户配置)。
我想将该系统迁移到 ZFS,以利用校验和、快照、透明压缩和断电稳健性。
由于我构建硬件时没有考虑 ZFS,所以现在我想知道利用此设置的最佳方法是什么。
我正在做很多视频制作等工作,所以我有很多大文件(10GB)被扔来扔去。我考虑过使用 SSD 作为 SLOG,但当我捕捉和渲染视频文件时,这不会不必要地磨损 SSD 吗?无论如何,在这方面,HDD 速度对我来说不是瓶颈。
send
我应该为 SSD 和 HDD 创建单独的池吗?我可以使用/receive
命令轻松地在池之间移动数据集吗?
我是否可以将 SSD 分区,将其用作根分区,并将 SLOG 用作 HDD?这是否会破坏磨损均衡并更快地损坏我的 SSD?这是否会破坏 SSD 的性能优势?
附注:
我可能会稍后添加第二个 2 TB 硬盘作为镜像以获得冗余。我还有 2 个 1TB USB 3.0 驱动器,我在 Raid-0 中与 ZFS 一起使用了一段时间。它们似乎运行良好,可以处理 ~130 MB/s 的写入速度。我想知道将其用作我的主要硬盘的镜像 vdev 是否是个好主意。它们已被证明在几个月内都很稳定(我知道 USB 在 ZFS 上可能会有问题 - 我也经常使用它)。
我目前使用的rdiff-backup
是外部 3TB USB 3.0 驱动器。
到目前为止,我已经部署过几次 ZFS,一次是在生产环境中用于系统根目录,一次是在 2 个磁盘镜像中存储数据。不过,我从未使用过 SSD。
您建议我做什么?
答案1
我正在做很多视频制作等工作,所以我有很多大文件(10GB)被扔来扔去。我考虑过使用 SSD 作为 SLOG,但当我捕捉和渲染视频文件时,这不会不必要地磨损 SSD 吗?无论如何,在这方面,HDD 速度对我来说不是瓶颈。
只有同步写入才会进入 ZIL,因此您可能不会看到性能因软件而异的太大差异。写入耐久性仅对低质量的消费级驱动器(您未指定型号)或全天候繁重的写入工作负载才值得关注。如果您每天工作 8 小时,那么您的剩余时间将是原来的 3 倍。
我应该为 SSD 和 HDD 创建单独的池吗?我可以使用发送/接收命令在池之间轻松移动数据集吗?
无论底层 vdev 配置如何,发送/接收都可以正常工作。请记住,您可以单独选择每个文件系统,但无法获得更精细的粒度(文件级别)。
我是否可以将 SSD 分区,将其用作根分区,并将 SLOG 用作 HDD?这是否会破坏磨损均衡并更快地损坏我的 SSD?这是否会破坏 SSD 的性能优势?
是的,你可以,4 GB 的空间足以容纳 ZIL。另一方面,它肯定会变慢,但使用快速 SSD,你可能不会注意到这一点。但请注意,你现在有两个问题 - 如果你的 SSD 坏了,你将丢失整个操作系统/配置文件,并且可能会丢失已提交但尚未写入 HDD 的数据。如果你选择这种方式,我强烈建议使用两个 SSD,如果可能的话,两个具有相同速度和延迟的 SSD,因为较慢的那个决定了速度。
我可能会稍后添加第二个 2 TB 硬盘作为镜像以获得冗余。我还有 2 个 1TB USB 3.0 驱动器,我在 Raid-0 中与 ZFS 一起使用了一段时间。它们似乎运行良好,可以处理 ~130 MB/s 的写入速度。我想知道将其用作我的主要硬盘的镜像 vdev 是否是个好主意。它们已被证明在几个月内都很稳定(我知道 USB 在 ZFS 上可能会有问题 - 我也经常使用它)。
如果这种方法对你有用,而你的其他选择(例如将磁盘放入带有 SATA 的系统内)不可用,那么这种方法可能是一种选择。当然,定期备份是必须的(无论如何都是如此)。
我目前将 rdiff 备份到外部 3TB USB 3.0 驱动器。
如果您将驱动器格式化为基本 ZFS vdev,您还可以使用 send/recv。备份将更快(块级增量发送),并且您至少会进行一致性检查(校验和和清理)。唯一的缺点是,对于关键文件系统错误,您将把所有鸡蛋都放在一个篮子里,这里的选择取决于您。