光一样的少年|向大数据异构系统的神威并行存储系统( 二 )


2.2高性能计算并发I/O对存储系统的需求高性能计算对存储系统的要求是整体均衡的并发I/O访问 , 因为高性能计算应用有木桶效应 , 整体性能受限于最慢的处理过程 , 所以对于高性能计算中的存储系统而言 , 最重要的是并发I/O调度的均衡 , 第二重要的是性能 , 第三重要的是可靠性 。
由于高性能计算节点规模非常庞大 , 因此常采用多级存储架构 , 并使用资源分区等技术 , 以减少全局共享访问 。 为了应对如此大的规模 , 并发I/O调度需考虑多个因素 , 如资源分区、规模、容错、异常发现等 。 调度算法需要对多条I/O分发通路进行判断和打分 , 以获得最优的均衡性 。
在性能上 , 由于存储与计算之间巨大的鸿沟 , 对于计算来说 , 磁盘访问是相当慢速的 。 提升性能必不可少的措施就是进行数据缓存 , 尤其在大规模的高性能异构计算中 , 提高分布式缓存的有效性和命中率、减少缓存冲突和抖动是关键 。 随着SSD技术的发展 , 在磁盘和内存间增加SSD数据缓存层成为可行方案 , 而且随着近年来非易失性随机访问存储器(non-volatilerandomaccessmemory , NVRAM)技术的发展 , NVRAM也将成为异构系统缓存层次结构中一个重要部分 。 在引入SSD和NVRAM等缓存后 , 缓存数据空间增大 , 但随之而来的是层次多、数据一致性管理复杂等问题 。
可靠性的设计是一个寻找最优解的过程 , 可靠性措施多 , 意味着系统的冗余度更高和处理的复杂度更高 , 会导致成本上升 。 而没有可靠性设计的存储系统 , 对于高性能计算系统来说是一个噩梦 , 会导致应用无法连续、稳定地运行到输出结果的那一刻 。
2.3大数据对并行存储系统的需求在大数据处理系统中 , 最初大数据对存储系统的需求是吞吐量 。 大数据存储系统常见的是基于Google文件系统(GFS)或Hadoop分布式文件系统(Hadoopdistributedfilesystem , HDFS)的 。 GFS最初是为了支持爬行和索引系统而设计的 , 事实上 , 关于这个系统的原始文章非常明确地指出:“高持续带宽比低时延更重要 。 大多数目标应用程序非常重视以高速度批量处理数据 , 很少有应用程序对单个读写有严格的响应时间要求 。 ”
但随后证明 , 事实并非如此 。 GFS的单一主控节点设计对于面向批处理的应用程序来说 , 单点故障可能不是灾难 , 但对于时延敏感的应用程序(如视频服务)来说 , 这是不可接受的 。 为了弥补单点故障问题 , 系统后续增加自动故障转移功能 。 即使这样 , 服务也可能会暂停一分钟 。
BigTable的出现在这方面有所帮助 。 然而 , 事实证明 , BigTable并不完全适合GFS 。 事实上 , 它只是使系统的单一主控节点设计的瓶颈限制比其他情况下的瓶颈限制更加明显 。
由于这些原因 , 谷歌公司的工程师在过去两年的大部分时间里一直致力于开发一个新的分布式主系统 , 该系统旨在充分利用BigTable来解决一些对GFS来说特别困难的问题 。
尽管Hadoop在全世界得到了广泛的应用 , 但自2009年首次引入HDFS以来 , HDFS在很多方面存在缺点 , 如它的可用性和安全性差以及可扩展性限制 。 虽然Hadoop2.0在高可用性方面迈出了一大步 , 但其安全性仍然没有改善 。 公司和个人在存储关键数据(如信用卡号码、密码和其他类型的敏感数据)时 , 系统提供的安全性仍然很差 。
目前大数据处理的基本框架是基于MapReduce模型的 , 其中洗牌(shuffle)阶段是MapReduce的耗时阶段 , 它经常导致网络过载 , 中间数据的传输会影响整个过程 , 进而导致严重的I/O争用 。 这个问题需要从大数据处理的基本框架和存储系统两个方面来协同解决 , 尤其是存储系统 , 怎样更好地支持大数据应用I/O访问模式是未来的研究重点 。


推荐阅读