Cluster技术实现关键技术应用

1.什么是服务器群集   群集之道-->可扩展性和可用性  
群集使用一组系统对应用程序提供以下特性:
可扩展性-->通过添加节点来为应用程序增加CPU,内存,输入输出带宽、网络带宽
高可用性-->每个系统拥有各自的故障模式: 可为计划或者非计划的停机提供冗余
统一管理
群集服务概述: 群集服务可以提供高可用性的负载-->可将应用程序或分区的故障转移到群集中的另外一个节点
                  任意应用或分区在特定时刻只能在一个节点上运行-->只用来运行一个应用(主动/被动)  运行多个应用(主动/主动)
                  访问网站(www.microsoft.com/hcl)查阅系统硬件兼容性列表
群集服务的虚拟服务器: 网络客户端可以看到一个或多个"虚拟"服务器-->每个虚拟服务器都有一个名称和IP地址  每个虚拟服务器都提供一组服务-->如数据库、文件和打印共享  
                            每个虚拟服务器只能同时运行在一个节点-->每个节点可以同时运行多个虚拟服务器
                            如果当前的节点失败,它上面运行的虚拟服务器就会切换到其它可用的节点-->客户端仍然使用相同的IP地址和网络名称来访问应用和服务
服务器群集术语:  节点                             资源依赖
                     群集服务                            组
                      资源                            虚拟服务器
                     共享磁盘                        故障转移
                     仲裁资源                        故障回复
                     资源状态
资源: 提供服务所需要的资源-->磁盘 IP地址 服务器应用程序 数据库 
        同时只能在一台机器运行
        可能依赖于其他资源
        预先定义的属性控制了它的行为
仲裁资源: 作为群集系统数据的固定存储区
             作为网络连接失败时各个节点间的连接纽带-->心跳信号在所有的内部通信中丢失  确定仲裁资源所有者  同一时刻只有一个节点拥有资源
用于维护群集数据完整性-->尽管节点之间可能无法通信  首要的任务是数据完整
群集服务: 基于RPC的应用程序-->如NET START命令
            群集包括一个服务和两个驱动: CLUSSVC.EXE 群集服务  CLUSDISK.SYS 群集磁盘过滤驱动  CLUSNET.SYS 群集网络驱动
            ClusDisk和ClusSvc可以被停用,这样节点就成为普通服务器了-->警告: -在停用CLUSDISK.SYS的情况下只能一个节点运行,否则可能造成数据破坏
心跳线通信: 大部分通信使用远程过程调用
               成员信息心跳线使用UDP-->心跳信息每约1.2秒一次
              失败-->丢失4次心跳信息(约5秒.)  -->见下图:
Cluster技术实现关键技术应用
故障侦测: 节点失败-->侦测机制: 心跳   失败条件: 丢失4心跳信号(约5 sec.)
             资源失败-->侦测机制: 资源DLL   失败条件: lsAlive,LooksAlive 失败(5-60 sec.)
服务器群集: 服务/网络失败-->心跳
               应用失败
               应用的高可用性取决于它发现失败的能力-->一般应用程序vs.定制应用程序
               拔掉网络电缆(e.g.fiber channel cables),群集不一定发现-->某些网卡不支持媒体侦测  Q294173
磁盘仲裁: SCSI-2有reserve/release指令-->磁盘控制器令牌
             所有者取得令牌租约
             每3秒更新租约
             抢占所有权: 挑战行为清除令牌租约(SCSI bus reset)  等待10秒-->3秒更新+2秒总线停止 作两次以给所有者两次机会取回所有权  如果仍然为清空状态,原所有者丢失所有权  挑战行为准备取得所有权
组: 一系列资源,同一时刻只能在一个节点上运行  故障转移基本单位  故障转移/恢复-->首选所有者 如果没有首选所有者,在Windows.Net Service上目标将是随机的
服务器群集故障转移-->见下图:
Cluster技术实现关键技术应用
群集类型: 主动/被动-->应用只能在一个节点上运行  适合无法分割数据的应用  常用于兼容的以前的应用程序
             主动/主动-->应用可以被分开同时运行  同一类型资源的多个实例
             主动/主动-->故障转移数据,而不是服务: "应用容器" 划分成数据组 动态加载数据组  在大型群集上的显著进步  需要定制资源动态链接库  数据位置配置非常重要
故障转移/用户体验-->见下图:
Cluster技术实现关键技术应用
硬件需求: 硬件必须在HCL列表中: http://www.microsoft.com/hcl  按照硬件供应商提供的手册配置硬件  每节点最少2块网卡  SCSI或SAN共享磁盘-->仲裁盘  每虚拟服务器一磁盘
软件需求: 操作系统: WinNT4 Enterprise Edition  Win2k Advanced Server  Win2k Datacenter Server  Windows Server 2003 
             磁盘;分区: 基本磁盘  NTFS分区
             域角色: 所有节点必须是同样的域角色
             群集服务账号
检验安装: 是否群集服务已启动  文件/目录已创建  注册表项已经生成  缺省组  手工移动组  群集管理器
资源:          DHCP                          General service
                 DTC                         General application
                  IP                                    IIS
           Network Name                         MSMQ
                 Wins                             Local Quorum 
              File share                             NNTP
             Physical disk                          SMTP
             Time service
组属性: 常规  故障转移  故障回复

本文转自 叶俊生 51CTO博客,原文链接:http://blog.51cto.com/yejunsheng/164332
上一篇:云栖干货回顾 |“*玩家”集结!分布式数据库专场精华解读


下一篇:Go Git:面向未来的代码平台