Chinaunix首页 | 论坛 | 博客
  • 博客访问: 40611
  • 博文数量: 13
  • 博客积分: 1450
  • 博客等级: 上尉
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-05 20:27
文章分类

全部博文(13)

文章存档

2009年(13)

我的朋友
最近访客

分类: 服务器与存储

2009-03-23 14:39:36

现在山寨很流行,从山寨手机,山寨笔记本,到山寨汽车,山寨春晚,甚至银行都有山寨版的。为了紧跟时代潮流,我们也打算自己搞一个山寨版的存储,我们起了一个好听的名字叫“高性能廉价存储”。

为什么要搞山寨存储,其实是被逼无奈的选择。目前存储基本上被国外厂商垄断,尤其是高端的存储,基本都是EMC,HDS,IBM,HP的天下。国内我知道华三有一些低端的IP SAN的产品,现在华赛也有一些中低端的存储设备,但是尚不足以与国外巨头抗衡。由于国内尚没有厂商与之竞争,所以这些存储价格很高。而且这些高端的设备不光初次购买的价格昂贵,而且维护费用很高,比如我们的使用的小型机和存储,当你使用了一段时间后想升级的时候,你会发现升级和维护的费用和再买一台新的设备差不多,而且厂家往往还会告诉你,原来的型号已经不生产了,建议你买新的型号。比如我们的小型机想升级内存,厂家说现在新生产的内存和以前不兼容,如果要升级,以前的内存必须要全部废掉,我们没办法,只好又新买了一套设备。还有设备使用了一段时间想要续保的时候,我们发现购买服务的价格和再买一套新设备差不多。这个时候,我们发现自己被厂家绑架了。

我们曾经测试过用8台PC Server+SAS本地磁盘+greenplum数据库搭建了一个山寨版的数据仓库系统,发现效果比小型机+高端存储+Oracle RAC的效果还要好(具体可以看我以前写的blog),这个测试给我们很大的启发,我们是不是也可以用廉价的PC server堆叠出一个存储系统呢。

我们之所以能够自己搞山寨存储,基于以下几点:第一点,SAS盘的性能已经足够好,而且比FC盘要便宜很多。第二点,我们可以和PC服务器厂商合作,定制一种服务器,用来作存储的节点,比如浪潮提供给我们的一款机器可以挂16个SAS盘,价格很低廉。第三点,利用iSCSI,通过iSCSI我们可以将多台PC server整合为一个大的存储系统。

我们的山寨存储由存储节点和控制节点组成,存储节点的作用主要是提供存储能力,所以要求能够挂比较多的磁盘,但不需要太强的处理能力,内存可以为控制节点提供Cache(就好象存储的Cache一样),存储节点通过iSCSI输出给控制节点。控制节点的作用是整合所有存储节点输出的磁盘,有点类似存储的控制器一样,RAID在控制节点上实现,并跨在每个存储节点上,防止存储节点的单点故障,这里的RAID实际上是软件RAID,而不是硬件RAID。控制节点需要一定的处理能力,内存同样可以为上层节点提供cache的功能。所有的LUN通过控制节点整合后,就可以输出给外部主机了,根据应用的不同,可以支持三种方式:FC,iSCSI和NFS,其中NFS可以用来作备份,iSCS可以输出给对性能要求比较高的应用,比如数据库,如果原来已经有SAN的环境,还可以选择FC方式的方式输出,这样对主机来说,就和一个存储完全没有区别了。在主机端还可以用LVM,或者用Oracle ASM再次对输出的LUN进行整合后使用。这套山寨存储就好像是套积木,你可以用他来搭建出各种各样的房子。由于目前还处在“研究”阶段,所以太细节的东西现在还不便透露。

性能:由于每个节点都提供cache的功能,即利用了PC server上的内存,又大大提升了性能,经过我们的初步测试,IOPS和throughput还是比较理想的,符合我们的期望,我们也没指望拿它和DMX去比,一些对性能要求不高的应用场景是可以使用的。

性价比:有人说你这样搞说不定比买存储要贵,至少比那种没有控制节点的磁盘柜要贵,人家那种只有磁盘,我们这个是拿PC Server堆叠的,而且PC Server的处理能力是不是就完全浪费了。其实这些问题我们都有考虑,现在PC Server价格很低,而且我们可以和厂商合作定制服务器,比如存储节点我们可以定制带很多盘的PC Server,但是不太需要很强的处理能力,内存基本上都可以用来提供cache,所以并没有浪费,而且我们可以选浪潮,华为等国产设备,避免被国外厂商绑架。

好处:可堆叠,这是最大的好处,随时都可以添加存储节点来实现扩容的目的,这样旧的设备就不需要被替换掉,可以最大限度的节省硬件投资。比如在一些对性能要求不高的场景,比如图片存储,文件服务器等,完全可以用PC Server堆叠出容量很大的一个存储。

待改善:现在的系统是纯山寨,基本上都是拿来主义,还需要不断的测试和完善。稳定性和可靠性还需要进一步加强,比如某块盘坏掉或者某个节点坏掉对整个系统的影响。这个东西还没有经过实践的检验,还需要通过各种应用来检测,比如我们的Oracle数据库的应用。

有人说让专业的厂商做专业的事情,这不是我们应该做的事情,因为我们不专业。但是你知道吗?Google最早的服务器就是自己做的,比我们的还山寨呢。山寨这个词并不一定是贬义词,它更深次的含义是:用廉价的设备堆叠出一个处理能力很强的庞大系统,这个思路是我们以后发展的方向。也许某天,我们的山寨存储经过包装,也可以作为一个产品来销售,那时候它就不再是山寨货了。

–EOF–

阅读(447) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~