扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
半年多以前,我曾经撰文一篇《纪录中国——企业存储的自主之路》,讨论的是厂商(供应商)自主研发创新方面的话题;今天,我要写的是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,欢迎华为在内的硬件供应商
传统SSD与百度SSD的系统架构对比
林仕鼎在介绍百度的SSD(PCIe闪存卡)时表示:“传统的系统架构中,是由一个总的SSD controller来控制下面的Flash存储单元,这样的好处是黑箱化、层次化。但不利之处是SSD往往读取较快,写入较慢,容易形成瓶颈。在百度自主研发的SSD架构中,取消了写缓冲、擦写平衡等复杂逻辑,大幅简化SSD控制器的设计。通过将一个大的SSD划分为N个单元,每个单元都有独立的控制器和存储单元,这些信息和控制接口暴露给上层存储系统(软件)后,形成了多个管道,并行读取、存储效率可以大幅提升。”
上图中,左右两边的架构很容易看出差异。左边是一个SSD控制器连接出多个闪存通道,并向应用程序(系统)提供一个像硬盘那样的块存储设备;而右边则是多个SSD控制器,分别拥有各自的闪存通道,它们向上提供的容量空间,就像在一个盘上的sda0~sdaN个分区那样。二者的架构建立在不同的硬件基础上吗?
这张照片是去年4月,我在IDF2012大会上拍摄的华为PCIe SSD卡,@林仕鼎 曾经在微博上发布的百度SSD图片与它如出一辙,引发了业内人士的广泛猜想。
上图中我们可以看到主卡上有一颗覆盖黑色散热片的芯片,它的作用应该是PCIe Switch(桥接),另外除了层叠在上面的子卡上有Xilinx(赛灵思)的FPGA和闪存芯片之外,主卡上应该也具备同样的单元。估计一共有4个FPGA作为闪存控制器。
不过,在这块卡上方的文字介绍中,有“内置RAID 5保护机制,支持ECC纠错... 采用磨损平衡算法...”等字样。也就是说,百度与华为的SSD在软件(Firmware)的编写上是不同的。
另外,这个在今天已经不是华为最新一代的PCIe闪存卡了。在去年7月举行的华为OceanStor T系列统一存储 & Tecal服务器新品发布会上,我们看到了ES3000 PCIe SSD卡(如下图)。
华为ES3000 PCIe SSD卡
以笔者这些年来的经验来看,ES3000这块卡的PCB空间利用率(容量密度)、整体设计水平比前代产品上了一个台阶。华为表示它同样使用了FPGA方案,另外我也看到了DRAM颗粒和用于缓存保护的电容。
华为IT产品线总裁郑叶来这样说:“(SSD)软件的关键还是百度自己做的,我觉得华为要向他们学习软件能力,特别是敢于在架构上创新。”
其实这张软件架构对比图才是关键。传统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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者