IP

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




好久不见了,弯曲评论。首席表示他很思念我,并且当头棒喝让我写点文章。哎,首席,并非我不想写,而是心有余力不足,该吐的吐了,该吃的还没消化,我一直认为好文章和好书,都是人生前进路上的排泄物。为何叫做排泄物?因为只有痛痛快快排泄出来的东西,才是精华,如果一个作者在写作的时候,是刹不住的文如泉涌,那出来的东西多半是精品,而不是那种为了排泄而强行排泄。前期排泄了一次,算是一个命题排泄,质量不咋地,各位将就享用并评论,后续会有新文出来。多谢!

 

很久之前,我记得那大概是在2005年,听说过国外一家初创公司做了一种以太网口的硬盘,当然硬盘本身不是他们做的,他们只是在硬盘上加上一个转接板,专业说法叫做Dongle,实现基于以太网的SCSI协议传输,至于协议是否使用的就是iSCSI无从而知,对其具体细节也很不了解。当时存储技术在国内还没有怎么得到普及,所以感觉这种东西非常新鲜,竟然可以这么玩!当然,这东西最后终究没成气候,逐渐淡出了业界。那时候,ATAoE,SCSIoE这种类似协议也一直有人在做,其目的就是抛弃TCPIP这种厚重的传输协议而转为为一种轻量级的适配到以太网的协议。但是目前来看,这类协议最终也没得到推广。

 

8年过去了,这8年里发生了很多事情。首先,企业级存储系统在国内得到了铺天盖地的应用,从一开始曲高和寡到现在的遍地开花,各厂商的企业级存储系统产品在这期间至少经历了4次升级换代,高端产品则经历了2次。其次,在业务层面,主机虚拟化的崛起,以及基于虚拟化之上的云计算架构的崛起,以及互联网后端架构的变迁,海量存储和大数据分析挖掘系统的广泛应用,这三大变革性事件对很多存储技术、产品、厂商及生态产生了重大影响。再次,底层技术的革新,固态存储技术崛起,2012年应该算是一个固态元年。业务和底层技术的变革,驱动着企业级存储做出一轮又一轮的变化,一开始是内部架构的变化,比如Scale-Up到Scale-Out,然后就是访问协议的变化,除了块和文件,对象接口越来越被广泛使用,再就是数据管理上的变化,企业级存储其实对固态存储介质可谓是爱恨交织,明知道这小东西一定会颠覆自己苦心建立的基于机械盘的生态系统,但又不能迎合潮流,出现了各种数据分层分级方案和技术,以及所谓全固态存储系统。如果说在这8年里的前4年,企业级存储算是慢慢悠悠的自我欣赏的发展,那么后4年基本是在小步快跑了,一下子爆发的众多变化,都发生在后4年里,企业级存储显得应接不暇,不知所措,云计算、大数据、固态存储、开源、软件定义,各方围剿,使得商用企业存储好像找不到出路,各个厂商绞尽脑汁规划下一代产品到底应该是个什么样子,以及整体战略需要怎么调整。

 

就在2年前,国内某存储厂商为应对海量低成本存储场景,设计了一套与2005年时候国外那个厂商类似的方案,也就是在每块磁盘驱动器上前置一个Dongle,其基于ARM处理器,这个Dongle相当于一个Mini Storage Controller,功能方面,其在硬件层后端通过集成的SAS/SATA控制器访问并管理这块盘,前端则通过以太网口来传输封装之后的访问协议比如Object对象访问协议,核心软件层是一个精简的Linux内核,包含SAS/SATA Host驱动、以太网设备驱动、块设备驱动、卷管理层、对象/文件管理层、对象访问协议、TCPIP协议层以及管理监控Agent等。也就是说,将一块传统的以Block形式访问的磁盘通过加一个转接板,变为了一块以对象Object形式访问的磁盘,如果向其软件层加入更多协议,那么还可以变为iSCSI Target,NFS/CIFS Export,当然一切实际上都受限于ARM的性能。每块对象盘连接到以太网上,再通过一个或者多个冗余/AA的总控服务器来管理这些磁盘,并通过这个总控服务器集群向外提供空间和服务。

 

也就在最近几天,希捷与这家存储厂商联合推出了被命名为Kinetic的硬盘,宣称其直接提供对象访问接口,并向应用提供API以调用进行数据访问和监控管理。这个产品相当于把之前的转接板去掉,把核心软件直接跑在硬盘背面的控制芯片里。处理芯片的一般架构是一个或者多个ARM/MIPS core与一堆外围电路比如XOR、ECC/CRC、加密、压缩、PHY等组成,而ARM/MIPS Core平时不参与数据的传输,只是控制数据的传输,否则会由于为数过多的内存拷贝而性能根本达不到要求,所以一般来讲一款处理芯片中的通用CPU模块,绝大多数时间负载并不高,这也就为在处理芯片中集成更多的软件功能提供了技术空间。但是别指望这种低功耗CPU能胜任事务级在线处理,跑跑一般的数据收发,简单的协议处理还是可以的,也别指望其能胜任高IOPS的场景,每一个IO处理耗费的CPU资源是不容小觑的,包括中断、协议处理、内存拷贝等在内的流程对CPU周期耗费很大。但是低负载、以带宽吞吐量大块连续IO为主的场景下,这类处理器能够很好的胜任,尤其是在只带一块磁盘的情况下,那就更是小菜一碟了。所以这种产品的基因决定了它的应用场景,也就是比如冷数据存储场景,或者备份等海量低成本存储场景。

 

