阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

RAID中可以做TRIM操作吗?

451次阅读
没有评论

共计 2154 个字符,预计需要花费 6 分钟才能阅读完成。

不知道大家有没有考虑过这样一个问题:在 RAID 中是否可以支持 TRIM 操作?

试想在 SSD 上建立 RAID 之后,应用软件(文件系统)直接运行在 RAID 软件之上,那么此时如何通过 TRIM 命令将 SSD 中的数据块 unmap 掉呢?看起来这好像不是一个问题,其实对于 RAID 而言这是一个比较大的问题。存储老吴可以带领大家从研发人员的角度一探 RAID 中 TRIM 所引入的问题,从中也可以一窥用户所应该注意的问题。

目前,RAID 方面的开源软件是 MD,很多用户对 MD 这套软件是非常热衷的。认为这套软件运行非常的稳定,性能不错,功能很全,并且还有很多技术人员对其进行免费开源维护。其实,和专业的 RAID 存储软件相比,MD 就是一个演示系统。目前,在 MD 软件中是不支持 SSD 的 TRIM 操作的,不是说不想加入这个功能,而是并不容易添加这个功能,这会涉及到很多的开发工作量。

对于 SSD 的 TRIM 操作,其主要想法是通过释放 SSD 内部一个逻辑地址(LBA)的映射数据块来提升 SSD 本身的性能。这主要是由于 SSD 内部采用 FTL 的方式对所有写入数据采用 Append write(追加写)的方式,所以,当没有空闲资源的时候,SSD 需要通过启动垃圾回收来获取空闲资源。垃圾回收对 SSD 的性能影响巨大,因此,如果业务能够主动释放空闲资源,那么 SSD 内部的垃圾回收就会轻松很多,从而可以提升 SSD 本身性能。TRIM 操作就是让应用层主动释放空闲资源的机制。

当应用软件直接架构在 SSD 上时,其可以很容易的向 SSD 通过发送 TRIM 命令来回收资源。但是,在应用软件和 SSD 之间引入 RAID 之后,情况发生了巨大变化。首先,让我们来认识一下一个普通的 RAID 数据布局,这个数据布局会显得非常规整:

RAID 中可以做 TRIM 操作吗?

在这样的数据布局中,每个条带都会存在一个数据校验块(RAID5),一旦条带中的一个数据块发生故障时,通过校验数据 P 就可以恢复故障数据。假设此时,位于 RAID 之上的文件系统想要 TRIM 一个数据块,这个数据块正好落在 SSD1 的 D 数据块区域。对于这种操作,RAID 需要做什么呢?一个很直观的操作是当 RAID 把 SSD1 上的 D 数据块 TRIM 掉之后,需要更新这个条带中的 P 数据块。原因在于 TRIM 操作之后,SSD1 上的 D 数据块发生了变化,如果想要保证条带数据的一致性,必须更新 P 数据块。条带中一个数据块的 TRIM 操作引发了条带校验数据的更新。这是条带 RAID 中 TRIM 操作的重要代价。

其实,事实远比条带更新更加糟糕。一个 SSD 中的数据块被 TRIM 之后,这个数据块中的数据会变的不确定。例如一个数据块被 TRIM 之后,读取的数据可能和原来一样,也有可能为零。并且随着时间的变化,存储块 TRIM 之后的数据会发生变化。而这完全取决于 SSD 内部固件程序的实现。这种数据的不确定性给 RAID 带来的致命的数据正确性问题。例如,上述案例中 SSD1 中的 D 数据块被 TRIM 之后,根据 TRIM 之后的数据更新 P 校验数据。过一段时间之后 SSD1 中的 D 数据块可能发生了变化,此时整个条带的数据将会处于不一致性状态,对数据的正确性造成影响。

从上述分析来看,RAID 的数据 TRIM 最好以条带为单位,当一个条带中的数据全部可以 TRIM,那么此时才可以对 SSD 发送 TRIM 操作命令。所以,在 RAID 中,TRIM 操作被放大到了条带级别,不再是原来的 Sector 块级别操作了。

但是,通常 RAID 设备暴露给用户仍然是 Sector 级别的块设备对象,文件系统仍然会给 RAID 发送 Sector 级别的 TRIM 操作。对于这种情况,RAID 如何将 Sector 级别的 TRIM 操作转换成条带级别的 TRIM 呢?这就需要 RAID 内部进行 TRIM 的合并,例如通过采用 Bitmap 机制将 TRIM 操作记录下来,当合并到一定程度之后,再对整条带进行 TRIM 操作。这种设计将会造成较大的实现复杂度,并且还有很多的问题需要考虑,例如 Bitmap 占用内存容量,异常掉电等问题。所以,一个优秀的 RAID 数据保护软件,将 TRIM 问题处理好是需要化一番真功夫的,并不是一件很容易的事情。

(来自存储老吴的博客——存储之道)

如何在 Linux 上构建 RAID 10 阵列  http://www.linuxidc.com/Linux/2014-12/110318.htm

Debian 软 RAID 安装笔记 – 使用 mdadm 安装 RAID1 http://www.linuxidc.com/Linux/2013-06/86487.htm

常用 RAID 技术介绍以及示例演示 (多图) http://www.linuxidc.com/Linux/2013-03/81481.htm

Linux 实现最常用的磁盘阵列 – RAID5 http://www.linuxidc.com/Linux/2013-01/77880.htm

RAID0+ 1 和 RAID5 的性能测试结果 http://www.linuxidc.com/Linux/2012-07/65567.htm

Linux 入门教程:磁盘阵列(RAID)http://www.linuxidc.com/Linux/2014-07/104444.htm

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-08/122123.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2154字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7962959
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛 NAS-4:飞牛 NAS 安装 istore 旁路由,家庭网络升级的最佳实践 开始 大家好我是...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...