返回顶部
首页 > 资讯 > 精选 >WINDOWS2016故障转移的示例分析
  • 601
分享到

WINDOWS2016故障转移的示例分析

2023-06-26 07:06:08 601人浏览 八月长安
摘要

这篇文章跟大家分析一下“windows2016故障转移的示例分析”。内容详细易懂,对“WINDOWS2016故障转移的示例分析”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“WIN

这篇文章跟大家分析一下“windows2016故障转移的示例分析”。内容详细易懂,对“WINDOWS2016故障转移的示例分析”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“WINDOWS2016故障转移的示例分析”的知识吧。

WIN2016故障转移群集

准备工作:

主机名

IP

域名

WINA

192.168.0.24

WINA.net

WINB

192.168.0.25

WINB.NET

WINC

192.168.0.26

WINC.NET

所有主机配置主机信息 修改好主机名IP  DNS为本机IP   (以单台主机A为例)

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

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

WINDOWS2016故障转移的示例分析

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

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

所有主机配置DNS解析记录 并测试解析

新建正向查找区域NET

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

新建反向查找区域

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

新建正向查找区域记录 默认已生成本机记录

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

新建反向查找记录  (我们新建正向记录勾选了PTR指针 默认已经新建了B/C主机的反向记录) 现在只需新建一条本机的PTR记录

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

测试解析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

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

主机A创建群集TEST

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

主机B/C连接到群集TEST

主机B(192.168.0.25)

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

查看群集当前在用主机为哪台  (网卡应有88IP)

WINDOWS2016故障转移的示例分析

所有主机安装IIS    80端口为默认网页 访问测试

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

关闭掉在用主机(网卡有88的主机 同时只会有一台)  查看在用主机被选为了哪台 192.168.0.88:80是否还可以打开 (使用网络中其他主机来打开网页)

关闭掉A主机后 B主机拥有了88IP 网页依然可以打开

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

继续关闭B主机

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

此时C主机拥有了88IP  网页依然可以打开

参考:

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

注:

经后期测试 建议不要将群集所有主机全部宕机 否则会出现问题

进阶:

以上内容为群集搭建及群集中某主机宕机后恢复业务的情况

下面记录一种主机没有宕机 IIS站点挂掉无法提供服务的情况  

新建文本文档 修改为IIS.vbs  内容如下(虚线内内容)  注意修改网站和应用程序池名称(默认无需修改)

