NETGEAR在其ReadyNAS操作系统中使用BTRFS,并在其最新版本中实现分层存储。它们只从ReadyNAS v6.9中的“元数据”层开始,然后在v6.10中添加“数据层”。系统使用SSD作为第0层,以加快对系统中较慢的HDD的访问。对系统的描述指出,在这两种情况下,元数据将驻留在SSD上,而在“数据层”情况下,新写入的数据也将首先转移到SSD,然后再定期迁移到HDD,或者当SSD层填充到指定的级别时。
ReadyNAS在其正常安装的RAID硬盘上使用BTRFS -例如,我的系统有一个由4个磁盘组成的RAID5,BTRFS将其视为一个单一的设备。
看看Tiering是如何实现的,看起来“元数据”和“数据层”设置都是通过向主HDD RAID数组中添加第二个RAID数组(仅由SSD组成)来完成的,并将初始的单设备BTRFS转换为多设备RAID。
我无法理解的是迁移是如何完成的,以及“元数据”案例是如何将元数据与数据分开的,因此只有元数据才能进入SSD?另外,“数据层”模式如何将写入完全指向SSD层?
有什么想法吗?
发布于 2020-12-31 01:19:16
您是说,Netgear已经找到了一种方法,可以在用户友好且非常简单的配置中完成MergerFS分层缓存允许您完成的任务:https://github.com/trapexit/mergerfs#tiered-caching。
我就是这样建立我的家的。所有驱动器都是BtrFS格式的。我不能(用这个解决方案)使用Raid。
优点:
缺点是:
我非常喜欢MergerFS,因为它的简单性,但是con #2让我非常感兴趣的是网具是如何使用BTRFS攻击类似的解决方案的。
发布于 2020-12-13 02:30:40
好的,下面是我在周期性平衡过程中发现的情况:
在主机上启动了以下进程:
btrfs balance start -dsweep lt:/dev/md127:7 /data LANG=en_US.UTF-8 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DBUS_SESSION_BUS_ADDRESS=unix:path=/var/netatalk/spotlight.ipc TRACKER_USE_CONFIG_FILES=1 TRACKER_USE_LOG_FILES=1 XDG_DATA_HOME=/apps/.xdg/local/share XDG_CONFIG_HOME=/apps/.xdg/config XDG_CACHE_HOME=/apps/.xdg/cache在/data是分层数据卷的地方,/dev/ my 127是用作缓冲区/缓存的SSD数组。
此过程将一直运行,直到SSD层的数据几乎完全移动到HDD层--例如,我看到的某个地方:
btrfs fi sh /data
Label: '0a44c6bc:data' uuid: ed150b8f-c986-46d0-ada8-45ee219acbac
Total devices 2 FS bytes used 393.14GiB
devid 1 size 7.12TiB used 359.00GiB path /dev/md126
devid 2 size 114.68GiB used 42.06GiB path /dev/md127然后下降,直到SSD层的使用几乎为零。奇怪的是,到目前为止,我还不能手动运行这个命令。
我还是找不出“扫”平衡过滤器。
这就是-help所展示的:
# btrfs balance start --help
usage: btrfs balance start [options] <path>
Balance chunks across the devices
Balance and/or convert (change allocation profile of) chunks that
passed all filters in a comma-separated list of filters for a
particular chunk type. If filter list is not given balance all
chunks of that type. In case none of the -d, -m or -s options is
given balance all chunks in a filesystem. This is potentially
long operation and the user is warned before this start, with
a delay to stop it.
-d[filters] act on data chunks
-m[filters] act on metadata chunks
-s[filters] act on system chunks (only under -f)
-v be verbose
-f force reducing of metadata integrity
--full-balance do not print warning and do not delay start
--background|--bg
run the balance as a background process但这并不能解释它如何映射到定期运行的命令的"lt:/dev/md127:7“部分:
btrfs balance start -dsweep lt:/dev/md127:7 /data这里的意思是:一直运行到/dev/‘s 127数据使用率降到7%以下?!?
发布于 2020-12-09 01:13:26
它必须是一个定期运行并进行迁移的cron作业。
检查/etc/cron.d是否有可能这样做。
https://unix.stackexchange.com/questions/623460
复制相似问题