科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网存储频道百度 vs Facebook:基础架构研发思路分析

百度 vs Facebook:基础架构研发思路分析

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

今天,我要写的是IT基础设施的用户端在数据中心方面的投入的研发。因为作为像Google、Facebook、百度、阿里巴巴这样的互联网企业来说,他们的定位是服务提供商,数据中心的研发则是为了降低IT运维的TCO。

来源:比特网 2013年2月20日

关键字: 百度 Facebook SSD PCIe

  • 评论
  • 分享微博
  • 分享邮件

半年多以前,我曾经撰文一篇《纪录中国——企业存储的自主之路》,讨论的是厂商(供应商)自主研发创新方面的话题;今天,我要写的是IT基础设施的用户端,在数据中心方面的投入的研发。前者比较好理解,只有掌握一定的核心技术才能保证产品的持久竞争力和销路;而作为像Google、Facebook、百度、阿里巴巴这样的互联网企业来说,他们的定位是服务提供商,数据中心的研发则是为了降低IT运维的TCO(总体拥有成本)。

1月11日,微博上的消息使我注意到百度在南京举办的活动。尽管笔者没有亲临现场,但随后也看到了百度云首席架构师林仕鼎的演讲资料——《数据中心计算与变革》,以及来自各方面的言论。强烈的好奇心使我联系了百度,提出自己的疑问并于近日获得正式的书面回答。本文就将这些内容分享出来,希望对大家有帮助。

在去年10月底的“从FB、谷歌到淘宝定制服务器:需求决定采购模式”一文中,我写到:“像Facebook和谷歌,因为服务器采购量比较大,他们自己提出一些设计直接向ODM下单,而不是从惠普、戴尔、IBM这种一线的OEM采购。”近日由Facebook主导的开放计算项目(Open Compute Project)也传来不少新闻,公布了一系列的存储(包括由Fusion-io提供的PCIe闪存加速卡)、主板/服务器、机架和数据中心等方面的参考设计资料。无论是百度还是Facebook,做这些的目的基本相同,但在执行细节、投入产出的形式,以及对整个行业的贡献等方面还是有一定的差别。这也是我们要讨论的一个话题。

在基础架构的研究方面,无论Facebook和百度做出什么选择,适合的就是最好的

本文预计分为上、下两篇,关于ARM服务器云存储、万兆以太网(10GbE)交换机等话题留在后面,请您继续关注。

百度SSD将开放SPEC,欢迎华为在内的硬件供应商

百度 vs Facebook:基础架构研发思路分析

传统SSD与百度SSD的系统架构对比

林仕鼎在介绍百度的SSD(PCIe闪存卡)时表示:“传统的系统架构中,是由一个总的SSD controller来控制下面的Flash存储单元,这样的好处是黑箱化、层次化。但不利之处是SSD往往读取较快,写入较慢,容易形成瓶颈。在百度自主研发的SSD架构中,取消了写缓冲、擦写平衡等复杂逻辑,大幅简化SSD控制器的设计。通过将一个大的SSD划分为N个单元,每个单元都有独立的控制器和存储单元,这些信息和控制接口暴露给上层存储系统(软件)后,形成了多个管道,并行读取、存储效率可以大幅提升。”

上图中,左右两边的架构很容易看出差异。左边是一个SSD控制器连接出多个闪存通道,并向应用程序(系统)提供一个像硬盘那样的块存储设备;而右边则是多个SSD控制器,分别拥有各自的闪存通道,它们向上提供的容量空间,就像在一个盘上的sda0sdaN个分区那样。二者的架构建立在不同的硬件基础上吗?

百度 vs FaceBook:基础架构研发思路分析

这张照片是去年4月,我在IDF2012大会上拍摄的华为PCIe SSD卡,@林仕鼎 曾经在微博上发布的百度SSD图片与它如出一辙,引发了业内人士的广泛猜想。

上图中我们可以看到主卡上有一颗覆盖黑色散热片的芯片,它的作用应该是PCIe Switch(桥接),另外除了层叠在上面的子卡上有Xilinx(赛灵思)的FPGA和闪存芯片之外,主卡上应该也具备同样的单元。估计一共有4个FPGA作为闪存控制器。

