最近和一个客户IT部门讨论项目设计方案,遇到了一件挺有意思的事情。
客户IT部门来了几个人,一个负责整体运维的,是个性格直爽,行事果断的年轻人;一个负责OS的专家,是个有点年纪的老师,看上去得有50左右;应用部门也来了几个年轻人,都是做开发的小同学。
实施方案讨论的不太顺利,主要是在全冗余部分,应用部门要求“双活”。
“双活”简单地说,就是要在“多路径”基础上,实现主-备系统数据同时写入。对于这个方案,我请教过几个做容载和数据保护的专业人士,大家比较一致的观点是,从基础架构入手解决,比较复杂;最好从应用角度实现,比如用web server的cluster或者data cache。
但这个用户的应用软件显然还没有考虑这些的解决方案,他们只能要求从底层架构上解决。预算又有限,没法使用存储级别的方案。这时候,Linux老师就提出来,最新的linux kernal提供了软RAID功能,可以一试。
就是这个方案,引发了一场争论。
这个方案的思路是,在一个VM虚机中,使用两个虚拟磁盘,放置在不同的存储阵列中,用Linux的soft raid功能,把内核和启动文件,同时写入到虚拟磁盘里,这样在应用系统工作的时候,就保证了数据有双份,任何一块盘的损坏,都不会引起数据丢失。
但对这个方案,我的担心是RAID技术本身比较复杂,虽然这个soft raid用的只是简单的RAID1,不需要数据校验,但以前跟各种RAID打交道的经验告诉我,这么做比较有风险,因为RAID1对数据的一致性还是很敏感的,在保证数据同步上,需要软件功能比较完善;另外,此次做的RAID1其实是用软件功能,模拟底层硬件的RAID功能,跟linux LVM是完全两回事,系统自身也是需要同步的,里面出问题的环节比较多。
IT负责人跟我的观点比较接近,在生产系统这么尝试,他要面临更大的风险,何况这种新技术基本没有成功案例可以参照,虽然很多问题,从工作机制工作原理,到恢复原理,Linux专家都给出了分析和解释,理论上都没有问题,但最终这个方案还是被否了。
事后,我经常回想起当时争论的场面,我们两个年幼一些的“后浪”,似乎在扮演着“保守”的角色,首先对Linux的新技术,我们没有“前浪”的敏感,其次对于不了解的技术,我们的本能是“过分谨慎”和“抵触”,虽然有很堂皇的理由,但是却失去了一次拥抱新技术的机会。庆幸的是,在争论的最后,大家同意安排一部分机器做一些实验和测试。
都说年轻人喜欢冒险和新鲜,也许每个人都经历过这样的阶段,但随着时间的推移,年轻人变得不那么年轻的时候,还能保持这样一种积极的心态么?当年光脚不怕穿鞋,现在自己也穿上了鞋子,约束也越来越多,公司利益,个人利益,他人感受,自身颜面,甚至比前辈还要守旧,是该多反省了。