综上,我们暂且简称这种硬盘为“IP硬盘”或者“对象硬盘”。其与传统的存储架构本质区别在于,传统存储控制器属于集中式控制器,用一台或者多台集中式的高性能控制器,通过SAS/SATA适配器接入为数有限的磁盘,最小的比如Raid卡,比如Adaptec公司最新的产品可直连24盘或者通过扩展柜连接256盘,最大的比如高端商用企业存储,可以管理多达3000多块盘,前端终结了SAS协议,转为使用FC或者iSCSI、NAS或者对象等协议,通过集中的单一的访问点来访问所有磁盘经过虚拟之后的空间。而Kinetic的架构则属于分布式微型控制器,有多少磁盘就有多少个访问点。说到这里我们就要仔细的去分析一下,这种新架构带来的优点和挑战在哪里。毋庸置疑,其优点是支持大规模并行访问,因为访问点是分布式的,有多少磁盘就有多少访问点,那么应用或者客户端程序可以直接并行的访问所有连接到以太网上的磁盘,体系效率较高。当然,其代价就是访问节点的管理上,需要被软件定义。对于集中式的磁盘控制器,对磁盘的管理,比如监控、容错、性能优化、空间管理等,都有集中控制负责,上层不需要关心,而新架构下,直接暴露了底层的磁盘,那么这些逻辑就需要被挪到上层软件层中去执行,也就是所谓软件定义,那就需要用户具有一定的技术开发能力去驾驭这个新架构,或者由厂商做这一层的开发,但是相对于在外部设备里开发这一层来讲,在用户的OS里做这个管理层,其主要难度在于兼容性,用户的OS千变万化,环境千变万化,兼容性很难保证。所以这类产品应用到互联网后端的可能性较大,一般企业会吃不消对其日常维护的开销。那么再看一下互联网企业,假设,如果依然利用现有架构,比如1U通用服务器,加一个SAS/SATA Raid/HBA适配器,接入12/16/24盘,然后在服务器上进行空间管理、协议转换,底层Raid控制器实现数据的小范围冗余容错及性能优化,在所有服务器上运行分布式文件系统来执行数据的大范围容错和均衡,这样做的好处是对上层来讲复杂度降低。同样是1U服务器,如果访问Kinetic架构,SAS/SATA Raid/HBA不需要了,直接通过以太网,那么原本由SAS Raid卡做的工作,就需要被挪到软件里去做,需要用户自己或者厂商开发一层逻辑,而且这层逻辑要么是分布式部署的,要么是非对称集中式部署在一个带外控制管理节点上的,这种做法思想基本上就是将磁盘进行非对称带外集群化,供上层的服务器集群访问。如果使用1Gb以太网连接每块磁盘,其带宽相对目前主流的6Gb SAS/SATA来讲会降低,时延也会增加。

 

结论,不管是对于互联网企业还是传统企业,一个集中控制设备或者软件层都是需要的。Kinetic架构的优势在于,降低了访问粒度,提升了大范围内的访问并行度,其劣势在于,性能域扩大,管理域也随之扩大,故障域也随之增大,传统1Gb以太网带宽和响应速度有限,对于冷数据这类场景,传统架构在性能、成本、管理上是否已经真的无法满足需求?是否有必要去这样折腾,还是个需要考虑的问题。

 

(4个打分, 平均:4.00 / 5)

雁过留声

“IP”有5个回复

  1. hh 于 2014-02-18 6:15 下午

    每块硬盘单独IP的话,RAID怎么搞?

  2. 冬瓜头 于 2014-02-18 6:44 下午

    上层软件来搞,一般是存2-3副本,容量太大的话都在搞erasure code,分布式RaidxP,x=1,2,3,4….

  3. oniziga 于 2014-02-18 8:30 下午

    硬盘还是要接在linux机器上吧?如果不是的话,不是还得弄个交换机连一块一块的硬盘?
    传统架构下,磁盘接在linux机器上,格式化,然后在上层软件上对这些盘管理,用于数据块分配等,关键还在于上层软件啊,那这种以太网的磁盘的优势在哪里?

  4. hh 于 2014-02-18 9:32 下午

    比如100块硬盘,这个网络怎么设计?

  5. 倚楼听风雨 于 2014-02-20 11:03 下午

    难道冬瓜头当年在某司搞的就是这个?