Don*_*ill 20 linux raid lvm ssd trim
我们在 Linux(当前为 2.6.37)上使用 RAID1+0 和 md 创建一个 md 设备,然后使用 LVM 在设备之上提供卷管理,然后使用 ext4 作为我们在 LVM 卷组上的文件系统。
使用 SSD 作为驱动器,我们希望看到 TRIM 命令通过层(ext4 -> LVM -> md -> SSD)传播到设备。
看起来最近的 2.6.3x 内核添加了许多与 SSD 相关的新 TRIM 支持,包括对 Device Mapper 场景的更多覆盖,但我们似乎仍然无法使其正确级联。
这还有可能吗?如果是这样,如何?如果没有,是否有任何进展?
sys*_*138 14
从 2.6.37 开始,它应该存在 ( source )。内核不会在后台执行此操作,块丢弃过程当前设计为按需运行(cron 脚本!)。Dm-crypt 支持尚不存在。
2011 年 1 月 13 日,一个补丁被合并到 dm-raid1.c 中,内容如下:
dm raid1: support discard
Enable discard support in the DM mirror target.
Also change an existing use of 'bvec' to 'addr' in the union.
Run Code Online (Sandbox Code Playgroud)
我不是 100%,但我认为这是 2.6.38 的合并窗口。
EXT4 不久前添加了支持,LVM 也是如此。RAID 是没有支持的一键。截至 2011 年 1 月 13 日,似乎已添加支持。在 2.6.38 或 2.6.39 中寻找它。
时间过去了,TRIM 支持肯定包含在 3.7 内核中。RAID10的提交内容如下:
这使得 md raid 10 支持 TRIM。如果一个磁盘支持discard而另一个不支持,或者一个有discard_zero_data而另一个不支持,则来自这些磁盘的数据可能不一致。但这应该没关系,丢弃的数据是无用的。不过,这将在重建中添加额外的副本。
更新。2020-06-17
回顾 2020 年的提交历史:
2010-08:如果至少有一个底层设备支持,则允许将丢弃传递到线性映射。2 年后有关于md(LSR) 的承诺,其中之一:
2012-10: md: RAID 10 支持 TRIM— 基本上在我之前编辑答案后的几个月内,Linux 内核就能够在设置中支持块丢弃。
以前版本的答案:
更新。2012-07-17 更新
。:感谢Wodin让我知道-根据lkml.org/lkml/2012/3/11/261这个功能已经加入提出了最近。建议!=接受,不过。
更新。2011-02-01 不可能,因为 Linux Soft RAID 不支持这个(还?)。