windows 故障转移群集,win2012故障转移群集

windows 故障转移群集,win2012故障转移群集,WINDOWS2016故障转移群集(图文教程)

本文主要介绍WINDOWS2016故障转移集群,通过示例代码进行了详细介绍,具有一定的参考价值。感兴趣的朋友可以参考一下。

WIN2016故障转移群集

准备工作:

主机名

互联网协议(Internet Protocol)

域名

WINA

192.168.0.24

WINA。网

WINB

192.168.0.25

WINB。网

WINC

192.168.0.26

WINC。网

所有主机都配置主机信息。修改后的主机名IPDNS为本地IP(以单台主机A为例)

互相Ping对方以测试连通性(以单台主机A为例)

所有主机都安装了角色功能DNS和故障转移集群(以单台主机A为例)

所有主机都配置DNS解析记录和测试解析。

新正向查找区域网

创建新的反向搜索区域

创建新的正向查找区域记录。默认情况下,会生成一条本地记录。

创建新的反向查找记录(我们在创建新的正向记录时已经检查了PTR指针,默认情况下已经创建了B/C主机的反向记录)。现在我们只需要为这台机器创建一个新的PTR记录。

测试分析

主机配置故障转移群集B/C主机连接到群集指定的虚拟IP192.168.0.88

主机创建集群测试

主机B/C连接到集群测试

主机B(192.168.0.25)

检查集群中当前使用的主机(网卡应该有88IP)

所有主机安装IIS 80端口作为默认的web访问测试。

关闭活动主机(同时88网卡的主机只会有一台),看活动主机选哪个192.168.0.88:80,是否还能打开(使用网络中其他主机打开网页)。

关闭主机A后,主机B仍然可以打开88IP网页。

继续关闭主机b。

此时,C主机仍然可以打开88IP的网页。

参考:

https://blog.csdn.net/demonson/article/details/81708809

注意:

后期测试后,建议不要关闭集群中的所有主机,否则会出现问题。

高级:

以上内容是集群中一台主机宕机后,集群建设和业务恢复的情况。

以下记录了主机未关闭,IIS站点挂起且无法提供服务的情况。

新的文本文档被修改为具有以下内容的IIS.vbs(虚线中的内容)。注意要修改网站和应用池的名称(默认不需要修改)

开始脚本示例

该脚本为IIS网站提供了高可用性

默认情况下,它会监视“默认网站”和“默认应用池”

若要监视其他网站,请更改下面的SITE_NAME

若要监视另一个应用程序池,请更改下面的APP_POOL_NAME

如果需要,可以在脚本中添加更全面的特定于应用程序的健康监控逻辑

选项显式

DIM站点名称

DIM应用程序池名称

Dim开始_网站_网站

暗淡开始_应用程序_池

Dim SITES_SECTION_NAME

Dim应用程序池部分名称

Dim配置_应用程序主机_根

Dim站点_网站

注意:

将此替换为您要为其配置高可用性的站点和应用程序池

确保脚本中的相同网站和应用程序池存在于所有群集节点上。请注意,名称区分大小写。

SITE_NAME=默认网站网站名称

APP_POOL_NAME=DefaultAppPool 应用程序池名称

开始网站=0

启动应用池=0

停止网站=1

SITES _ SECTION _ NAME= system . application host/SITES

应用程序池部分名称=系统.应用程序主机/应用程序池

CONFIG _ APPHOST _ ROOT= MACHINE/WEBROOT/APPHOST

助手脚本函数

在这个节点上找到网站的索引

函数FindSiteIndex(集合,站点名称)

Dim i

FindSiteIndex=-1

对于i=0到(CInt(集合。计数)- 1)

如果收藏。项目(一)。GetPropertyByName(name )。那么Value=siteName

FindSiteIndex=i

为.退出

如果…就会结束

然后

结束功能

在此节点上查找应用程序池的索引

函数FindAppPoolIndex(集合,appPoolName)

Dim i

FindAppPoolIndex=-1

对于i=0到(CInt(集合。计数)- 1)

如果收藏。项目(一)。GetPropertyByName(name )。那么Value=appPoolName

FindAppPoolIndex=i

为.退出

如果…就会结束

然后

