使用英特尔® 智能存储加速库优化存储解决方案

随着越来越多的设备连接到云/互联网,出现了各种不同的源(包括智能手机、平板电脑和物联网设备)生成数据。 存储需求逐年攀升。  英特尔® 至强™ 处理器产品家族和英特尔® 智能存储库(英特尔® ISA-L)的结合为可发人员提供了安全、快速处理数据,甚至降低存储空间需求的工具。

在中国,英特尔与奇虎 360 科技有限公司合作将英特尔 ISA-L 集成至其存储解决方案。 这使得其性能提升了 10 倍,存储空间需求降低了 2/3。 阅读案例研究

英特尔® ISA-L 可帮助加速和优化任何设备(从小型的办公 NAS 设备到企业级存储系统)上基于英特尔® 架构 (IA) 的存储。   本库中提供的函数可在存储可恢复性、数据完整性、数据安全性提供帮助,并可加速数据压缩机制。  本文从较高的层面对英特尔 ISA-L 的函数进行了概述。

英特尔 ISA-L 在存储应用中使用了以下函数:

  1. RAID (廉价冗余磁盘阵列)函数 支持速度更快的奇偶校验计算,以便 RAID 提供商使用。  RAID 函数可在 XOR 和 P+Q 奇偶校验位上计算和操作。 RAID 算法基于 Galois 有限域运算,可为 N 个资源中的每个字节查找 1 个或 2 个奇偶校验位,这样便可纠正单或双磁盘故障(一次或两次擦除)。
     
  2. 擦除代码 (EC) 函数支持将对象划分为较小的片段,将这些片段存储在不同的位置,以任意方式对少数几个片段进行组合重新生成数据。  这些 EC 函数可为数据块部署通用的 Reed-Solomon 编码,以防擦除所有数据块。 单独的操作可根据 Galois 有限域中的运算 GF(28) 和特定的域定义基元或递减多项式 x8+ x4+ x3+ x2+1 (0x1d) 来描述。
     
  3. CRC (循环冗余检查)函数允许系统在传输过程中检查原始数据的意外变更。  接收程序可以要求传输程序再次发送程序包直至 CRC 匹配。 CRC 部分的函数是使用 IA 特定指令(如 PCLMULQDQ、Carry-Less 乘法)对循环冗余检查进行的快速部署。
     
  4. 多缓冲散列 (MbH) 函数 可提供 加密散列函数,以便使用 IA 的功能。  英特尔 ISA-L 支持 MD5SHA1SHA256SHA512。 这些 MbH 函数支持同时操作多个作业,从而能够提高单个处理器核心上安全散列算法的性能。 通过缓冲作业,该算法可以利用现代 IA 核心内在的指令级并行性,这在串行实施中是无法实现的。
     
  5. 加密函数通过使用英特尔® AES-NI 指令集可以提高加密速度。
     
  6. 压缩函数 可提供快速、与 DEFLATE 兼容的压缩例程。 DEFLATE 是一款使用广泛的二进制压缩标准,是 zlib、gzip 和 zip 的基础。 英特尔 ISA-L 压缩实施的写入速度比 zlib-1 快,仅在压缩比率上稍低。 这非常适合高吞吐量的存储应用。

根据平台功能,英特尔 ISA-L 可以在多种英特尔® 处理器产品家族上运行。  通过使用以下指令集可以提高计算速度,从而提高性能:

英特尔® ISA-L 还包括设备测试、性能测试和使用 C 编写的示例,这可以用作使用示例。

其他开发信息:

  • 该库支持多代英特尔® 处理器,因为对于一些函数,它可以提供多个二进制版本,以便开发人员将其编译为单独的二进制,根据使用中的处理器进行检查和优化。 或者,开发人员可以只调用一个版本以降低代码尺寸。
  • 大部分函数在库中的调用函数是 C 绑定。 我们将单独函数编写为以静态或动态的方式与应用相连。
  • 如要构建英特尔 ISA-L 函数,请使用 Yasm* Assembler 版本 v1.2.0 或更高版本。
  • 一些英特尔 ISA-L 函数需要使用输入参数,以便在 16B 或 32B 边界上对齐。