'<begin script sample>  'This script provides high availability for IIS WEBsites'By default, it monitors the "Default Web Site" and "DefaultAppPool"'To monitor another web site, change the SITE_NAME below'To monitor another application pool, change the APP_POOL_NAME below'More thorough and application-specific health monitoring logic can be added to the script if needed Option Explicit DIM SITE_NAMEDIM APP_POOL_NAMEDim START_WEB_SITEDim START_APP_POOLDim SITES_SECTION_NAMEDim APPLICATION_POOLS_SECTION_NAMEDim CONFIG_APPHOST_ROOTDim STOP_WEB_SITE  'Note:'Replace this with the site and application pool you want to configure high availability for'Make sure that the same web site and application pool in the script exist on all cluster nodes. Note that the names are case-sensitive.SITE_NAME = "Default Web Site" '网站名称APP_POOL_NAME = "DefaultAppPool" '应用程序池名 START_WEB_SITE = 0START_APP_POOL = 0STOP_WEB_SITE  = 1SITES_SECTION_NAME = "system.applicationHost/sites"APPLICATION_POOLS_SECTION_NAME = "system.applicationHost/applicationPools"CONFIG_APPHOST_ROOT = "MacHINE/WEBROOT/APPHOST" 'Helper script functions  'Find the index of the website on this nodeFunction FindSiteIndex(collection, siteName)     Dim i     FindSiteIndex = -1        For i = 0 To (CInt(collection.Count) - 1)        If collection.Item(i).GetPropertyByName("name").Value = siteName Then            FindSiteIndex = i            Exit For        End If          Next End Function  'Find the index of the application pool on this nodeFunction FindAppPoolIndex(collection, appPoolName)     Dim i     FindAppPoolIndex = -1        For i = 0 To (CInt(collection.Count) - 1)        If collection.Item(i).GetPropertyByName("name").Value = appPoolName Then            FindAppPoolIndex = i            Exit For        End If          Next End Function 'Get the state of the websiteFunction GetWebSiteState(adminManager, siteName)     Dim sitesSection, sitesSectionCollection, siteSection, index, siteMethods, startMethod, executeMethod    Set sitesSection = adminManager.GetAdminSection(SITES_SECTION_NAME, CONFIG_APPHOST_ROOT)    Set sitesSectionCollection = sitesSection.Collection     index = FindSiteIndex(sitesSectionCollection, siteName)    If index = -1 Then        GetWebSiteState = -1    End If          Set siteSection = sitesSectionCollection(index)     GetWebSiteState = siteSection.GetPropertyByName("state").Value End Function 'Get the state of the ApplicationPoolFunction GetAppPoolState(adminManager, appPool)     Dim configSection, index, appPoolState     set configSection = adminManager.GetAdminSection(APPLICATION_POOLS_SECTION_NAME, CONFIG_APPHOST_ROOT)    index = FindAppPoolIndex(configSection.Collection, appPool)     If index = -1 Then        GetAppPoolState = -1    End If          GetAppPoolState = configSection.Collection.Item(index).GetPropertyByName("state").ValueEnd Function  'Start the w3svc service on this nodeFunction StartW3SVC()     Dim objWmiProvider    Dim objservice    Dim strServiceState    Dim response     'Check to see if the service is running    set objWmiProvider = GetObject("winmgmts:/root/cimv2")    set objService = objWmiProvider.get("win32_service='w3svc'")    strServiceState = objService.state     If ucase(strServiceState) = "RUNNING" Then        StartW3SVC = True    Else        'If the service is not running, try to start it        response = objService.StartService()         'response = 0  or 10 indicates that the request to start was accepted        If ( response <> 0 ) and ( response <> 10 ) Then            StartW3SVC = False        Else            StartW3SVC = True        End If    End If     End Function  'Start the application pool for the websiteFunction StartAppPool()     Dim ahwriter, appPoolsSection, appPoolsCollection, index, appPool, appPoolMethods, startMethod, callStartMethod    Set ahwriter = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")     Set appPoolsSection = ahwriter.GetAdminSection(APPLICATION_POOLS_SECTION_NAME, CONFIG_APPHOST_ROOT)          Set appPoolsCollection = appPoolsSection.Collection     index = FindAppPoolIndex(appPoolsCollection, APP_POOL_NAME)    Set appPool = appPoolsCollection.Item(index)         'See if it is already started    If appPool.GetPropertyByName("state").Value = 1 Then        StartAppPool = True        Exit Function    End If     'Try To start the application pool    Set appPoolMethods = appPool.Methods    Set startMethod = appPoolMethods.Item(START_APP_POOL)    Set callStartMethod = startMethod.CreateInstance()    callStartMethod.Execute()         'If started return true, otherwise return false    If appPool.GetPropertyByName("state").Value = 1 Then        StartAppPool = True    Else        StartAppPool = False    End If End Function  'Start the websiteFunction StartWebSite()     Dim ahwriter, sitesSection, sitesSectionCollection, siteSection, index, siteMethods, startMethod, executeMethod    Set ahwriter = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")    Set sitesSection = ahwriter.GetAdminSection(SITES_SECTION_NAME, CONFIG_APPHOST_ROOT)    Set sitesSectionCollection = sitesSection.Collection     index = FindSiteIndex(sitesSectionCollection, SITE_NAME)    Set siteSection = sitesSectionCollection(index)     if siteSection.GetPropertyByName("state").Value = 1 Then        'Site is already started        StartWebSite = True        Exit Function    End If     'Try to start site    Set siteMethods = siteSection.Methods    Set startMethod = siteMethods.Item(START_WEB_SITE)    Set executeMethod = startMethod.CreateInstance()    executeMethod.Execute()     'Check to see if the site started, if not return false    If siteSection.GetPropertyByName("state").Value = 1 Then        StartWebSite = True    Else        StartWebSite = False    End If End Function  'Stop the websiteFunction StopWebSite()     Dim ahwriter, sitesSection, sitesSectionCollection, siteSection, index, siteMethods, startMethod, executeMethod, autoStartProperty    Set ahwriter = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")    Set sitesSection = ahwriter.GetAdminSection(SITES_SECTION_NAME, CONFIG_APPHOST_ROOT)    Set sitesSectionCollection = sitesSection.Collection     index = FindSiteIndex(sitesSectionCollection, SITE_NAME)    Set siteSection = sitesSectionCollection(index)     'Stop the site    Set siteMethods = siteSection.Methods    Set startMethod = siteMethods.Item(STOP_WEB_SITE)    Set executeMethod = startMethod.CreateInstance()    executeMethod.Execute() End Function   'Cluster resource entry points. More details here:'Http://msdn.microsoft.com/en-us/library/aa372846(VS.85).aspx 'Cluster resource Online entry point'Make sure the website and the application pool are startedFunction Online( )     Dim bOnline    'Make sure w3svc is started    bOnline = StartW3SVC()     If bOnline <> True Then        Resource.LogInfORMation "The resource failed to come online because w3svc could not be started."        Online = False        Exit Function    End If      'Make sure the application pool is started    bOnline = StartAppPool()    If bOnline <> True Then        Resource.LogInformation "The resource failed to come online because the application pool could not be started."        Online = False        Exit Function    End If      'Make sure the website is started    bOnline = StartWebSite()    If bOnline <> True Then        Resource.LogInformation "The resource failed to come online because the web site could not be started."        Online = False        Exit Function    End If     Online = true End Function   'Cluster resource offline entry point'Stop the websiteFunction Offline( )     StopWebSite()    Offline = true End Function  'Cluster resource LooksAlive entry point'Check for the health of the website and the application poolFunction LooksAlive( )     Dim adminManager, appPoolState, configSection, i, appPoolName, appPool, index     i = 0    Set adminManager  = CreateObject("Microsoft.ApplicationHost.AdminManager")    appPoolState = -1     'Get the state of the website    if GetWebSiteState(adminManager, SITE_NAME) <> 1 Then        Resource.LogInformation "The resource failed because the " & SITE_NAME & " web site is not started."        LooksAlive = false        Exit Function    End If      'Get the state of the Application Pool     if GetAppPoolState(adminManager, APP_POOL_NAME) <> 1 Then         Resource.LogInformation "The resource failed because Application Pool " & APP_POOL_NAME & " is not started."         LooksAlive = false      Exit Function     end if      '  Web site and Application Pool state are valid return true     LooksAlive = trueEnd Function  'Cluster resource IsAlive entry point'Do the same health checks as LooksAlive'If a more thorough than what we do in LooksAlive is required, this should be performed hereFunction IsAlive()       IsAlive = LooksAlive End Function  'Cluster resource Open entry pointFunction Open()     Open = true End Function  'Cluster resource Close entry pointFunction Close()     Close = true End Function  'Cluster resource Terminate entry pointFunction Terminate()     Terminate = true End Function'<end script sample>

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

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

