以下这段访谈,是今年6月Memblaze “预见NEXT–DCTC2016数据中心技术大会”期间,存储在线总编宋家雨对南大通用CTO武新博士的访谈。距离现在尽管有一段时间了,但访谈中,武新博士对于数据库、大数据应用与闪存技术结合,仍然具有指导和启发意义。
问:NVMe这样的闪存协议对于数据库应用会带来哪些影响?
武新:作为数据库厂商,我们对存储介质非常关注,因为数据库数据最终要落到存储介质上。对于存储介质发展,闪存或固态硬盘技术带来了存储跳跃式的改变,这是我们如今所面临的存储大环境。
针对NVMe,第一生态系统已经建立起来了;第二NVMe是基于标准的,如果没有标准,很难把生态建立起来。南大通用作为数据库厂商,我们的软件是运行在操作系统和硬件设备设备的基础之上的,我们希望建立在标准化平台基础上,可以做一些技术预研准备,所以标准化非常重要。
至于数据库软件针对新的存储介质,如NVMe硬件设备,是否需要做调整?这个回答就是:我们的数据库软件是可以用这些新的存储介质上的,这没有问题,因为这些新的存储介质提供接口,通过操作系统来操控文件系统,这是标准化的。因此,数据库软件可以直接使用新的存储介质,获得新存储介质带来的性能提升。
但是接下来,数据库软件针对新的存储介质进行优化也是非常必要的。如此可以进一步释放硬件的性能和可靠性,以数据库日志文件为例,我们把它放到闪存卡上,我们惊讶地发现,性能反而下降非常厉害。分析其中的原因,日志数据块大小以及写入的机制和闪存介质的协调还存在一定问题,类似这样的问题,还需要数据库厂商和闪存介质厂商的共同努力加以解决。
问:请您详细介绍一下有关数据库日志使用闪存卡的测试情况?
武新:我们知道数据库为了保障数据的一致性和可靠性,对于数据的任何操作,如增、删、修改都会记录在日志文件中。如果交易失败,可以借助日志实现数据的回滚操作。测试中,我们使用8TB日志文件进行测试,文件是4K对齐的,实际上,每个数据块要比4K更小,这个产品20~30年前开发的,那个时候存储系统I/O块的大小和现在大不一样。
测试中,我们的发现块小于4K的时候,对闪存卡性能影响还是很大的,不知道其他厂商是否也发现了类似的问题。对此,一方面修改日志文件数据块的大小,或者针对闪存卡进行优化,从而达到最佳的性能水平。对于关系型数据库而言,日志对交易性数据是最为关键的数据,当数据交易频发时,日志写入的性能将至关重要。
问:我们知道最新的操作系统,如Windows、Linux等都可以支持NVMe,这是不是意味着操作系统层之上的应用软件不需要任何修改,同样可以发挥NVMe软件协议栈优化带来的好处?可以这样理解吗?
武新:可以这样理解。类似闪存卡这样的产品,我们把它像磁盘一样插到服务器里面,系统自动识别,提交给应用来使用。但接下来,应用软件也存在针对硬件优化的空间,进一步把存储介质的能力发挥出来,就像刚才所说的,硬件要靠软件带,而数据库软件则是最重要的软件之一。
问:我们知道南大通用列式数据库在大数据方面的应用的,能否介绍一下闪存对于列式数据库和大数据应用的影响?
武新:这块我们也做了很多测试,说到大数据应用,数据量相对越来越大,我们现在做的项目单个数据仓库已经超过了几个PB,接近10个PB的数据量,所需要使用服务器数量达到200~300台。
在如此大规模数据量下,我们对计算、存储的要求是什么?核心是高密度和高性能,也就是说,尽可能在有效空间里面存储、处理尽可能多数据。闪存技术符合高密度、高性能革新的需求,如今,我们可以看到3.2TB、6.4TB闪存卡和盘,很快会有10TB以上产品出来;高性能方面,闪存在IOPS上实力强劲,这两个因素结合在一起,我觉得非常有价值。
对大数据而言,在有效空间里处理尽可能的数据非常重要,因为数据量不断增大,但我们不可能无限制扩展数据中心,所以闪存介质在这块是非常有优势的。
问:闪存介质稳定性和可靠性可以满足数据库等关键业务应用的需求吗?
武新:这个问题问的非常好,其实从数据库角度来说,大家可能有一些误区,认为第一追求是性能,其实从实际应用角度来说,最重要不是性能,而是整个系统的稳定性和可用性,这个比性能还重要,实际的应用角度来说,性能其实够用就可以了。
实际应用中,很少有性能不够用,果真如此是系统整体架构设计有问题。更多时候,用户需要的是7×24小时,不间断服务的可用性,包括软件、硬件的可用性等等,这点是非常重要的。
回到闪存技术上,这几年在企业级应用中闪存推广不那么快速原因之一,就是他在寿命、稳定性上同比磁盘技术还存在短板,这个问题怎么解决?大家的思路都是一样的,就是做成RAID,用空间来换可用性,就是数据多存储,在一个机箱里面用RAID,跨机箱、节点可以用副本方式,特别是软件定义存储、VSAN等,用空间换取可用性,保障存储节点出现故障时,整个存储层可以继续对外提供服务。
我认为未来肯定要向软件定义存储和分布式存储方式发展,核心交易也应该是这样的,这样才有可能替代现在很高端的SAN存储,这种存在了几十年历史很成熟很稳定的技术。
问:就数据库应用而言,集中式存储和分布式存储应该如何取舍呢?
武新:全阵列阵列还是延续传统磁盘阵列的思路,就是一个集中存储的思路。这种架构是一个垂直扩展的,这是过去三十年来支撑我们核心业务性,但我认为这个架构时代已经过去了。这不是技术问题,而是架构问题。为什么呢?
因为我们已经进入了大数据时代,从用户角度来说,数据量在快速增长,移动端应用越来越多,这意味着所采集的数据一是要实时处理支持交易实现,二来所采集数据量要能够进行分析,唯一可能满足需求技术就是分布式,我认为我们真正进入了分布式的时代,不管是交易型数据库,还是分析型大数据平台都是这样的,其中就包括存储。
数据库解决是计算问题,软件定义存储解决的是分布式的存储问题,我认为大趋势应该是分布式方式。至于全闪存阵列,我认为还是一个比较窄的市场。
问:未来,闪存盘、闪存卡将如何演变?
武新:从用户角度来说,我们还是更喜欢用盘的这种形式,因为从应用角度来说更简洁一些,热插拔,换一个盘不需要把机箱打开,如果操作对象是闪存卡,对于操作,如防静电等都有些要求。同等情况下,盘肯定更实用一些,另外从高密度概念来说,盘也更实用一些。