本文作者Howard Marks是Networks Are Our Lives公司的首席科学家。这家公司总部位于新泽西州霍博肯,从事顾问工作。1987年以来,他一直专注于系统的分析和写作。
DOSTOR存储在线1月11日国际报道:在我前一篇《专家博客:删除码技术将代替RAID》的文章中我曾讲到,在磁盘硬件发展速度逐渐超越校验码方式所能提供的有效保护水平的前提下,前向错误纠正编码将是代替校验码RAID(独立磁盘冗余阵列)的主要竞争技术。不过这里还有一个问题:里德-所罗门(Reed-Solomon)码以及相关的编码技术是否一定是未来代替RAID系统中校验码的技术。
在这个问题上,我同存储领域的一些行家有一些有趣的对话。我的朋友Stephen Foskett认为高水平删除码已经可以适用于主存储。虽然我认为先进删除码甚至比备份和归档等二级存储中的双校验码还好,不过我对于先进删除码是否可以适用于那些对延迟性敏感的应用程序(比如在线交处理数据库)持保留意见。
我最担心的是先进删除码在处理小型写入的时候所带来的开销以及所导致的延迟性。在任何一个RAID系统上,系统写入行为依赖于数据写入是否大于或小于整个RAID集的条带。对于较大的写入请求–比如备份、视频或其他多媒体应用程序–在X个驱动器上写入大数据块会产生X+N次磁盘I/O,而N这个数字等于新增的ECC(错误检查纠正)块数量。因此,对于RAID 5来说,就是X+1,对于RAID 6来说,就是N+2,而对于里德-所罗门框架来说,比如CleverSafe的10:16方案,就是10+16。
如果被写入的数据量小于X乘以条带大小(通常是4-128KB),那么事情就更复杂了。要写入一个4K的数据库页面,RAID 5系统必须读取X个块,重新计算校验码,然后写入X+1个块。在10:16系统上,系统必须读取10个块,然后写入16个块。此外,存储系统上的处理器还有许多计算工作要做,这个流程会给每个小型写入增加额外的延迟性。
解决这个问题的方法就是将删除码流程前端化并利用"在位写入(write-in-place)"和"自由位置写入(write-in-free-space)"文件系统,比如WAFL(任意位置写入文件布局)、ZFS或Nimble Storage的CASL(高速缓存加速顺序性布局)。这些文件系统会使用日志来最大化全条带大小写入的数量。这些文件系统已经将逻辑数据位置从物理位置中分离出来,因此可以将小型写入合并到一个日志上,而这个日志可以存储在闪存上。这些小型写入可以在合并到全条带大小后写入磁盘。由于这些系统经常在写入快照技术上使用重定位,因此它们也希望留下旧数据以用于快照。
欲想了解更多,请阅读:专家博客:谈谈删除码技术的应用范围(下)