色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

WINDOWS2016故障轉(zhuǎn)移群集(圖文教程)

瀏覽:151日期:2023-02-28 17:21:13

WIN2016故障轉(zhuǎn)移群集

準(zhǔn)備工作:

主機(jī)名

IP

域名

WINA

192.168.0.24

WINA.NET

WINB

192.168.0.25

WINB.NET

WINC

192.168.0.26

WINC.NET

所有主機(jī)配置主機(jī)信息 修改好主機(jī)名IP DNS為本機(jī)IP (以單臺(tái)主機(jī)A為例)

互相ping測(cè)試連通性 (以單臺(tái)主機(jī)A為例)

所有主機(jī)安裝角色功能 DNS和故障轉(zhuǎn)移群集 (以單臺(tái)主機(jī)A為例)

所有主機(jī)配置DNS解析記錄 并測(cè)試解析

新建正向查找區(qū)域NET

新建反向查找區(qū)域

新建正向查找區(qū)域記錄 默認(rèn)已生成本機(jī)記錄

新建反向查找記錄 (我們新建正向記錄勾選了PTR指針 默認(rèn)已經(jīng)新建了B/C主機(jī)的反向記錄) 現(xiàn)在只需新建一條本機(jī)的PTR記錄

測(cè)試解析

A主機(jī)配置故障轉(zhuǎn)移群集 B/C主機(jī)連接到群集 指定虛擬IP192.168.0.88

主機(jī)A創(chuàng)建群集TEST

主機(jī)B/C連接到群集TEST

主機(jī)B(192.168.0.25)

查看群集當(dāng)前在用主機(jī)為哪臺(tái) (網(wǎng)卡應(yīng)有88IP)

所有主機(jī)安裝IIS 80端口為默認(rèn)網(wǎng)頁(yè) 訪問(wèn)測(cè)試

關(guān)閉掉在用主機(jī)(網(wǎng)卡有88的主機(jī) 同時(shí)只會(huì)有一臺(tái)) 查看在用主機(jī)被選為了哪臺(tái) 192.168.0.88:80是否還可以打開(kāi) (使用網(wǎng)絡(luò)中其他主機(jī)來(lái)打開(kāi)網(wǎng)頁(yè))

關(guān)閉掉A主機(jī)后 B主機(jī)擁有了88IP 網(wǎng)頁(yè)依然可以打開(kāi)

繼續(xù)關(guān)閉B主機(jī)

此時(shí)C主機(jī)擁有了88IP 網(wǎng)頁(yè)依然可以打開(kāi)

參考:

注:

經(jīng)后期測(cè)試 建議不要將群集所有主機(jī)全部宕機(jī) 否則會(huì)出現(xiàn)問(wèn)題

進(jìn)階:

以上內(nèi)容為群集搭建及群集中某主機(jī)宕機(jī)后恢復(fù)業(yè)務(wù)的情況

下面記錄一種主機(jī)沒(méi)有宕機(jī) IIS站點(diǎn)掛掉無(wú)法提供服務(wù)的情況

新建文本文檔 修改為IIS.vbs 內(nèi)容如下(虛線內(nèi)內(nèi)容) 注意修改網(wǎng)站和應(yīng)用程序池名稱(默認(rèn)無(wú)需修改)

"<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" "網(wǎng)站名稱APP_POOL_NAME = "DefaultAppPool" "應(yīng)用程序池名 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 ForEnd 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 ForEnd 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 ThenGetWebSiteState = -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 ThenGetAppPoolState = -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" ThenStartW3SVC = True    Else"If the service is not running, try to start itresponse = objService.StartService() "response = 0  or 10 indicates that the request to start was acceptedIf ( response <> 0 ) and ( response <> 10 ) Then    StartW3SVC = FalseElse    StartW3SVC = TrueEnd 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 ThenStartAppPool = TrueExit 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 ThenStartAppPool = True    ElseStartAppPool = 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 startedStartWebSite = TrueExit 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 ThenStartWebSite = True    ElseStartWebSite = 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 ThenResource.LogInformation "The resource failed to come online because w3svc could not be started."Online = FalseExit Function    End If      "Make sure the application pool is started    bOnline = StartAppPool()    If bOnline <> True ThenResource.LogInformation "The resource failed to come online because the application pool could not be started."Online = FalseExit Function    End If      "Make sure the website is started    bOnline = StartWebSite()    If bOnline <> True ThenResource.LogInformation "The resource failed to come online because the web site could not be started."Online = FalseExit 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 ThenResource.LogInformation "The resource failed because the " & SITE_NAME & " web site is not started."LooksAlive = falseExit 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>