不过,在这块卡上方的文字介绍中,有“内置RAID 5保护机制,支持ECC纠错... 采用磨损平衡算法...”等字样。也就是说,百度与华为的SSD在软件(Firmware)的编写上是不同的

另外,这个在今天已经不是华为最新一代的PCIe闪存卡了。在去年7月举行的华为OceanStor T系列统一存储 & Tecal服务器新品发布会上,我们看到了ES3000 PCIe SSD卡(如下图)。

百度 vs FaceBook:基础架构研发思路分析

华为ES3000 PCIe SSD卡

以笔者这些年来的经验来看,ES3000这块卡的PCB空间利用率(容量密度)、整体设计水平比前代产品上了一个台阶。华为表示它同样使用了FPGA方案,另外我也看到了DRAM颗粒和用于缓存保护的电容

华为IT产品线总裁郑叶来这样说:“(SSD)软件的关键还是百度自己做的,我觉得华为要向他们学习软件能力,特别是敢于在架构上创新。”

百度 vs FaceBook:基础架构研发思路分析

其实这张软件架构对比图才是关键。传统SSD(包括PCIe闪存卡)需要给上层文件系统(存储控制器)提供SCSI块设备,因此中间增加了很多“层”,而百度SSD通过位于硬件之上的PCIe driver直接将kernel space提交给轻量级的文件系统(定制?)。因此号称“对比传统PCIe Flash性能提升2倍,成本降低40%;相对SATA SSD性能提升6倍,成本降低10%”。

ChinaByte比特网:关于自主研发的SSD,硬件是否来自国内某家厂商?然后重写(定制)了Firmware?

百度:百度自己开发了对应的FPGA 的逻辑和驱动,与自己的应用相结合。代工做生产。

国内初创的PCIe闪存卡厂商Memblaze忆恒科技联合创始人路向峰曾在去年10月表示:“看来百度打算自己做PCIe SSD了 百度招聘FPGA工程师 硬件计算小组,从事一些互联网IDC方面的新硬件开发和研究,我们做的事情比较有趣,也比较有挑战性。要求做过大规模的逻辑设计,有实际的开发调试经验。熟悉PCIe,DDR2接口,对互联网行业感兴趣,愿意在互联网IDC领域做探索和尝试。”

ChinaByte比特网:闪存的冗余管理等高级特性,完全由上层软件实现,应用场景会有局限,或者说通用性差?可以说百度自己研发的实际上是一个闪存优化的(分布式)专用文件系统吗?

百度:百度对SSD 的软硬件进行了很好的划分,与自己的存储体系是一个优化的协同系统。这个系统虽然面向百度自有的存储特性,但百度的存储特性也代表了很多主流互联网公司的存储特性,具有一定的通用性

点评:上面最后这句话有其道理,不过暂时还没看到百度想把自己使用的SSD向外公开销售。如果卖的话,把产品交给华为还是百度自己来卖呢?百度自主研发的那部分价值如何体现也是一个问题。

华为服务器领域总经理邱隆曾在微博上表达过更多关于百度SSD的观点,我们也就此与百度进行过讨论。得到的回应是:“我们采用了华为的flash卡,华为开放了硬件板卡级别的SPEC,如FPGA的pin(引脚定义)信息,clock(时钟)信息,NAND flash的pin信息等,我们自行根据百度的需求和软硬件架构重新设计了FPGA逻辑、软件驱动和用户态的单机文件系统。”

“华为的第四代卡在百度还没有应用,对于百度定制flash卡的后续规划,我们会开放详细的SPEC,欢迎包括华为在内的硬件供应商按照我们的SPEC进行硬件板卡的设计。”

可以说百度的SSD是在华为PCIe闪存硬件基础上,进行“二次开发”之后的产品。记得笔者去年早些时候曾经与Memblaze总经理殷雪冰讨论过PCIe闪存卡可以按FPGA/ASIC控制器、Native(原生)/ Non-native(非原生)、Host-Based(基于主机)/ Device-Based(基于设备)三种标准来划分。目前的百度SSD属于典型的Non-native Host-Based,而其对应的华为原形产品应该是Non-native Device-Based;那么华为新一代的ES3000 PCIe SSD卡,可能与Memblaze的产品同样归类于Native Device-Based。我们接下来要讨论的Fusion-io则属于FPGA Native Host-Based。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章