我目前有一个系统设置为运行 Ubuntu 16.04 LTS 的 plex 服务器。我正在升级服务器,想知道布局文件系统的最佳方法。我考虑迁移到 ZFS 池,但我不确定这是否理想。
当前机器的介质分布在多个磁盘上。4x8TB Seagate 5400rpm 存档驱动器和 4x4TB 驱动器(几种不同类型)。
目前,它们都作为单独的文件系统安装,其中一半用于通过我拼凑的 rsync 脚本备份到另一半。
当前设置的一个缺点是,我需要为媒体、电影驱动器、音乐驱动器以及正在播放的电视剧和已完成的电视剧设置一系列挂载点。特别是,我想将所有电视节目整合在一起,但目前电视节目超过 8TB。
当前设置是可行的,但将所有内容安排为一个巨大的“媒体”驱动器的某种更整合的设置似乎是一个有吸引力的替代方案。
当前的镜像安排最好以某种形式保留,并且承受驱动器故障的能力比性能更重要。
我还非常希望能够将新驱动器添加到设置中,而无需复制所有内容并将所有内容复制回设置中。
新系统将围绕 i5 处理器和 16GB RAM 构建。
ZFS 看起来可以很好地完成这项工作。这个想法是在镜像设置中构建两个池(如果我没有误解这个术语,则为 RAID-Z)。此处任何设置的困难在于,我目前拥有镜像,但无法一次重新利用所有驱动器,因为数据需要分阶段移动到新池。如果我可以一次将池中的 1 个磁盘扩展,然后将复制的磁盘作为新驱动器添加到池中,那么另一个 RAID 设置将可以实现这一点。
是否存在与 ZFS 相关的原因导致它极不适合执行这项任务?
大家对于如何实现这样的设置有什么建议吗?
我是否最好坚持当前的设置?
答案1
我目前正在使用 ZFS 来实现这个用例(即媒体中心存储)。我已经用了好几年了。
您确实可以将 ZFS 配置为镜像:
- 数据在镜像中的所有磁盘之间复制
- 可用大小是最小磁盘的大小
- 因此,您可以通过创建具有 X 个镜像的 zpool 来模拟通常的 RAID 镜像,每个镜像包含 2 个磁盘。
或者作为 RAID-Z 1/2/3:
- 根据 RAID-Z 的类型,您可能会丢失 1、2 或 3 个磁盘
- RAID-Z 大小受限于较小的磁盘,因此如果所有磁盘都配置在同一块磁盘上,则 4x4TB 和 4x8TB 相当于 8x4TB。因此,对于您的情况,建议在同一个池中创建 2 个不同的 raid-z,每个 raid-z 包含 4 个磁盘。
还,ZFS 尚不支持将磁盘添加到现有 RAID-Z。因此,如果您创建一个由 4 个磁盘组成的 RAID-Z,它永远无法包含超过 4 个磁盘(但您可以将每个磁盘升级为更大的磁盘)。
还需要注意的是,读/写操作需要大量的 CPU/RAM。ZFS 默认配置为能够使用所有可用 RAM(1GB 除外)。
更多细节,这个文件描述 ZFS 的工作原理,并将其与通常的 RAID 进行比较。
注意:如果您打算使用 ZFS,请确保使用ashift=12
如下选项创建 zpool:
zpool create -o ashift=12 ...
这会将扇区大小设置为 4096B,而不是默认的 512B。这将极大地提高您的使用性能。