高可用性定义:一种与实现有关的系统设计协议。该实现在一个可度量的时间范围内能够某种程度上完全保证操作的可持续性,具体包括下面的三个方面:
1.每个功能组件的冗余;
2.尽量消除单点失败;
3.保证单个组件的失败会触发恢复机制,而且对系统的使用者透明
高可用性VS高性能:
高可用性与Failover有关,并不一定与负载平衡有关,主动/被动配置,向外扩展;
高性能与Performance有关,典型的与负载平衡、管理高吞吐量有关,主动配置,向外扩展/向上提升,并不能保证高可用性
Biztalk Server中与高可用性有关的组件:DataBases(SQL Server),Services(Host Instances),Adapter(Send/Receive),Enterprise Single Sign-On(SSO)。对于每个组件而言,保证高可用性的途径都是不同的。
Biztalk Group:
支撑Biztalk Services的服务器集合,基于同一个MessageBox。Group中的Host Instance基于同一个配置,默认支持负载平衡。
SQL Server:
通过SQL Server Cluster来实现。
创建全局domain帐户;在Biztalk安装前配置SQL Server集群;安装Biztalk Server;在Biztalk配置向导中使用定制配置模式;为Biztalk Databases制定SQL Server集群数据库。
Failover行为:Biztalk Databases在Failureover期间暂时无法访问。
In-Process Host实例被回收,直到SQL Server连接自动恢复;
Isolated Host实例被停止,Receive Location被Disable;
一旦SQL Server连接恢复,文档处理自动恢复,Receive Location会被自动Enable;
由于Biztalk Databases维护事务一致性的原因,不支持SQL Server Mirroring
Biztalk Host:
推荐为不同的功能创建独立的Host,这样创建安全边界,便于管理和缩放性。不需要额外的负载平衡或者集群机制,因为Biztalk Server 2006会通过Host实例自动把负载分配到不同的机器上。但是,对运行于HTTP,SOAP, MSMQT Adapter Receive Handler的Host,需要类似Network Load Balancing(NLB)的机制去保障高可用性。具体措施是在不同的机器上使用指向同一个Endpoint的Host Instance。
SSO:
参考 http://www.microsoft.com/technet/prodtechnol/biztalk/2006/library/bts06clustering/c5fe4626-ff82-45cd-a62f-848fdc61e6ff.mspx?mfr=true
Based on “Concepts Around the Implementation of BizTalk Server 2006 in a High Availability Environment” from Daniel Toomey & Patrick Hood