我有 2 个存储设备;经典慢速 HDD(750GB,/dev/sda)和更快的 SSD(128GB,/dev/sdb)。目前,我在 SSD 上的同一 btrfs 分区(/dev/sdb5)上安装了 Ubuntu 和 Mint。我的 btrfs 池由 /dev/sdb5/ 组成
我想要实现的是在保持 SSD 性能的同时在 HDD 上进行数据复制:如下所示:
对于读取案例,理想的程序如下:
- 从 SSD 读取
- 检查校验和
- 如果验证通过,太棒了,给我数据
- 如果不是,则从 HDD 中获取数据并通过重复数据进行纠错
我会每月左右手动运行(某些工具,我不确定是哪一个...也许是 btrfs check--repair?)来检查 HDD 校验和并通过 SSD 数据纠正它们以防止 bitrot。
对于写入情况:
- 写入SSD
- 当写入要求较低时同步到 HDD,从而不会降低系统速度。
这可能吗?我该怎么做?
答案1
bcache 和 dm-cache 可以使用 SSD 之类的磁盘作为写回缓存。flashcache 和 rapiddisk 也很有趣。它们都给你的存储堆栈增加了许多复杂性,如果你不知道自己在做什么,你很容易丢失数据。
老实说,对于通用操作系统工作负载来说,这可能完全是浪费时间。这些堆栈针对的是数据库等 IO 密集型应用程序。如果您只是想尝试一下,我建议您设置一个不同的数据磁盘目标,这样您就可以在不破坏操作系统的情况下进行修改。使用 fio 或 vdbench 来测量您的性能。