NETGEAR 在其 ReadyNAS 操作系统中使用 BTRFS,并在其最新版本中实施分层存储。他们仅在 ReadyNAS v6.9 中使用“元数据”层,然后在 v6.10 中添加了“数据层”。系统使用 SSD 作为 Tier-0 以加快对系统中速度较慢的 HDD 的访问。系统描述指出,元数据在两种情况下都将驻留在 SSD 上,在“数据层”情况下,新写入的数据也会首先进入 SSD,然后会定期迁移到 HDD,或者当SSD 层填充到指定级别。
ReadyNAS 在其正常安装中在 RAID 硬盘驱动器之上使用 BTRFS - 例如,我的系统有一个由 4 个磁盘组成的 RAID5,BTRFS 将其视为/用作单个设备。
查看分层的实现方式,看起来“元数据”和“数据层”设置都是通过将仅由 SSD 组成的第二个 RAID 阵列添加到主 HDD RAID 阵列并转换初始单设备来完成的BTRFS 成为多设备之一。
我无法弄清楚的是迁移是如何完成的,以及“元数据”案例如何设法将元数据与数据分开,以便只有元数据进入 SSD?此外,“数据层”模式如何将写入完全定向到 SSD 层?
有任何想法吗?
您说 Netgear 已经找到了一种方法,以用户友好且极其简单的配置完成 MergerFS 分层缓存已经允许您执行的操作:https: //github.com/trapexit/mergerfs#tiered-caching
创建 2 个 MergerFS 池 A) 一个包含所有 HDD 驱动器,包括 SSD(“POOL”,tier0),并设置为写入具有最少可用空间的设备(除非它还剩 X 量的可用空间)。B) 第二个池(“POOL-ARCHIVE”,tier1)仅包含 HDD。
您的用户和所有应用程序仅使用第一个池的路径。
一个夜间脚本,将过去 X 天内未触及的所有内容从第一个池复制到第二个池(很简单,因为驱动器是相同的,这只会导致 SSD 上的数据被复制)。这是唯一使用第二个池的路径的项目。
这正是我设置家庭服务器的方式。所有驱动器均采用 BtrFS 格式。我不(不能,使用这个解决方案)使用Raid。
优点:
缺点:
我非常喜欢 MergerFS,因为它很简单,但是第 2 个问题让我对 Netgear 如何使用 BTRFS 破解类似的解决方案非常感兴趣。