將文件復(fù)制到所有群集主機(jī)的相同目錄下 如:C:\Windows\System32\inetsrv主機(jī)A打開(kāi)故障轉(zhuǎn)移群集管理器 連接到群集TEST

配置IIS故障轉(zhuǎn)移

此時(shí)我們?cè)谌杭陆巧斜砝锟梢钥吹絀IS故障轉(zhuǎn)移群集角色

查看一下WINC(192.168.0.26)主機(jī)的網(wǎng)卡情況

測(cè)試訪問(wèn)http://192.168.0.99 -------- 可以打開(kāi)

現(xiàn)在我們模擬WINC主機(jī)IIS網(wǎng)頁(yè)服務(wù)掛掉/端口無(wú)法訪問(wèn) 打開(kāi)WINC主機(jī)IIS管理器 展開(kāi)網(wǎng)頁(yè) 停止默認(rèn)網(wǎng)站

再次打開(kāi)瀏覽器 打開(kāi)http://192.168.0.99 ----- 依然可以打開(kāi)

主機(jī)A上查看群集角色 已經(jīng)自動(dòng)切換到WINB提供web服務(wù)

查看WINB主機(jī)網(wǎng)卡信息 99IP已自動(dòng)切換到WINB 我們打開(kāi)的是WINB的網(wǎng)頁(yè)

同理 我們關(guān)閉WINB的IIS網(wǎng)站 99又會(huì)切換到WINA 訪問(wèn)依然不受影響

至此 我們實(shí)現(xiàn)了 主機(jī)在非宕機(jī)情況下 IIS站點(diǎn)掛掉后切換主機(jī)提供服務(wù)的情況

注:

1、本測(cè)試中99IP對(duì)應(yīng)的不是整個(gè)IIS服務(wù) 只是一個(gè)站點(diǎn)(默認(rèn)站點(diǎn))

2、用戶上傳的附件需要一個(gè)群集共用的存儲(chǔ)介質(zhì) 目前還未解決 待完善

參考:

到此這篇關(guān)于WINDOWS2016故障轉(zhuǎn)移群集(圖文教程)的文章就介紹到這了,更多相關(guān)WINS2016故障轉(zhuǎn)移群集內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: Windows IIS
主站蜘蛛池模板: 最新国产三级 | 亚洲国产第一区二区香蕉 | 怡红院成人永久免费看 | 亚洲精品成人网久久久久久 | 台湾精品视频在线观看 | 狠狠色丁香婷婷综合小时婷婷 | 手机看片日韩国产 | 96精品视频在线播放免费观看 | 美美女高清毛片视频免费观看 | 香蕉久| 男人添女人下面免费毛片 | 大毛片a大毛片 | 国产成人www免费人成看片 | 精品国产自在现线看久久 | 一级伦理电线在2019 | 欧美视频一区二区三区 | a级成人高清毛片 | 国产日韩欧美一区二区三区综合 | 久草影视在线观看 | 欧美性色生活片天天看99 | 99久久免费看精品国产一区 | 国产精品久久在线 | 成人久久影院 | 日韩三级小视频 | 欧美一区亚洲 | 日本在线毛片视频免费看 | 国内精品伊人久久久影视 | 亚洲精品国产精品国自产 | 欧美日本一道高清二区三区 | 欧美成人精品福利在线视频 | 老色歌uuu26 老师张开腿让我爽了一夜视频 | 欧美日韩高清 | www亚洲一区| 三级黄色免费网站 | 久久国产免费一区 | 国产高清在线看 | 久久国产视频在线观看 | 天天看夜夜 | 欧美日韩中文字幕在线观看 | 久久久精品国产免费观看同学 | 日韩精品欧美国产精品亚 |