参阅英特尔 ISA-L API 参数手册,了解更多信息。

对于想要使用英特尔 ISA-L 的开发人员,可以从 01.org 获取开源版本(仅限擦除代码函数)。


如要访问全套英特尔® 存储加速库函数,请填写并提交此申请表。 我们将以最快的速度回复您的查询!

其他相关链接与资源:

英特尔® 存储加速库(开源版本)

擦除代码和英特尔® 智能存储加速库

面向存储的采用擦除代码的 Swift*

英特尔与奇虎 360 互联网门户数据中心 — 大数据存储优化案例研究

声明

本文件中包含关于英特尔产品的信息。 本文件不构成对任何知识产权的授权,包括明示的、暗示的,也无论是基于禁止反言的原则或其他。 除英特尔产品销售的条款和条件规定的责任外,英特尔不承担任何其他责任。英特尔在此作出免责声明:本文件不构成英特尔关于其产品的使用和/或销售的任何明示或暗示的保证,包括不就其产品的(i)对某一特定用途的适用性、(ii)适销性以及(iii)对任何专利、版权或其他知识产权的侵害的承担任何责任或作出任何担保。

“关键业务应用”是指当英特尔产品发生故障时,可能会直接或间接地造成人员伤害或死亡的应用。 如果您针对此类关键业务应用购买或使用英特尔产品,您应当对英特尔进行赔偿,保证因使用此类关键业务应用而造成的产品责任、人员伤害或死亡索赔中直接或间接发生的所有索赔成本、损坏、费用以及合理的律师费不会对英特尔及其子公司、分包商和分支机构,以及相关的董事、管理人员和员工造成损害,无论英特尔及其分包商在英特尔产品或其任何部件的设计、制造或警示环节是否出现疏忽大意的情况。

英特尔有权随时更改产品的规格和描述而毋需发出通知。 设计者不应信赖任何英特产品所不具有的特性,设计者亦不应信赖任何标有“保留权利”或“未定义”说明或特性描述。 对此,英特尔保留将来对其进行定义的权利,同时,英特尔不应为因其日后更改该等说明或特性描述而产生的冲突和不相容承担任何责任。 此处提供的信息可随时改变而毋需通知。 请勿根据本文件提供的信息完成一项产品设计。

本文件所描述的产品可能包含使其与宣称的规格不符的设计缺陷或失误。 这些缺陷或失误已收录于勘误表中,可索取获得。

订购产品前,请联系当地英特尔销售处或分销商了解最新技术规范。
如欲获得本文涉及的带编号的文档副本或其它英特尔文献,可致电 1-800-548-4725,或访问:  http://www.intel.com/design/literature.htm

英特尔、Intel 标识、VTune、Cilk 和至强融核是英特尔公司在美国和其他国家(地区)的商标。

*其他的名称和品牌可能是其他所有者的资产。

英特尔公司 © 2012 年版权所有。 所有权保留。

在性能检测过程中涉及的软件及其性能只有在英特尔微处理器的架构下方能得到优化。 诸如 SYSmark 和 MobileMark 等性能测试均系基于使用特定计算机系统、组件、软件、操作系统及功能。 上述任何要素的变动都有可能导致测试结果的变化。 请参考其他信息及性能测试(包括结合其他产品使用时的运行性能)以对目标产品进行全面评估。

该示例源代码根据英特尔示例源代码许可协议发布

 

优化声明

英特尔的编译器针对非英特尔微处理器的优化程度可能与英特尔微处理器相同(或不同)。  这些优化包括 SSE2,SSE3 和 SSSE3 指令集以及其它优化。  对于在非英特尔制造的微处理器上进行的优化,英特尔不对相应的可用性、功能或有效性提供担保。

此产品中依赖于处理器的优化仅适用于英特尔微处理器。  某些不是专门面向英特尔微体系结构的优化保留专供英特尔微处理器使用。  请参阅相应的产品用户和参考指南,以了解关于本通知涉及的特定指令集的更多信息。

通知版本 #20110804

 

 

有关编译器优化的更完整信息,请参阅优化通知