配置IIS故障转移

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

WINDOWS2016故障转移的示例分析

此时我们在群集下角色列表里可以看到IIS故障转移群集角色

WINDOWS2016故障转移的示例分析

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

WINDOWS2016故障转移的示例分析

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

WINDOWS2016故障转移的示例分析

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

WINDOWS2016故障转移的示例分析

再次打开浏览器 打开http://192.168.0.99  ----- 依然可以打开

WINDOWS2016故障转移的示例分析

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

WINDOWS2016故障转移的示例分析

查看WINB主机网卡信息   99IP已自动切换到WINB 我们打开的是WINB的网页

WINDOWS2016故障转移的示例分析

同理 我们关闭WINB的IIS网站 99又会切换到WINA 访问依然不受影响

WINDOWS2016故障转移的示例分析

至此 我们实现了 主机在非宕机情况下 IIS站点挂掉后切换主机提供服务的情况

注:

本测试中99IP对应的不是整个IIS服务 只是一个站点(默认站点)

用户上传的附件需要一个群集共用的存储介质 目前还未解决 待完善

关于WINDOWS2016故障转移的示例分析就分享到这里啦,希望上述内容能够让大家有所提升。如果想要学习更多知识,请大家多多留意小编的更新。谢谢大家关注一下编程网网站!

--结束END--

本文标题: WINDOWS2016故障转移的示例分析

