在早期版本的 Internet Information Services 中,Microsoft 提供了常规资源监视器通过使用群集的基础结构 Microsoft 支持高可用性 Web 服务器实例的组件。 但是,来完全实现本解决方案的潜在需要的自定义代码。
此外,Microsoft 提供的脚本不满足客户需求。若要通过使用 Windows Server 故障转移群集配置在群集环境中的IIS 7.0,具有启用高可用性方案中使用自定义的(脚本)代码。这样做时用户可以自定义安装程序以满足其要求。 这样,他们就可以完全控制 Web 应用程序的高可用性集成。 此外,脚本接口用于管理和监视 IIS 7.0 中引入的提供更丰富的环境比以前所提供的脚本。
注意 IIS 7.0 安装文件不正确地包括在 Clusweb.vbs 并 Clusftp.vbs 脚本文件用于 IIS 在 IIS 6.0 中的群集管理任务。不要使用这些脚本与 IIS 7.0。
我们建议管理员仔细而不是使用故障转移群集作为主要的和首选方法,用于改善可伸缩性和可用性的Web 应用程序有多个正在运行 IIS 7.0 的服务器的评估使用的网络负载平衡(NLB)。NLB 的一个好处是所有的服务器可以积极地参与并发传入的 HTTP 请求的处理。另一个好处是在一个NLB IIS 环境中它可以更容易地支持滚动更新和回滚,但仍能提供高可用性的Web 应用程序。 有关如何使用 IIS 7.0 NLB 环境中的详细信息请访问以下 Microsoft 网站:
http://learn.iis.net/page.aspx/213/network-load-balancing (http://learn.iis.net/page.aspx/213/network-load-balancing)
http://technet.microsoft.com/en-us/library/cc770558.aspx (http://technet.microsoft.com/en-us/library/cc770558.aspx)
若要配置为使用故障转移群集的IIS FTP服务器的高可用性,请执行下列操作:
http://technet.microsoft.com/en-us/library/cc771752(WS.10).aspx
如果在 Windows Server 2008 上安装下载并安装 FTP 7.5,从下列位置之一:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=b7f5b652-8c5c-447a-88b8-8cfc5c13f571
Microsoft FTP 服务 7.5 为 IIS 7.0 (x64):
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=ffb7c167-279e-48d3-8169-dea85784c4d1
在所有群集节点上安装故障转移群集功能,并创建群集。 有关详细信息请访问以下网站:
http://technet.microsoft.com/en-us/library/dd197477(WS.10).aspx
设置用于 IIS 共享配置文件共享
http://technet.microsoft.com/en-us/library/cc731844.aspx
http://technet.microsoft.com/en-us/library/cc731844.aspx
在所有群集节点上配置 IIS 共享的配置
其中一个群集节点上将导出到文件共享的共享的配置:
每个其他群集节点上使用刚才导出到文件共享该共享的配置:
注意 有关如何设置 IIS 中的共享配置的详细信息请访问下面的 Microsoft 网站:
http://learn.iis.net/page.aspx/264/shared-configuration
配置 IIS 共享配置为所有群集节点上的脱机文件
每个群集节点上启用脱机文件:
REG ADD "HKLM\System\CurrentControlSet\Services\CSC\Parameters" /v ReadOnlyCache /t REG_DWORD /d 1 /f
注意 有关如何在 IIS 中配置为共享配置脱机文件的详细信息请访问下面的 Microsoft 网站:
http://learn.iis.net/page.aspx/212/offline-files-for-shared-configuration
配置 FTP 站点,并在一个群集节点上指定其内容的位置
查找 FTP 站点内容文件所在的位置的群集节点拥有群集磁盘资源:
资源处于联机状态,配置 FTP 服务器以使用共享的磁盘的 FTP 站点内容:
通过在故障转移群集管理器中创建通用脚本配置为 FTP 站点的高可用性
对于最后一个步骤以高可用性配置为 FTP 站点,设置通用脚本资源用于监视 FTP 服务:
%systemroot%\System32\Inetsrv\Clusftp7.vbs
注意 要承载相同的故障转移群集上的多个高可用性 FTP 站点,请按照相同前面提到的步骤。 如果您确实不自定义脚本,您可以指向所有 FTP 站点的群集上相同的脚本文件。 但是,如果进行了特定于单个 FTP 站点更改为每个 FTP 站点和不同的群集共享的存储使用不同的脚本文件。 渚�� %systemroot%\System32\Inetsrv 中的第一个 FTP 站点 Clftp7 2.vbs 的第二个 Clftp7 3.vbs 对于该绗使用 Clusftp7.vbs 等等。 Each script file monitors a different FTP site.
'This script provides high availability for IIS FTP websites
'The script is applicable to:
' - Windows Server 2008: Microsoft FTP Service 7.5 for IIS 7.0 (available for download from microsoft.com)
' - Windows Server 2008 R2: FTP Service in the box
'More thorough and application-specific health monitoring logic can be added to the script if needed
Option Explicit
'Helper script functions
'Start the FTP service on this node
Function StartFTPSVC()
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='ftpsvc'")
strServiceState = objService.state
If ucase(strServiceState) = "RUNNING" Then
StartFTPSVC = 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
StartFTPSVC = False
Else
StartFTPSVC = True
End If
End If
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 FTP service is started
Function Online( )
Dim bOnline
'Make sure FTP service is started
bOnline = StartFTPSVC()
If bOnline <> True Then
Resource.LogInformation "The resource failed to come online because ftpsvc could not be started."
Online = False
Exit Function
End If
Online = true
End Function
'Cluster resource offline entry point
'On offline, do nothing.
Function Offline( )
Offline = true
End Function
'Cluster resource LooksAlive entry point
'Check for the state of the FTP service
Function LooksAlive( )
Dim objWmiProvider
Dim objService
Dim strServiceState
set objWmiProvider = GetObject("winmgmts:/root/cimv2")
set objService = objWmiProvider.get("win32_service='ftpsvc'")
strServiceState = objService.state
if ucase(strServiceState) = "RUNNING" Then
LooksAlive = True
Else
LooksAlive = False
End If
End 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 here
Function IsAlive()
IsAlive = LooksAlive
End Function
'Cluster resource Open entry point
Function Open()
Open = true
End Function
'Cluster resource Close entry point
Function Close()
Close = true
End Function
'Cluster resource Terminate entry point
Function Terminate()
Terminate = true
End Function