应用AI芯片加速 Hadoop 3.0 纠删码的计算性能

做为大数据生态系统中最重要的底层存储文件系统HDFS,为了保证系统的可靠性,HDFS通过多副本的冗余来防止数据的丢失。通常,HDFS中每一份数据都设置两个副本,这也使得存储利用率仅为1/3,每TB数据都需要占用3TB的存储空间。随着数据量的增长,复制的代价也变得越来越明显:传统的3份复制相当于增加了200%的存储开销,给存储空间和网络带宽带来了很大的压力。因此,在保证可靠性的前提下如何提高存储利用率已成为当前HDFS应用的主要问题之一。

针对这些问题,英特尔、Cloudera、华为以及其他的Apache Hadoop communit共同参与开始引入纠删码(Erasure Coding,EC)技术,在保证数据可靠性的同时大幅降低存储开销,节省2倍的存储空间。该feature计划在Hadoop3.0版本发布。

什么是纠删码 EC

Erasure coding纠删码技术简称EC,是一种数据保护技术。最早用于通信行业中数据传输中的数据恢复,是一种编码容错技术。他通过在原始数据中加入新的校验数据,使得各个部分的数据产生关联性。在一定范围的数据出错情况下,通过纠删码技术都可以进行恢复。

在存储系统中,纠删码技术主要是通过利用纠删码算法将原始的数据进行编码得到校验,并将数据和校验一并存储起来,以达到容错的目的。其基本思想是将k块原始的数据元素通过一定的编码计算,得到m块校验元素。对于这k+m块元素,当其中任意的m块元素出错(包括数据和校验出错),均可以通过对应的重构算法恢复出原来的k块数据。生成校验的过程被成为编码(encoding),恢复丢失数据块的过程被称为解码(decoding)。

Reed-Solomon(RS)码是存储系统较为常用的一种纠删码,它有两个参数k和m,记为RS(k,m)。如图1所示,k个数据块组成一个向量被乘上一个生成矩阵(Generator Matrix)GT从而得到一个码字(codeword)向量,该向量由k个数据块和m个校验块构成。如果一个数据块丢失,可以用(GT)-1乘以码字向量来恢复出丢失的数据块。RS(k,m)最多可容忍m个块(包括数据块和校验块)丢失。

TPU

TPU是Google为TensorFlow定制化的AI加速芯片。这个TPU芯片是面向datacenter inference应用。它的核心是由65,536个8-bit MAC组成的矩阵乘法单元(matrix multiply unit),峰值可以达到92 TeraOps/second (TOPS) 。有一个很大的片上存储器,一共28 MiB。它可以支持MLP,CNN和LSTM这些常见的NN网络,并且支持TensorFLow框架。摘要里面还可以看出,传统CPU和GPU使用的技术(caches, out-of-order execution, multithreading, multiprocessing, prefetching)它都没用,原因是它面向的应用都是deterministic execution model,这也是它可以实现高效的原因。它的平均性能(TOPS)可以达到CPU和GPU的15到30倍,能耗效率(TOPS/W)能到30到80倍。如果使用GPU的DDR5 memory,这两个数值可以达到大约GPU的70倍和CPU的200倍。

TPU

前景分析

由于HDFS的内部逻辑已然十分复杂,社区对于HDFS EC码的改造需要分几个步奏来实现:

  1. 用户可以读和写一个条形布局(Striping Layout)的文件;如果该文件的一个块丢失,后台能够检查出并恢复;如果在读的过程中发现数据丢失,能够立即解码出丢失的数据从而不影响读操作。
  2. 支持将一个多备份模式(HDFS原有模式)的文件转换成连续布局(Contiguous Layout),以及从连续布局转换成多备份模式。
  3. 编解码器将作为插件,用户可指定文件所使用的编解码器。

编码器可以作为独立的插件,从而可以将使用AI加速硬件的编码器作为独立的插件,分发到有GPU或TPU硬件资源的集群中。特别是Hadoop 3.0的yarn组件目前也在也k8s深度整合,做一些GPU硬件资源的调度和管理。

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
应用AI芯片加速 Hadoop 3.0 纠删码的计算性能
在保证可靠性的前提下如何提高存储利用率已成为当前 DFS 应用的主要问题之一。
<<上一篇
下一篇>>