|
本站遵守 Creative Commons License 许可 转载时务必以超链接形式标明文章原始出处和作者信息 |



| Non-Linear 新奥特第二代非线性视音频编辑网络-群集技术 |
|
|
| Written by Jaleo | ||||||||
| Friday, 04 July 2008 | ||||||||
|
新奥特第二代非线性视音频编辑网络系统连续运行已有3年半,网络稳定,之前没有出现宕机现象。从技术上讲,服务器采用了群集技术,保证了域控制器、DNS、SQL Server、MDC服务的连续运行。群集软件使用微软的MSCS,2台服务器共享一台SCSI阵列,该阵列上还存有非编的工程文件和高压缩比素材。 这里先简单的介绍微软群集技术的原理。 Microsoft 的服务器操作系统提供了三种支持群集的技术:网络负载平衡 (NLB)、组件负载平衡 (CLB) 和 Microsoft 群集服务 (MSCS)。非编网络中只使用了MSCS。 MSCS 故障转移功能是通过群集中连接的多台计算机中的冗余实现的,每台计算机都具有独立的故障状态。冗余要求在群集中的多台计算机上安装应用程序。但是,应用程序任何时刻只在一个节点上处于联机状态。当该应用程序出现故障或该服务器停机时,此应用程序将在另一个节点上重新启动。 每个节点都具有自己的内存、系统磁盘、操作系统和群集资源的子集。如果某一节点出现故障,另一个节点将接管故障节点的资源(此过程称为“故障转移”)。然后,群集服务将在新节点上注册资源的网络地址,以便将客户端流量路由至当前拥有该资源的可用系统。当故障资源恢复联机状态时,MSCS 可配置为适当地重新分配资源和客户端请求(此过程称为“故障回复”)。要使应用程序恢复到发生故障转移时的那一点,节点必须能够访问保持应用程序状态的共享存储器。 需要指出的是,微软群集服务旨在提供高可用性,而不是真正的容错功能。“容错”一词通常用于描述提供更高级别恢复功能的技术。容错服务器通常使用结合了特定软件的高级硬件或数据冗余,为单个硬件或软件故障提供近乎瞬时的恢复。这些解决方案的成本远远高于群集解决方案,因为必须支付冗余硬件的费用,而冗余硬件只不过闲置在那里等待恢复故障。微软群集服务使用价格适宜的标准硬件提供优秀的高可用性解决方案,同时最大程度地利用计算资源。 微软群集服务基于非共享的群集模型。非共享模型规定,尽管群集中有多个节点可以访问设备或资源,但该资源一次只能由一个系统占有和管理。(在 MSCS 群集中,资源是指任何可以联机或脱机、可在群集中进行管理、一次只能由一个节点提供并可在节点之间移动的物理或逻辑组件。) 由上面的原理我们可以知道MSCS是一种低成本的解决方案,但是MSCS软件本身也是一个单一故障点,一旦MSCS服务软件出现故障,无论有几个节点,服务都将中断。 2008年7月2日,我就遇到了这样的故障,当日下班前进行例行检查,发现主服务器内存不足,于是先关闭备服务器,重启主服务器,一切正常,接着开启备服务器,奇怪的是几秒钟后主服务器报警,SQL Server服务停止,共享磁盘阵列不能访问,查看备服务器,发现显示器灯不亮,根本没有启动。于是全部关闭两台服务器,重新开启,2次下来故障依旧,于是第三次只开启了主服务器,服务继续运行,向新奥特公司咨询,由于情况不明,故打算次日上午再联系。 7月3日一早,再次开启备服务器,和之前一样,备服务器显示器灯不亮,然后主服务器的SQL SERVER和共享磁盘阵列不能访问。全部关闭后,重新启动主服务器,问题来了,这次主服务器启动后SQL SERVER和共享磁盘阵列不能访问,整个网络瘫痪。紧急情况下,查看系统日志,发现有两个相关的错误日志,分别是: 事件类型: 错误 事件来源: ClusSvc 事件种类: (128) 事件 ID: 1073 Microsoft 群集服务停止了防止群集中不一致性的操作。 错误代码是 5028。 事件类型: 错误 事件来源: ClusSvc 事件种类: (4096) 事件 ID: 1148 Microsoft 群集服务遇到一个严重错误。重要的仲裁日志 文件 'T:\MSCS\quolog.log' 已损坏。如果您有仲裁日志文件的备份,您可以 在命令窗口输入 'clussvc -debug -noquorumlogging' 来启动群集服务,将备份的仲裁日志文件复制到仲裁 驱动器中的 MSCS 目录,停止群集服务,再用 'net start clussvc' 重新启动群集服务。 如果没有仲裁日志文件的备份,您可以用 'clussvc -debug -resetquorumlog' 启动 群集服务;这会用群集中可能已损坏的信息创建 新的仲裁日志文件。然后,您可以停止群集服务, 用 'net start clussvc' 命令重新启动。 看错误的描述,似乎是群集服务软件崩溃,查看服务管理器,Cluster Service当前停止,手动启动不成功。于是在命令提示符下输入命令 clussvc-debug -resetquorumlog,用这个命令是因为仲裁日志保存在共享阵列上,已经无法访问,没有备份。运行此命令后,屏幕上输出一大堆提示,过了几分钟,SQL SERVER和共享阵列都能访问了,但Cluster Service服务依旧停止,重启主服务器后一切正常。对于备服务器,为了不影响网络运行,断开网络和共享阵列,单击查看故障,后来确定是硬件故障无法启动。 此次集群服务启动失败,关键在于Quolog.log文件被破坏,所以此次修复的关键在于能够读取一个正常的Quolog.log文件。我采用的方法是设置参数 resetquorumlog让Cluster重建Quolog.log文件。 故障虽然已经解决,但是我们看到MSCS群集软件本身就是一个单一故障点,由于网络的数据库文件也是存放在共享阵列上,一旦MSCS软件故障,导致共享阵列无法访问,数据库服务器也会停止,整个非编网络瘫痪。
Powered by !JoomlaComment 3.26
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved." |
||||||||
| Last Updated ( Friday, 04 July 2008 ) | ||||||||
| Next > |
|---|