结束功能

获取网站的状态

函数GetWebSiteState(adminManager,siteName)

Dim sitesSection,sitesSectionCollection,siteSection,index,siteMethods,startMethod,executeMethod

设置sitesSection=adminManager .GetAdminSection(站点部分名称,配置应用程序主机根)

set sitesectioncollection=sites section .收藏品

index=FindSiteIndex(sitesectioncollection,siteName)

如果索引=-1,则

GetWebSiteState=-1

如果…就会结束

set site section=sitesectioncollection(index)

GetWebSiteState=siteSection .getpropertybname( state ).价值

结束功能

获取应用程序池的状态

函数GetAppPoolState(管理管理器,应用池)

暗淡的配置节,索引,appPoolState

设置configSection=adminManager .GetAdminSection(应用程序池部分名称,配置应用程序主机根)

index=FindAppPoolIndex(配置部分.集合,应用池)

如果索引=-1,则

GetAppPoolState=-1

如果…就会结束

GetAppPoolState=configSection .收藏。项目(索引)。getpropertybname( state ).价值

结束功能

在此节点上启动w3svc服务

函数StartW3SVC()

Dim objWmiProvider

暗淡的对象服务

Dim strServiceState

模糊响应

检查服务是否正在运行

set obj wmi provider=GetObject( winmgmt:/root/CIM v2 )

set obj service=objwmi provider。get( win32 _ service= w3svc )

strServiceState=obj服务。状态

如果ucase(strServiceState)=正在运行,则

StartW3SVC=True

其他

如果该服务没有运行,请尝试启动它

response=objService .StartService()

响应=0或10表示启动请求已被接受

如果(响应0)和(响应10)则

StartW3SVC=False

其他

StartW3SVC=True

如果…就会结束

如果…就会结束

结束功能

启动网站的应用程序池

函数StartAppPool()

Dim ahwriter,appPoolsSection,appPoolsCollection,index,appPool,appPoolMethods,startMethod,callStartMethod

set ah writer=CreateObject( Microsoft .应用程序主机。可写管理管理器’)

设置appPoolsSection=ahwriter .GetAdminSection(应用程序池部分名称,配置应用程序主机根)

设置apppools collection=apppools section .收藏品

index=FindAppPoolIndex(appPoolsCollection,APP_POOL_NAME)

设置appPool=appPoolsCollection .项目(索引)

查看它是否已经启动

如果应用程序池.getpropertybname( state ).那么值=1

StartAppPool=True

退出功能

如果…就会结束

尝试启动应用程序池

设置appPoolMethods=appPool .方法

Set startMethod=appPoolMethods .项目(启动应用程序池)

设置callStartMethod=startMethod .CreateInstance()

callStartMethod .执行()

如果开始返回真,否则返回假

如果应用程序池.getpropertybname( state ).那么值=1

StartAppPool=True

其他

StartAppPool=False

如果…就会结束

结束功能

启动网站

函数StartWebSite()

Dim ahwriter,siteSection,sitesSectionCollection,网站部分,索引,siteMethods,startMethod,executeMethod

set ah writer=CreateObject( Microsoft .应用程序主机。可写管理管理器’)

设置sitesSection=ahwriter .GetAdminSection(站点部分名称,配置应用程序主机根)

set sitesectioncollection=sites section .收藏品

index=FindSiteIndex(sitesectioncollection,SITE_NAME)

set site section=sitesectioncollection(index)

如果站点部分.getpropertybname( state ).那么值=1

网站已经启动

StartWebSite=True

退出功能

如果…就会结束

尝试启动网站

Set siteMethods=siteSection .方法

Set startMethod=siteMethods .项目(开始网站)

Set executeMethod=startMethod .CreateInstance()

执行方法。执行()

检查站点是否启动,如果没有则返回错误的

如果站点部分.getpropertybname( state ).那么值=1

StartWebSite=True

其他

StartWebSite=False

如果…就会结束

结束功能

停止网站

函数停止网站()

Dim ahwriter,siteSection,sitesSectionCollection,网站部分,索引,siteMethods,startMethod,executeMethod,autoStartProperty

set ah writer=CreateObject( Microsoft .应用程序主机。可写管理管理器’)

