分类: 服务器与存储
2008-06-05 19:01:28
这几年,存储方面硬件、解决方案沸沸腾腾,但殊不知再强你也逃脱不过操作系统的控制。
再怎么折腾,你也是个外挂方案,防患于未然之用。
我在内部讲座中介绍过集群相关分类、原理、实现方式的论战。但确实没有机会接触实践过。
逮着这次的机会,更深体会了一把。
所谓方案,无非就是一些实用硬件、软件达到目的的方法。
这些方法也是聪明人根据迫切的需求琢磨出来的。
没有任何理论,也没有科学依据。
纯属应用。
至于设备,相对于操作系统无非就是共享可读写的磁盘。卖的存储设备无非就是几个控制器加个嵌入式系统管理几个破磁盘阵列。
何必炒作得那么汹涌澎湃。
软件人当然把硬件看成透明,遵照接口来,兼容操作系统设备即可。
真正方案能否达到实际用途,还是得靠软件。操作系统、数据库管理系统、以及三方控制软件。
性能集群这里不提了。仅提HA(高可用性)应用,就是常吹的7*24小时不间断工作,一个工作不正常了另外的来接替工作,自动切换人工维护。
需求很明确,就做这。
很多大的应用需要保证服务不间断,因此这些方案都是为他们服务,也许一年都不会运作一次,但就跟消防救火一样,这个资还是要投。把不可用时间损失缩短到最小。
这里不讲操作系统、数据库管理系统内部如何保证内存、运作数据不丢失,这些属于他们底层的事情。
仅仅讲三方软件手段构建个HA方案的原理和小技巧。这个所谓的三方软件的功能要点和有意思的地方。
惊人价格:
一般有人跟我们推销什么存储解决方案,那么他们一般就是做阵列柜的。卖硬件的,一个设备从几万到几十万不等。代理价格只有3成,大家注意砍价即可。
他们卖了个柜子给你,你自己加几块硬盘,就可以虚拟成个硬盘拿来用。
至于你能不能够建HA系统什么的他们才不管,他们只卖存储设备。你要基于共享阵列构建HA系统,对不起拿钱买软件自己构建去或者帮你构建。
一个软件开口上万,厂商肯定不做的,绝对是OEM,常见的RoseHA什么的小巧软件久经考验,估计OEM给他们也没几个钱,居然开口一个授权1万多,双机就×2了。过分啊。
所以说上家骗下家,最终倒霉的就是用户,动辄几百万的系统就是这么出来的。
企业政府采购价格越高越好,硬件搭配软件,不怕你卖不出去。
软件难度不大,只要稳定、正确执行即可。所以我说那么多写软件写得吐血的人,28块钱混饭吃的人,反而不入研究一下计算机系统某一方面的需求,把自己的能力转化为软件在解决方案中做一枚小螺丝钉。
需求把握得好,功能完善得好,绝对不愁money不愁虚度时光。
如下根据CA BrightStor High Availability软件使用体验得来。
此为使用镜像磁盘方式,仅使用2台主机以存软件的方法构建高可用性解决方案。
他的一些功能点和做法,基本可以概括这种三方软件构建双机热备HA方案的做法。
环境:Windows2000/2003,TCPIP
因为没有采用共享磁盘阵列保证磁盘数据的唯一性,这种软件方案使用磁盘同步镜像的方式。
就是主机相互监测,操作系统有文件提交就同时往从机中写。
这样以软的解决方案达到了数据一致性。是一种廉价的方案,对要求不高的类似web、小型数据库服务之类很实际。
·初始化的时候,主机把制定目录镜像到从机
·主机有数据变动,及时改变从机数据
·主机崩溃后,从机取代主机做服务,手动恢复主机(Reinstat)时把数据全部(或者对比增量)镜像回去,主机再继续工作。
这一块文件底层操作开发稳定性要求高一些,一旦有问题整个方案价值=0。
监测
如何监测工作状态?共享磁盘方式一般都有专门的心跳线保证二台机器出线故障后相互还能相互通讯,以保证阵列被那台机器控制。
这只是监测硬件故障、操作系统死机什么的。
经验故障好保证,双机器相互通过网络保持心跳,各种方案吧。
比方时刻ping一目的机器(默认为网关),相互通信。一旦一方发生故障,立即主从切换。
应用程序死机也是要监测的。大家都根据windows服务机制来监测一个应用程序是否正常运行,一旦服务停止立即切换。
定时监测服务是一种方案。
各种导致客户无法访问的事件都一一有对策,都是大家琢磨出来的啊。
故障处理、切换
一旦任何异常发现,做响应处理。
如主机服务器程序故障,监测到stop掉后,会自动的重启几次,超过了重启失败次数以后,切换主从。
主从切换,什么ip漂移什么的,无非就是为了让客户端仍然能透明的访问同一服务地址。
现在用得最多的无非就是域名和IP地址,这些对外的访问地址被接管了,自然能提供不间断服务。
当然主从切换后,从机要做一系列工作,启动主机中各种服务,使用镜像后的数据。而主机失败后要做的就是让出自己的ip为一个不冲突的地址,停掉所有服务。
所以:
1、各种服务要为手动方式,有HA软件自动控制。
2、至少3个以上的ip进行切换,不影响工作,一个网卡可以占用多个ip服务。
DNS是很重要的,以域名标示可用的主机,而不是ip和机器名。这一点在CA的这个软件中至关重要,我就被他折腾了,还不得不配域名服务器(不过我用修改hosts文件的方式解决了)
总之现在NT,Linux逐步完善,利用他们的一些特性动态切换,OS发展到现在,这些污七八糟的功能绝对都是为了配合相关解决方案所改进的。
所以无论是那种软件的发展和改造都要根据实际应用需求而来。只是很多情况下我们没有碰到过,不知道而已。
恢复
主从切换以后,以前的主机就改名改ip,重启后沦为了空闲,啥事不干,就等着技术人员来恢复。
在共享磁盘方式不需要手动恢复,因为他数据在一个地方,所以可以相互轮回切换。
这个镜像数据方式也许是怕大数据镜像得危险所以需要人工参与吧。也好,从机只起辅助作用,也不需要跟主机一样性能优越。
手动把数据从从机恢复到主机上后,主机又抢回自己的各种服务权继续服务。
切换过程绝对都是会造成服务停顿的,但既然100%不能保证,99%应该是可以保证的,毕竟是备份方案,不可能每天切换几次。
要做到万无一失的数据不丢失,相信DBMS、应用服务器、操作系统软件内部的集群支持更重要。
运维管理
故障后自动切换了,是不需要人工干预的,作为服务解决方案,重要的一块是运维管理,最基本的监控、主动通知是必须有的。
这种HA软件一般都可以通过网络进行管理和状态显示。
各种事件发生,主动通知管理人员。
如:发消息广播、messenger、email、手机短信、电话、警铃警灯什么的。
无论是什么解决方案,只要你试想自己是用户,碰到了这种棘手的问题,你能灵活应用各种软硬件去解决他的问题。然后把软件作得足够自动,降低人的劳作,把各种事件逐个处理完善。那么你的方案可以卖钱了,你的软件也有价值了,你批量生产的硬件也可以挂上品牌配合几百页厚的《××××解决方案》出去推销了。