Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo descreve como configurar serviços de informações da Internet (IIS) 7.0 em um cluster de failover do Microsoft Windows Server 2008. Os procedimentos neste artigo se aplicam somente ao serviço de publicação na Web. Para obter instruções sobre como configurar o serviço de publicação FTP em um cluster de failover, consulte:
974603
(http://support.microsoft.com/kb/974603/
)
Como configurar FTP 7.5 para IIS 7.0 em um cluster de failover do Windows Server 2008
Em versões anteriores do IIS, a Microsoft forneceu componentes do monitor de recurso genérico para oferecer suporte a instâncias de servidor Web de alta disponibilidade usando a infra-estrutura do Microsoft Clustering. No entanto, o código personalizado foi necessária para realizar o potencial de uma solução totalmente. Além disso, os scripts genéricos Microsoft fornecido não atendeu necessidades do cliente. Para configurar o IIS 7.0 em um ambiente agrupado usando clusters de failover do Windows Server, você tem que usar um código personalizado (script) para habilitar um cenário de alta disponibilidade. Quando você fizer isso, os usuários podem personalizar a instalação para atender aos seus requisitos. Isso dá a eles controle completo sobre a integração de alta disponibilidade de aplicativos. Além disso, as interfaces de script para administração e monitoramento que foram introduzidas no IIS 7.0 fornecem um ambiente mais sofisticado do que os scripts fornecidos anteriormente.
Observação Arquivos de instalação do IIS 7.0 incorretamente incluem o clusweb.vbs e tarefas administrativas de cluster clusftp.vbs script arquivos que são usados no IIS 6.0 para o IIS. Não use esses scripts com o IIS 7.0.
A Microsoft recomenda que os administradores avaliar cuidadosamente o uso de rede NLB (balanceamento de carga) de como o método principal e preferencial para melhorar a escalabilidade e disponibilidade de aplicativos com vários servidores executando o IIS 7.0, em oposição a usando o cluster de failover. Um dos benefícios do NLB é que todos os servidores podem participar ativamente no tratamento de solicitações HTTP de entrada simultâneo. Outro benefício é que em um ambiente NLB IIS, pode ser muito mais fácil oferecer suporte a atualizações sem interrupção e reversões enquanto ainda fornece alta disponibilidade dos aplicativos. Para obter mais informações sobre como usar o IIS 7.0 em um NLB ambiente, consulte os seguintes sites:
É importante considerar que IIS de cluster por meio de serviços IIS de cluster não sempre garante uma solução de alta disponibilidade para aplicativos. Enquanto os serviços do IIS (especificamente o serviço WWW) podem estar em funcionamento, processo de hospedagem do pool de aplicativo específico pode ter sido finalizado ou o aplicativo pode gerar erros de servidor interno HTTP. Os aplicativos de cluster e monitorar sua integridade usando um script personalizado são a maneira correta e recomendada para atingir um cluster IIS de alta disponibilidade usando clusters de failover. Abaixo está um exemplo de script que monitora o estado de um pool de aplicativos para determinar se ele é iniciado ou não.
Para configurar a alta disponibilidade para servidores IIS Web usando o cluster de failover, siga estas etapas. As etapas 3 a 7 são descritas em mais detalhes abaixo.
Instale a função de servidor Web em todos os nós de cluster. Para obter detalhes, visite o seguinte site:
Configurar um compartilhamento de arquivo que será usado para configuração compartilhada do IIS
Crie um usuário que acessará o compartilhamento será usado para a configuração compartilhada do IIS.
Crie o compartilhamento de arquivo. Este compartilhamento será usado para armazenar a configuração compartilhada do IIS que será compartilhada entre o IIS em todos os nós de cluster. Há várias opções:
Em um servidor autônomo não é parte do cluster de failover, crie um compartilhamento de arquivo.
No outro cluster de failover do Windows Server, crie um compartilhamento de arquivo alta disponibilidade. Para obter detalhes, visite o seguinte site:
No mesmo cluster de failover que hospedará o site de alta disponibilidade, crie um compartilhamento de arquivo alta disponibilidade. Para obter detalhes, visite o seguinte site:
Defina as permissões no compartilhamento que você criou na etapa 2. Dar ao usuário que criou na etapa 1 permissões de controle total para o compartilhamento de arquivo e permissões NTFS.
Confirme que todos os nós de cluster são capazes de navegar para o compartilhamento de arquivo. O caminho para o compartilhamento de arquivo é \\ <fileserver>\ <share>.
Configurar configuração compartilhada do IIS em todos os nós de cluster
Observação Há um problema com compartilhada configuração do IIS no Windows 2008 Server devido a privilégios ausentes para o aplicativo Host Helper Service. Para configuração compartilhada funcione, você deve seguir essas etapas quando configurar configuração compartilhada IIS no Windows 2008 Server.
Após concluir essas etapas em cada Windows 2008 Server no cluster, continue a configurar configuração compartilhada IIS conforme descrito nesta seção.
Em um de nós de cluster, exporte a configuração compartilhada para o compartilhamento de arquivo:
Navegue para Ferramentas administrativas e clique em Gerenciador do Internet Information Services (IIS).
No painel esquerdo, clique no nó de nome de servidor.
Clique duas vezes no ícone de Configuração compartilhada.
Clique na página configuração compartilhada, em Exportar configuração no painel de ações (painel direito) para exportar os arquivos de configuração do computador local para outro local.
Na caixa de diálogo Exportar configuração, digite o caminho do compartilhamento de arquivo (\\ <fileserver>\ <share>) na caixa caminho físico.
Clique em Conectar como e digite o nome de usuário e senha para a conta de usuário que tenha acesso ao compartilhamento no qual configuração compartilhado está armazenado e clique em OK. Essa conta será usada para acessar o compartilhamento. Você deve usar uma conta restrita do Active Directory que não é o administrador do domínio.
Na caixa de diálogo Exportar configuração, digite uma senha que será usada para proteger as chaves de criptografia e clique em OK.
Na página Configuração compartilhada, clique para selecionar a caixa de seleção Ativar configuração compartilhada.
Digite o caminho físico, a conta de usuário e senha que você inseriu anteriormente e clique em Aplicar no painel de ações.
Na caixa de diálogo Senha de chaves de criptografia, digite a senha de chave de criptografia definido anteriormente e clique em OK.
Na caixa de diálogo Configuração compartilhada, clique em OK.
Clique em OK.
Em cada um de nós de cluster, use a configuração compartilhada exportado para o compartilhamento de arquivo:
Navegue para Ferramentas administrativas e clique em Gerenciador do Internet Information Services (IIS).
Clique no nó de nome de servidor.
Clique duas vezes no ícone de Configuração compartilhada.
Na página Configuração compartilhada, clique para selecionar a caixa de seleção Ativar configuração compartilhada.
Digite o caminho físico do compartilhamento de arquivo (\\ <fileserver>\ <share>), a conta de usuário e senha inseridos anteriormente e clique em Aplicar, no painel de ações.
Na caixa de diálogo Senha de chaves de criptografia, digite a senha de chave de criptografia definido anteriormente e clique em OK.
Na caixa de diálogo Configuração compartilhada, clique em OK.
Clique em OK.
Observação Para obter mais informações sobre como definir configurações compartilhadas no IIS, visite o seguinte site:
Navegue para o servidor de arquivos do computador. Clique com o botão direito do mouse no compartilhamento que contém a configuração do IIS compartilhada e, em seguida, clique em Sempre disponível offline.
Observe que, se você configurar o compartilhamento de arquivo para ser altamente disponível no mesmo cluster de failover que hosts IIS nós, a opção sempre disponível offline não aparecerá quando você clica com o botão direito do mouse no compartilhamento se o nó do cluster que estão no está hospedando o servidor de arquivo altamente disponíveis. Você precisará mover o aplicativo de servidor de arquivo alta disponível para outro nó.
No painel de controle, abra Arquivos Offline. Clique em Abrir Central de sincronização e, em seguida, clique em Schedule.
Agende uma sincronização de arquivos offline para cada dia ou de acordo com o requisito. Você também pode configurar a sincronização offline para executar a cada poucos minutos Mesmo se você não configurar um agendador quando alterar algo no arquivo applicationhost.config, a alteração é refletida no servidor Web.
Observação Para obter mais informações sobre como configurar arquivos offline para uma configuração compartilhada no IIS, visite o seguinte site:
Configurar o site (incluindo o pool de aplicativos associado) e especifique o local de seu conteúdo em um nó de cluster
Localize o nó de cluster que possui o recurso de disco do cluster onde residirá os arquivos de conteúdo do site:
Navegue para Ferramentas administrativas e clique em Gerenciador de cluster de failover.
Conectar-se ao cluster. Se você estiver em um de nós de cluster, o cluster será exibido na lista automaticamente.
Em Storage, localize o recurso de disco no qual o conteúdo da página da Web residirá. Para fazer isso, expanda a árvore de armazenamento para o recurso de disco. Certifique-se de que o armazenamento não é usado por qualquer outro aplicativo de alta disponibilidade do cluster. Você encontrará o armazenamento em Armazenamento disponível.
Observe o nó do cluster no qual esse recurso está online. Você irá configurar o IIS no nó de cluster.
Observe o nome de recurso de disco de cluster. Você o usará para os arquivos de conteúdo.
No nó do cluster no qual o recurso está online, configure o servidor Web para usar o disco compartilhado para o conteúdo do site:
Navegue para Ferramentas administrativas e clique em Gerenciador do Internet Information Services (IIS).
No painel esquerdo, expanda o nó de nome de servidor.
Expanda sites e clique em sites, o site que você está configurando.
No painel direito, selecione Configurações avançadas em Gerenciar Site.
Localize a propriedade físico em configurações gerais e digite o local onde estão localizados os arquivos de conteúdo do site. Esse é o local do recurso de disco de cluster que você anotou na etapa 5 do procedimento anterior.
Configurar a alta disponibilidade para seu site criando um script genérico no Gerenciador de cluster de failover
Para a última etapa configurar a alta disponibilidade para servidores IIS Web, configure o recurso script genérico que será usado para monitorar o site e o pool de aplicativos para o site:
Em cada nó de cluster, copie o script no final deste artigo para Windows\System32\inetsrv\Clusweb7.vbs.
Por padrão, o script monitora um site denominado "site padrão" e um pool de aplicativos chamado "DefaultAppPool". Se não for o site correto e o pool de aplicativos, altere variáveis SITE_NAME e APP_POOL_NAME. Certifique-se de que o mesmo site e o pool de aplicativos no script existem em todos os nós de cluster. Observe que os nomes diferenciam maiúsculas de minúsculas.
Navegue para Ferramentas administrativas e clique em Gerenciador de cluster de failover.
Conectar-se ao cluster. Se você estiver em um de nós de cluster, o cluster será exibido na lista automaticamente.
Clique com o botão direito do mouse no cluster e clique em Configurar um serviço ou aplicativo. Um assistente cria a carga de trabalho de alta disponibilidade.
Clique em script genérico.
Selecione o arquivo de script da seguinte caminho: %systemroot%\System32\Inetsrv\clusweb7.vbs
Defina o nome Client Access Point (CAP) para o nome do site que os clientes usarão para se conectar ao site alta disponibilidade. Especifica IPs estática para usar o site do CAP. Se você estiver usando DHCP, essa opção não será exibida.
Na etapa Select armazenamento, selecione o disco de cluster compartilhado no qual residem os arquivos de conteúdo do site. O armazenamento deve ser não utilizado por qualquer outro aplicativo de alta disponibilidade do cluster. Observe que se o compartilhamento de arquivo é usado para a configuração do IIS compartilhada é hospedado no mesmo cluster, um recurso de disco diferente deve ser usado aqui.
Após confirmar as configurações, o assistente irá criar dependências entre os recursos, recursos de cluster e o grupo de cluster e coloque os recursos online.
Observação Para hospedar vários alta disponibilidade Web sites no mesmo cluster de failover, siga as mesmas etapas acima. No entanto, use um arquivo de script diferente para cada site e o armazenamento compartilhado em cluster diferente. Por exemplo, systemroot%\System32\Inetsrv %, use clusweb7.vbs para o site primeiro, 2.vbs clweb7 para 3.vbs clweb7 segundo, para o terceiro e assim por diante. Cada arquivo de script monitora um site diferente e o pool de aplicativos.
'<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_NAME
DIM APP_POOL_NAME
Dim START_WEB_SITE
Dim START_APP_POOL
Dim SITES_SECTION_NAME
Dim APPLICATION_POOLS_SECTION_NAME
Dim CONFIG_APPHOST_ROOT
Dim 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 = 0
START_APP_POOL = 0
STOP_WEB_SITE = 1
SITES_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 node
Function 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 node
Function 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 website
Function 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 ApplicationPool
Function 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").Value
End Function
'Start the w3svc service on this node
Function 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 website
Function 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 website
Function 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 website
Function 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 started
Function 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 website
Function Offline( )
StopWebSite()
Offline = true
End Function
'Cluster resource LooksAlive entry point
'Check for the health of the website and the application pool
Function 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 = true
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
'<end script sample>
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 970759
(http://support.microsoft.com/kb/970759/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
Diga-nos o porque e o que podemos fazer para melhorar esta informação
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.