存储内处理:在存储和处理器间寻找平衡

如果存储免费,你会把它放在哪里?答案显然是:“尽量离处理器更近的地方”。

不过如果你讨论的是大数据,那么问题则稍微有些不同:如果所有的处理都是免费的,你会把它放在哪里?答案是“尽量靠近存储的地方”。

这差不多就是存储内处理在大数据情境下所试图做的事情。这种技术不是试图将TB级从存储系统迁移到处理器,而是在存储控制器内的处理器上运行应用程序。

当然,处理能力实际上并不是完全免费的,不过它的价格已经大幅下滑。此外,存储系统也有不再需要专门ASIC(专用集成电路)的趋势。存储软件运行在传统的行业标准的服务器上。这些服务器有非常强大的处理器,能力远不止运行存储软件。

企业策略集团(ESG)高级分析师Mark Peters表示:“存储厂商现在越来越多说的是他们的存储服务器有空闲的处理能力。”显然应该将这些处理能力用在存储以外的事情上——比如运行存储系统内部的应用程序。他表示:“我认为存储厂商是很实际的,他们在建议更加充分地利用处理资源。”

谨慎的做法是在存储服务器内部运行有限数量的虚拟机,并允许这些虚拟机运行合适的应用程序。这带来了一个问题:哪些应用程序最适合用这种方式运行?

根据大数据存储厂商DataDirect Networks营销副总裁Jeff Denworth的说法,相对简单的应用程序最好。DataDirect已经在它的存储系统内提供存储内处理能力。Denworth解释道:“这个环境下最好的应用程序是那些运行预处理或后处理算法、分析数据、筛选数据或应用元数据的应用程序。不过你必须记住的是它不能代替超级计算机,因为存储系统内部并没有很高的处理能力。”

这些应用程序还必须运行在得到存储内虚拟机管理器支持的操作系统上——典型的是Linux或Windows。(DDN的系统使用修改后的KVM虚拟化系统来承载虚拟机,同时I/O基础设施也被修改为用一组记忆体指针来呈现应用程序)显然这些应用程序不能依赖于GPU加速,因为存储设备内没有强大的图形子系统。

存储内处理举例

实际上,预处理和后处理算法是大数据环境中典型的需要的应用程序。

例如,射电天文学研究国际中心(ICRAR)的Square Kilometre Array望远镜每天都要产生100万TB数据。这是非常可观的数据量,但是只有一小部分是有意义并需要保留的——其他的是没用的可以抛弃的“噪音”。问题是如何分析这种数据并过滤出噪音。为了做到这一点,ICRAR在DDN存储系统上存储进入的数据,并在存储系统内置的虚拟机上运行数据缩减算法,使用存储系统的处理资源。

在美国能源部,超级计算机在运行天气模拟和其他数学模型的时候要产生数十PB的裸数据。这些数据以每秒100GB的速度进入存储系统。能源部科学数据管理SciDAC技术中心的存储研究院Rob Ross博士表示在存储系统上分析数据的好处是可以减少成本并提高速度。

他表示:“你一开始将数据从存储迁移到计算机的速度是有限制的。”绕过这个网络因素可以减少将数据从一个主机总线适配器迁移到交换机并进一步迁移到服务器进行处理所带来的开销,同时由于减少了跳转,延迟时间也更低。应用程序可以运行在与存储系统高速缓存一样的记忆体地址空间中。

Ross表示:“原来的做法会在迁移数据的时候带来网络的成本以及等待数据被迁移的成本。现在进行存储内处理是更加聪明的做法。”

即将起飞

存储内处理这个技术实际上已经存在一段时间了——DDN早在2009年就将这技术引入到它的存储设备中——不过这个技术还没什么大的影响。比如,Denworth表示只有10%的DDN客户目前在使用这个技术。

造成这种情况的原因之一可能是因为大厂商不太情愿引入这个技术。ESG的Mark Peters解释道:“所有推出存储内处理技术的公司都是小一些的公司。”除了DDN外,其他公司还包括Pivot3和Scale Computing。他表示:“我不认为大公司希望用户了解到他们的存储可能是运行在标准的X86服务器上。”

不过,现在大数据还只是刚刚崭露头角,随着大规模数据仓库在企业中越来越流行,越来越多的厂商可能会拥抱这个技术。当然这只是ESG的Mark Peters的说法:“我认为,未来在存储系统内执行处理任务将肯定会更加流行。”