本文链接: https://lsjlt.com/news/307650.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • WINDOWS2016故障转移的示例分析
    这篇文章跟大家分析一下“WINDOWS2016故障转移的示例分析”。内容详细易懂,对“WINDOWS2016故障转移的示例分析”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“WIN...
    99+
    2023-06-26
  • Redis中sentinel故障转移的示例分析
    这篇文章主要为大家展示了“Redis中sentinel故障转移的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Redis中sentinel故障转移的示例...
    99+
    2024-04-02
  • WINDOWS2016故障转移群集(图文教程)
    WIN2016故障转移群集 准备工作: 主机名IP域名WINA192.168.0.24WINA.NETWINB192.168.0.25WINB.NETWINC192.168.0.26...
    99+
    2024-04-02
  • Skype for Business会议故障的示例分析
    这篇文章主要介绍了Skype for Business会议故障的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Lync/Skype ...
    99+
    2024-04-02
  • Linux问题故障定位的示例分析
    小编给大家分享一下Linux问题故障定位的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 背景有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现...
    99+
    2023-06-16
  • 案例分享:数据库镜像故障转移失败
    案例分享:数据库镜像故障转移失败 对于关键性数据库,我们配置了带有见证服务器的同步数据库镜像,来允许自动故障转移。一切运行正常,直到有一次数据中心的突然断电。数据库镜像执行了故障转移,但是运维反馈...
    99+
    2024-04-02
  • 移动端meta行的示例分析
    小编给大家分享一下移动端meta行的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! width: viewport 的宽...
    99+
    2024-04-02
  • JAVA可移植性的示例分析
    这篇文章主要介绍JAVA可移植性的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  1.JAVA作为一种编程语言:源代码可移植性  作为一种编程语言,JAVA提供了一种最简单同时也是人们最熟悉的可移植性--源...
    99+
    2023-06-03
  • k8s故障检测与自愈的示例分析
    这篇文章给大家介绍k8s故障检测与自愈的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。组件故障组件故障可以认为是节点故障的子类,只是故障来源是K8S基础组件的一部分。DNS故障...
    99+
    2024-04-02
  • Linux系统硬件故障日志的示例分析
    这篇文章主要介绍Linux系统硬件故障日志的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,在...
    99+
    2023-06-28
  • linux中GRUB引导故障排除的示例分析
    小编给大家分享一下linux中GRUB引导故障排除的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!GRUB引导故障排除我发现有时Linux启动后会直接进入...
    99+
    2023-06-27
  • java中力求故障原子性的示例分析
    这篇文章给大家分享的是有关java中力求故障原子性的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。力求故障原子性第 8 项是关于失败的。一般规则是失败的方法不应该改变方法中对象的状态。为了尽早失败,一种方...
    99+
    2023-06-04
  • MySQL中数据迁移的示例分析
    这篇文章主要为大家展示了“MySQL中数据迁移的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中数据迁移的示例分析”这篇文章吧。1.关于数据迁...
    99+
    2024-04-02
  • html中移动端1px的示例分析
    这篇文章主要为大家展示了“html中移动端1px的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html中移动端1px的示例分析”这篇文章吧。问题为什么...
    99+
    2024-04-02
  • html5中video移动端的示例分析
    这篇文章主要为大家展示了“html5中video移动端的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html5中video移动端的示例分析”这篇文章吧...
    99+
    2024-04-02
  • css3中移动属性的示例分析
    这篇文章主要为大家展示了“css3中移动属性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css3中移动属性的示例分析”这篇文章吧。transform...
    99+
    2024-04-02
  • 故障分析 | MySQL 优化案例 - 字符集转换
    作者:xuty 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 本文关键字:SQL 优化、字符集 一、背景 Server version: 5.7.24-log MySQL C...
    99+
    2021-10-14
    故障分析 | MySQL 优化案例 - 字符集转换
  • 一次故障转移的排错
    ...
    99+
    2024-04-02
  • RocketMQ设计之故障规避机制的示例分析
    这篇文章给大家分享的是有关RocketMQ设计之故障规避机制的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。NameServer为了简化和客户端通信,发现Broker故障时并不会立即通知客户端。故障规避机...
    99+
    2023-06-29
  • vue中移动端适配的示例分析
    小编给大家分享一下vue中移动端适配的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、方法一:rem 布局在主入口:i...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作