设置sitesSection=ahwriter .GetAdminSection(站点部分名称,配置应用程序主机根)

set sitesectioncollection=sites section .收藏品

index=FindSiteIndex(sitesectioncollection,SITE_NAME)

set site section=sitesectioncollection(index)

停止该网站

Set siteMethods=siteSection .方法

Set startMethod=siteMethods .项目(停止网站)

Set executeMethod=startMethod .CreateInstance()

执行方法。执行()

结束功能

群集资源入口点。更多详情请点击此处:

http://msdn。微软。com/en-us/library/aa 372846(vs . 85).aspx

群集资源联机入口点

确保网站和应用程序池已启动

功能在线( )

昏暗的光线

确保w3svc已启动

bOnline=StartW3SVC()

如果bOnline为真,则

资源LogInformation”由于w3svc无法启动,资源无法联机。"

在线=假

退出功能

如果…就会结束

确保应用程序池已启动

bOnline=StartAppPool()

如果bOnline为真,则

资源LogInformation”由于无法启动应用程序池,资源无法联机。"

在线=假

退出功能

如果…就会结束

确保网站已启动

bOnline=StartWebSite()

如果bOnline为真,则

资源LogInformation”由于网站无法启动,资源无法联机。"

在线=假

退出功能

如果…就会结束

在线=真

结束功能

群集资源脱机入口点

停止网站

离线功能( )

停止网站()

离线=真

结束功能

群集资源外观活动入口点

检查网站和应用程序池的运行状况

函数LooksAlive()

Dim adminManager,appPoolState,configSection,I,appPoolName,appPool,index

i=0

set admin manager=CreateObject( Microsoft .应用程序主机。行政经理’)

appPoolState=-1

获取网站的状态

如果GetWebSiteState(adminManager,SITE_NAME) 1,则

资源“逻辑信息”资源失败,因为"网站名称"网站未启动。

LooksAlive=false

退出功能

如果…就会结束

获取应用程序池的状态

如果GetAppPoolState(adminManager,APP_POOL_NAME) 1则

资源逻辑信息资源失败,因为应用程序池应用程序池名称未启动。

LooksAlive=false

退出功能

如果…就会结束

网站和应用程序池状态有效返回真实的

LooksAlive=true

结束功能

群集资源是一个活动入口点

做和LooksAlive一样的健康检查

如果需要比我们在LooksAlive中做的更彻底的,应该在这里执行

函数伊萨live()

IsAlive=LooksAlive

结束功能

群集资源开放入口点

函数打开()

Open=true

结束功能

群集资源关闭入口点

函数关闭()

关闭=真

结束功能

群集资源终止入口点

函数终止()

Terminate=true

结束功能

结束脚本示例

将文件复制到所有群集主机的相同目录下如:C:WindowsSystem32inetsrv主机A打开故障转移群集管理器连接到群集试验

配置(同移民检查员移民检查)故障转移

此时我们在群集下角色列表里可以看到(同移民检查员移民检查)故障转移群集角色

查看一下WINC主机的网卡情况

测试访问http://192.168.0.99 - 可以打开

现在,我们模拟WINC主机IIS web服务挂起/端口无法访问。打开WINC主机IIS管理器,展开网页并停止默认网站。

再次打开浏览器,打开http://192 . 168 . 0 . 99——还是可以打开的。

主机A上的查看群集角色已自动切换到WINB以提供web服务。

检查WINB主机的网卡信息。99IP已自动切换到WINB。我们正在打开WINB的网页。

同样,当我们关闭WINB的IIS网站99时,我们将切换到WINA的访问,这仍然不受影响。

到目前为止,我们已经实现了IIS站点挂机后主机切换主机提供服务而不停机的情况。

注意:

1.在这个测试中,99IP并不对应整个IIS服务,只是对应一个站点(默认站点)。

2.用户上传的附件需要一个集群共享的存储介质,目前还没有解决,需要改进。

参考:

https://www . cnblogs . com/Alan lau/archive/2011/08/25/2153472 . html

关于WINDOWS2016故障转移集群的这篇文章到此为止(图文教程)。有关WINS2016故障转移群集的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

windows 故障转移群集,win2012故障转移群集