最近,天才少年、美女博士高薪入职华为的新闻成为社会热点,据悉,其中两位博士入职后的研究方向为新型存储介质(NVM,SMR),数据库和键值存储系统,他们希望尽自己最大能力去做一些有意义的事情。
我们知道, 从边缘到核心再到云中,比数据量更有趣的是数据分析的价值,面对爆发式增长的数据,企业需要实时的决策,实现高效管理,因此对数据中心存储提出新的需求。
从机械盘到闪存SSD,介质的跳跃式发展带来了介质访问速率百倍的提升,对于整个存储系统而言,也需要有针对闪存SSD做端到端的适配性设计。速度意味着效率,全闪存为代表的存储是可以使能或解决过去客户的这些问题。
为什么NVMe SSD在企业存储中难以发挥?
在回答这个问题之前,先回顾一下企业存储,企业存储通常指SAN和NAS存储产品,都诞生于磁盘时代,这意味着存储产品中的技术大多围绕磁盘的特性而构建,或者说由于磁盘的特性,让许多技术并不适应SSD的特点。典型如:RAID、双控与双端口、存储网络等。
RAID技术诞生于磁盘时代,磁盘通过SAS RAID HBA卡与CPU通信,HBA卡的芯片针对RAID算法专门优化,可专用于RAID,不但提高效率,也减轻CPU的负载。但是,NVMe SSD通过PCIe通道与CPU直接通信,NVMe SSD本身就需要占用极大的计算资源,而RAID技术则会加重CPU的负担,同时经典的RAID技术在硬盘故障后的漫长重建时间被用户广为诟病。
双控架构是传统存储的经典架构,通过互为冗余来保证可用性,但双控架构中需要特定物理通路来保证两个控制器都能访问同一块硬盘,而硬盘也必须具有双端口来实现与两个控制器的同时连接,典型如SAS;虽然目前NVMe已经有双端口规范,但仍需大量实践。
传统存储通常需要专用的存储网络,典型如FC,但显然FC没有预料到NVMe SSD发展速度,其带宽很难跟上全闪存储的发展步伐。当然也可以选择其他网络,比如FusionCube 9000中就支持InfiniBand网络,InfiniBand虽然是开放标准,但受众较小。25GbE网络的普及有助于存储发展,不过仍需要时间检验。
华为今年推出了全新一代的华为OceanStor Dorado V6全闪存存储,实现了端到端的NVMe连接,并深入细节打造更贴近用户习惯的全闪存系统。那么,华为Oceanstor Dorado V6全闪存存储是如何做到的?
熟悉的双控,但不同的配方
双控是传统存储的经典架构设计,在存储中高端市场,SAN存储依旧是多数用户的选择。
在双控架构中,要求硬盘具有双端口以同时连接两个控制器。在SAS/SATA时代,有一套成熟的生态。但在NVMe SSD时代,尽管NVMe规范有关于双端口的内容,但生态的完善仍需要时间。这并没有难倒华为,因为华为自己就生产制造SSD。
在NVMe SSD的双端口设计方面,华为自研SSD支持双端口技术,两个PCIe 3.0X2端口独立,互相不影响,为系统修复和异常处理提供了硬件基础,保证了系统双控冗余性,提升系统的可靠性。
在解决了NVMe SSD的双端口支持之后,将其添加到现有的SAN存储中,并不能很好地发挥NVMe SSD的性能。因为不管是SAN存储还是存储控制器的操作系统都是诞生于磁盘时代,其很多特点都是基于磁盘研发的,典型如软件堆栈与接口协议。而NVMe SSD作为一种全新的存储介质,需要操作系统根据NVMe SSD的特点去重新创新并优化。
在操作系统优化层面,值得一提的是,华为最新一代全闪存基于智能芯片和闪存专属操作系统开发了创新的FlashLink智能算法。
为了更快的批处理报表业务,首创采用昇腾310 AI芯片搭载智能缓存算法,基于应用智能学习并统计业务规律,提升读缓存命中率50%,缩短批处理时间40%;为了有效控制垃圾回收对性能的影响,采用了大块顺序写、元数据独立分区和端到端I/O优先级调整的技术手段,基于自研的SSD和闪存操作系统,通过内部软件算法优化,让存储控制器能够实时了解SSD盘内的数据布局,并作出相应调整,使得存储控制器内的数据布局和SSD盘内的数据布局保持一致,控制器内的数据按照SSD盘内所需的格式写入到SSD盘内,有效避免了数据落入SSD盘后的搬迁与垃圾回收,保障了闪存系统的稳定高性能。
端到端NVMe连接 开启性能新时代
在解决了存储内部的问题之后,还需要解决存储系统与前端应用服务器的连接。在传统存储中,通常使用专有的FC连接,当然也有支持以太网连接的存储,但受限于iSCSI协议局限,其性能通常不会太好。
从NVMe规范延伸的NVMe over Fabric(简称NVMe-oF,或NoF)规范定义了如何让NVMe协议在FC和以太网络上进行数据传输。作为NVMe规范的制定者之一,华为率先在OceanStor 存储Dorado系列上实现了全系列端到端NVMe连接。
华为OceanStor 存储Dorado系列凭借NVMe over Fabrics实现SSD资源全共享,同时提供32G FC-NVMe和NVMe Over RDMA组网设计,实现前端网络连接、后端硬盘框连接、scale-out的控制器互联均采用同一种网络协议,其优势是显而易见的。
第一,极大降低了存储时延,极致时延低至几十微秒;
第二,改变以往存储网络管理七国八治的局面,采用1套IP系统管理整个数据中心,避免复杂的网络协议和规划,极大简化了数据中心内的部署和节省维护成本。
第三,相比某些存储厂商仅在高端实现端到端NVMe,华为全系列NVMe的配置可以根据自身的经济状况选择技术领先且商务匹配的产品型号,为用户提供更灵活的选择。
创新RAID-TP技术,全盘参与,为重建提速
最后看看数据保护方面:传统存储使用RAID技术来保证数据安全,RAID并非不好,只是有些特性不太适合SSD,尤其是NVMe SSD。
实际上华为在很早就开始改良RAID技术,比如早些年提出的RAID 2.0技术,通过增加一个虚拟化层(存储虚拟化)来将RAID与具体的硬盘解耦,从而改善RAID重建的数据时间。但在华为OceanStor Dorado V6中使用了创新的RAID-TP技术,其基于Erasure Code(简称EC)算法,将校验位做到支持1、2、3位可调,也就是说在同一个RAID组内,最大可支持3块硬盘同时故障,并保证数据不丢失,业务不中断。
就目前市场的主流的企业存储而言,仅有少数存储产品能够做到同一RAID组内同时容忍3块硬盘故障,但由于采用传统RAID的固定数据盘和热备盘架构,数据重建时热备盘不可能避免将成为性能瓶颈,导致恢复时间过长。而华为OceanStor存储 Dorado系列中基于全局的存储虚拟化,在硬盘故障后,所有正常运行的硬盘都可参与数据重建,在硬盘容量越来越大的今天,极大地提升了数据安全性。
同时,我们也注意到一个细节。众所周知,在传统存储中,硬盘的热插拔是一个成熟且实用的功能,可以大幅减轻运维复杂度。尽管在NVMe规范中也提供热插拔的功能支持,但在具体实现方面,仍存在诸多难题。而华为品牌SSD的市场使得其必须更好地支持热插拔操作。华为存储在PCIe积累多年,具备完善的PCIe链路管理、PCIe异常处理技术、PCIe热插拔技术,并对PCIe驱动做了特殊设计,支持SSD盘在任何时间、以任何方式拔出,并提供端到端的PCIe系统可靠性,保障单盘更换或是发生故障时不扩散,保障系统可靠性。
从2005发布第一代自研SSD盘以来,华为在全闪存技术上的积累上已经超过了14年,如今,华为OceanStor 存储Dorado系列可以称作一个分水岭,融合数据存储和数据处理,从存储技术创新到东西数据发展趋势,华为存储不断缩短数据和决策之间的距离,帮助用户快速获取数据的价值。