需要raid吗?

我在sina的时候,那时候还比较穷,很少有机器带的有raid卡,于是我就研究怎么在solaris/linux/freebsd下做软raid。你别笑,我们那系统太繁杂了,什么样的OS都有。系统部主任有句名言:“冗余不做,日子甭过;备份不做,十恶不赦。”

后来到了完美,比较有钱,几乎所有机器都是raid1或者raid5+hotspare,连平时不怎么用的内网测试机都是。老兔负责机器采购,他的观点是,硬盘坏了就得歇息,我们开发任务这么紧,让100多号人因为你硬盘坏了歇上半天,你耽误的起吗? 万一明天是情人节,新活动上线呢?难道你等到后天再上?

到了现在这个公司后,我在内网的测试机上装FreeBSD但是发现HBA卡的内置raid功能用不了,没有驱动。然后我就去找黄冬,说以后采购的机器能不能先拿FreeBSD做下硬件兼容性测试?谁知道他的观点很极端,他说以后的机器根本就再也不采购raid卡,内置raid都不要。统统不要。我们组的DBA当时慌了,这以后万一硬盘坏了,还不得半夜爬起来切从库。要知道,不是所有公司都有一套Sina App Engine那样的平台。

最近我在做一个统计系统,准备架在hadoop FS上。由于本身是分布式存储,而且FS自身把每块数据都存了3遍,所以已经有冗余了,raid显然不必要。但是hadoop FS毕竟有其局限型,不能代替ext3,所以我在想,怎么更好的利用越来越宽的网络。现在我们的机房普遍都是千兆网卡,因为大部分应用的硬盘IO都不会达到百MB每秒,所以程序和数据确实没有必要一定在一台机器上(当然在一起更好,节省带宽降低延迟)。而infiniband更是个NB的东西,它会大大的改变我们程序的架构,只是我还没想好怎么用它,在什么场合用,嗯,以及怎么申请买几块来。

Anyway,我以后写的程序,尽量不要raid来提高可用性。

此博客中的热门博文

在windows下使用llvm+clang

少写代码,多读别人写的代码

tensorflow distributed runtime初窥