夜半,被孩子的哭声吵醒,孩子妈妈已在把孩子的褥子和被子撤了,看来我家大宝又尿床了。妈妈把孩子搂到了我们被窝里,少顷,母女俩呼呼入睡。时下,北京已是秋风瑟瑟,我的被窝已经成为一个被角,寒意浓浓,这怎么让我入眠。辗转反侧,哪跟神经不正常,来了个突发奇想,这孩子的尿床,犹如我们的灾备啊!逐把这段思绪写下来。
人相当于我们的应用,现在主要的工作是睡觉,当然,妈妈还提供给孩子的应急,喂奶等工作,爸爸就是休息,以便第二天起来好好工作,多多挣钱。当前每个应用都需要的资源是:被子褥子,如存储设备,服务器。而被子褥子需要建立在床的基础上,犹如服务器需要托管与机房。孩子是一个刚起步的应用,特点是:新,有无限的发展空间,也同时存在不少问题(比如尿床),需要其他应用的扶持。
模型建立完毕,接下来开始灾备演练。
孩子和大人的资源分离,这有个好处,如把不同的应用放在不同的服务器上,当某个应用出现问题时,导致所有的服务器都瘫痪掉。孩子尿床,相当于资源服务器当机,因为宝宝还小,没有独立处理容灾的能力,只能提供报警信息(哭泣)来报告其他的服务,这时候(妈妈)接受到了响应,处理:撤掉宝宝的被子褥子,抱进自己的被窝。宝宝服务转移后,一切正常,呼呼入睡,妈妈处理完后,也正常,呼呼入睡。但只有一条被子的资源,出现资源紧缺现在,爸爸的优先级比较低,抢不到资源,导致不能入睡。
显然,这不是一个很好的架构设计。那么如何改进呢?
1.给宝宝再配置一套被子褥子。这是一个可行的方案,当尿床再此出现的时候,把原来的被子褥子撤掉,换上好的被子褥子。方法可行,当然需要在能增加资源的基础上可实施;不足之处是不但要停止当前服务(睡觉),需要妈妈停止先行睡觉的任务,来帮组宝宝来容灾,而且宝宝还是会报警,影响爸爸睡觉。
2.再度改进,给宝宝带上尿不湿(RAID)。
2.1 市面上尿不湿有好多种,选择一个名气比较大的吧。帮宝适蓝色普通包装的(RAID 0),发现比较单薄,纸张比较硬,不怎么好!(RAID 0 提升读写速度,没有容灾能力)。
2.2 帮宝适推出了特揉棉黄色装(RAID 1),确实在柔软度方面有所提升,但是价格太过昂贵,别人2片还没它一片贵。(RAID 1 通过磁盘数据镜像实现数据冗余,磁盘利用率低),看来不是最佳选择。
2.3 这是有人推荐,好奇的尿不湿(RAID 1 0)不错,一看确实价格和柔软度,确实上面两者的折衷。买来使用上,这回该不怕尿床了吧!真的?no,宝宝不愿意带,带上就不睡觉了。什么原因?好奇尿不湿拉它的小屁屁(RAID 1 0 是RAID 0 和RAID 1的结合,即兼顾磁盘读写速度,又兼顾冗余备份,但是好CPU)。只能放弃好奇的。
2.4.继续寻找其他的尿不湿,听养过孩子的朋友说,妈咪宝贝的尿不湿好(RAID 5),还分男宝宝和女宝宝哦。好吧,咱也试试。宝宝带上,能安心睡眠了,尿尿了有尿不湿给你撑着,只要第二天把它换下来就好。偶也可以安心睡个好觉了。可过了几天,灾难在此降临,宝宝尿太多,包不住啊(RAID 5在1块硬盘出现问题时,保证数据完整性,如果1块以上同时出现,那就可能出现数据丢失情况。)。
2.5.这时有人建议,日本花王好啊(RAID 6),那就用花王吧!果然,花王更柔软舒适,更吸尿(RAID 6能保证2块硬盘坏的情况下,保持数据完整性。写的性能下降,而且出现磁盘坏的情况,读写速度极具下降)。这回该省心了吧!真那么简单吗?No,日本地震了,本来就很贵的花王,价格又翻了翻,啊,难以承受啊!而且不管你尿多尿少,尿还是不尿,一定时间总的换。再好的花王,也有侧漏的时候。所以,对孩子的一套独立的灾备资源还是要得。自此,资源开销花费增大。
3.有没有便宜又更好的方案呢?答案肯定是有,是什么呢?云,分布式的文件系统,云计算等等。但是说到便宜不见得,好用也不见得。因为这也跟养孩子一样,不断的教她,让她慢慢的成长,懂得自己能起来尿尿,这非一日之寒。
胡说八道到这里吧!关于RAID和尿不湿的好还优劣,还请自己找相关的资料和实践,这里只是为了写作简单举例。关于灾备,还涉及到很多硬件软件的方方面面,这里是指简单举例,手下留情轻拍!