na Parte 1 desta série, mostrei como preparar seu cluster de vários sites, incluindo a configuração do quórum de maioria de compartilhamento de nó e arquivo. Na Parte 2, vimos um exemplo de vídeo de como integrar o SteelEye DataKeeper, uma das soluções de replicação de cluster disponíveis, com clustering de failover para configurar um cluster de failover Hyper-V de vários sites. Na Parte 3, examinaremos como o Microsoft SQL Server 2008 pode ser configurado em um cluster de vários sites com Cluster de Failover do Windows Server 2008 e SteelEye DataKeeper Cluster Edition.
Primeiro, Por que você deseja implantar um cluster do SQL server de vários sites? O SQL Server vem com uma variedade de opções de alta disponibilidade, incluindo envio de log, replicação (transacional, mesclagem, instantâneo), espelhamento de banco de dados e clusters de failover. Há um ótimo artigo que fala sobre as opções de alta disponibilidade no SQL Server 2008, então não vou reinventar a roda aqui. Se você quiser saber mais sobre todas as opções, dê uma olhada neste artigo de Ross Mistry, opções de alta disponibilidade no SQL Server 2008.
Se você ler o artigo, Ross’ resumo, faz a seguinte afirmação…
“Claramente, o cluster de failover é a melhor escolha para reduzir o tempo de inatividade do sistema e fornecer maior disponibilidade de aplicativos para toda a instância do SQL Server em um site; no entanto, um cluster de failover não protege contra falhas de disco e requer uma SAN.”
e se você pudesse ter todos os benefícios que Ross descreve e também proteger contra falha de disco e eliminar a necessidade de uma SAN? Bem, a boa notícia é que é exatamente o que você pode fazer implementando um cluster de vários sites do Microsoft SQL Server 2008 no Windows Server 2008. O cluster de vários sites do SQL Server 2008 pode ser um pouco impróprio. Não precisa necessariamente ser implantado em locais geograficamente dispersos. Os servidores podem estar localizados no mesmo rack, na mesma sala, no mesmo prédio ou em todos os continentes; realmente não importa. O importante é que você está eliminando seu armazenamento como um único ponto de falha e se você optar por localizar seus nós de cluster em diferentes locais físicos, então você também construiu a resiliência do site.
uma das perguntas mais comuns e pontos de confusão sobre o cluster de failover do SQL Server 2008 e do Windows Server 2008 é o suporte para falha em sub-redes. Sim, o cluster de Failover do Windows Server 2008 suporta falhas entre sub-redes para a maioria dos aplicativos, no entanto, o SQL Server 2008 não é um desses aplicativos. Tanto quanto eu sei, o SQL Server 2008 R2 também não suportará falhas entre sub-redes quando for lançado. Meu entendimento é que a equipe SQL está trabalhando no suporte para failover de sub-rede cruzada, mas será suportada algum tempo depois que o SQL Server 2008 R2 for lançado. Portanto, por enquanto, você terá que abranger sua sub-rede se desejar separar seus nós geograficamente.
agora que você determinou implantar um cluster do SQL server de vários nós, aqui estão as etapas que você precisará seguir.
CONFIGURE seu CLUSTER básico
siga as etapas na Parte 1 desta série para configurar um cluster básico de 2 nós com um Quorum de maioria de compartilhamento de nó e arquivo.
configurar sua replicação
implantar um cluster de vários sites exigirá que você trabalhe muito de perto com seu fornecedor de replicação durante esta parte da configuração. Cada fornecedor terá instruções muito específicas sobre como configurar a replicação e criar os recursos de armazenamento a serem usados em seu cluster. Para os fins desta demonstração, usarei SteelEye DataKeeper Cluster Edition para replicar a unidade E do servidor chamado primário para o servidor chamado secundário. A unidade e no primário e secundário são apenas volumes anexados locais e não fazem parte de qualquer SAN. Contanto que a unidade e apareça como um disco conectado local, o DataKeeper pode replicá-lo de um servidor para outro. Você pode misturar e combinar SAS, iSCSI, SAN, VHD ou qualquer outro tipo de armazenamento, pois o DataKeeper é independente do armazenamento.
depois de configurar seu cluster básico conforme descrito na Parte 1 da minha série, execute a configuração do DataKeeper.exe para instalar SteelEye DataKeeper Cluster Edition em ambos os nós do cluster. Você será solicitado a inserir sua chave de licença no final da instalação. Digite sua licença e reinicie seus servidores quando solicitado. Agora você está pronto para criar seu espelho. Inicie a GUI do DataKeeper e siga as instruções abaixo para criar seu espelho.
clique em “Conectar ao servidor”.
Digite o nome do primeiro servidor. Clique Em Conectar.
Digite o nome do segundo servidor, clique em Conectar
Agora clique em Criar Tarefa. Isso iniciará o Assistente de criação de trabalho.
dê um nome e uma descrição ao seu trabalho. Pode ser o que quiser.
Escolha o seguinte:
- Origem do Servidor onde os dados serão replicados a partir de
- adaptador de Rede – a rede, onde o tráfego de replicação de viagens
- Volume – o volume que você deseja replicar
Clique em Avançar para continuar.
Escolha o seguinte:
- Servidor de destino, onde os dados serão replicados para
- adaptador de Rede – a rede, onde o tráfego de replicação de viagens
- Volume – o volume que você deseja replicar
Clique em Avançar para continuar.
Escolha o seguinte:
- o Nível de Compactação – Se você tem 100 Mbps ou mais rápida de rede para replicação, deixá-lo definido como nenhum. Se você tiver uma WAN menor que 100 Mbps, poderá se beneficiar da ativação da compactação. As configurações em algum lugar no meio tendem a fornecer o melhor desempenho de compactação vs. sobrecarga da CPU associada à ativação da compactação.
- assíncrono vs. A replicação síncrona-assíncrona é geralmente aceitável na maioria dos ambientes e é definitivamente necessária em ambientes WAN de alta latência. Eu escrevi um post de blog inteiro sobre este tópico, então se você tiver alguma dúvida, confira meu artigo sobre replicação assíncrona vs. síncrona.
- largura de banda máxima – você pode pensar nisso como um QOS de “homem pobre”. Se você quiser garantir que a replicação Nunca exceda um certo limite de sua capacidade de WAN, você pode colocar um limitador na quantidade de largura de banda que pode consumir. A menos que você tenha um bom motivo para configurá-lo, é melhor deixá-lo definido como 0.
clique em Concluído para criar seu espelho.
Agora, se você der uma olhada no seu DataKeeper GUI, será semelhante à seguinte.
Depois de ter criado seu espelho, você precisa fazer seu espelho disponível no Microsoft Cluster “de Armazenamento Disponível”. Existem algumas maneiras de fazer isso, mas a maneira mais direta é usar o Windows PowerShell CLI. Abaixo está um exemplo que mostra como tirar o espelho existente que acabamos de criar na unidade E e adicionar ao cluster de Armazenamento Disponível””, mova-a para o nó PRIMÁRIO e trazê-lo em serviço
Import-Module FailoverClusters
Adicionar-ClusterResource -Nome “DataKeeper E do Volume” -ResourceType “DataKeeper Volume” -Grupo de Armazenamento Disponível “”
Get-ClusterResource “DataKeeper Volume E” | Set-ClusterParameter VolumeLetter E
Mover-ClusterGroup “de Armazenamento Disponível” Nó primário
Iniciar-ClusterResource “DataKeeper E do Volume”
Para mais informações sobre o PowerShell e os comandos disponíveis para uso com Clustering de Failover, confira esta ótima postagem do blog de Symon Perriman da equipe de Clustering de Failover da Microsoft.
http://blogs.msdn.com/clustering/archive/2008/12/20/9243367.aspx
agora você vai repetir as etapas acima para adicionar quaisquer espelhos adicionais que você usará em seu cluster. No nosso caso, vamos criar um espelho da unidade F e usá-lo para agrupar o MSDTC. Depois de adicionar seus espelhos adicionais e adicioná-los ao armazenamento disponível, a GUI do DataKeeper deve ser algo assim.
E o seu Gerenciador de Cluster de Failover GUI deve ter esta aparência.
OBSERVAÇÃO IMPORTANTE – Existe uma correcção que é necessário para o suporte DTC com 3 recursos de disco de terceiros. Consulte o seguinte artigo da KB e aplique o howfix a todos os nós do cluster. http://support.microsoft.com/kb/978476
SQL 2008 é muito dependente de MSDTC, por isso é altamente recomendável que você agrupar o recurso MSDTC antes de agrupar seu recurso SQL. Os artigos a seguir são fornecidos para sua referência para configuração e gerenciamento de seu recurso MSDTC.
http://technet.microsoft.com/en-us/library/cc770748(WS.10).aspx
http://technet.microsoft.com/en-us/library/cc771540(WS.10).aspx
você começará abrindo a GUI do Gerenciador de Cluster de Failover e, em seguida, escolha “Configurar um serviço ou aplicativo”.
Você irá, em seguida, escolha “Distributed Transaction Coordinator” e clique em Avançar
Dar o recurso MSDTC um nome e um endereço IP exclusivo. Estes devem ser exclusivos do MSDTC e não o mesmo que você usará mais tarde ao criar seu recurso SQL.
Escolha o volume onde você irá armazenar os dados para o recurso MSDTC. No nosso caso, estamos escolhendo a unidade F replicada.
Confirmar suas informações e clique em Avançar para continuar.
Parabéns, você configurou com êxito o recurso DTC. Clique Em Concluir.
Estamos prontos para começar a instalação do primeiro nó do Cluster do SQL Server, no entanto, há uma coisa que precisamos fazer em preparação – Slip Stream SQL 2008 SP1 para o SQL Server 2008 RTM mídia de instalação.
deslize o fluxo SQL SP1 em sua mídia de instalação do SQL 2008
o que descobri é que o SQL Server 2008 não será instalado no Windows Server 2008 R2 sem primeiro slipstreaming SQL Server 2008 SP1 em sua mídia de instalação do SQL 2008. Aqui está um ótimo artigo que descreve como slipstream SQL Server 2008 RTM e Service Pack 1. Depois de ler esse artigo e slipstream SP1 com sucesso no SQL 2008 RTM, encontrei o seguinte artigo da Microsoft KB que descreve o mesmo procedimento. Você pode obter um erro semelhante ao seguinte se tentar instalar o SQL sem o primeiro slipstreaming SP1 na mídia.
houve um erro ao definir a propriedade privada ‘RequireKerberos’ como valor ‘1’
segui as instruções detalhadas no primeiro artigo e copiei meu SQL 2008 com instalação SP1 para a unidade C:\ de ambos os nós em meu cluster. Nas instruções abaixo, farei a instalação a partir do disco local de cada nó do cluster.
instalando seu primeiro nó de CLUSTER
agora que você tem sua mídia de instalação do SQL Server 2008 SP1 pronta para uso, você está pronto para instalar seu primeiro nó SQL. Há um grande “gotcha” quando se trata de instalar SQL em um cluster de vários nós. Para instalar o SQL em um cluster de vários nós, você deve primeiro passar o processo de validação do Cluster de Failover do Windows Server 2008. Infelizmente, um cluster de vários sites está isento de passar no teste relacionado ao armazenamento, para que você nunca seja capaz de realmente “passar” a validação no que diz respeito ao SQL. Foi preciso uma pequena investigação da minha parte, mas o que descobri é que existe um parâmetro de linha de comando que permite pular o teste de validação na instalação do SQL 2008. Aqui está a linha de comando.
Setup / SkipRules=Cluster_VerifyForErrors / Action = InstallFailoverCluster
para iniciar a configuração do SQL, abra uma janela de comando, navegue até o SQL 2008 com o diretório de instalação do SP1 e digite o comando conforme mostrado abaixo.
se tudo correr como planejado, você deve ver a tela abaixo. Clique em OK para continuar.
Introduza a sua chave de produto e clique em Avançar
Aceitar o contrato de licença e clique em Avançar
Clique em instalar para Instalar os Arquivos de Suporte de Instalação
No final da Instalação para os Arquivos de Suporte, você receberá um aviso. Clique em Mostrar detalhes e você verá a mensagem abaixo. Você pode clicar em Avançar, ignorando esta mensagem, pois ela é esperada em um cluster de armazenamento multi-site ou não compartilhado.
Escolha as características que você deseja instalar e clique em Avançar. Deixe o diretório” recurso compartilhado ” definido para a unidade C, pois os binários SQL não devem ser instalados no volume replicado.
na próxima tela, você escolherá um nome de rede para o seu SQL Server. Este será o nome ao qual todos os clientes se conectarão. Supondo que esta seja a instância padrão, deixe o ID da instância e o diretório raiz da instância definidos como padrões. Não mova o diretório raiz da instância para o volume replicado.
é recomendável que você tenha contas de domínio separadas para SQLServer e SQLAgent. Você pode reservar um tempo para criar essas contas agora, se ainda não tiver feito isso. Essas contas não exigem permissões especiais, pois esse processo de instalação lhes dará as permissões necessárias.
confirme se você tem espaço em disco suficiente e clique em Avançar para continuar.
escolha as configurações padrão para permitir que um novo grupo de recursos de cluster chamado “SQL Server (MSSQLSERVER)” seja criado.
Escolha uma replicado volume que ainda está disponível, no nosso caso, a unidade E:\. Clique em Avançar para continuar.
Agora você escolherá o endereço IP que deseja associado ao recurso SQL cluster. Você pode deixá-lo definido para usar DHCP, se desejar.
Escolha suas configurações de segurança e clique em Avançar
Adicionar quaisquer administradores do SQL Server e escolher o seu modo de autenticação e, em seguida, clique em Avançar
Escolha o seu Relatório de Erro e Uso de opções e clique em Avançar
Você vai voltar a ver alguns avisos relacionados com o processo de validação. Você pode ignorar essas mensagens como elas são esperadas em um cluster do SQL Server de vários sites.
clique em Instalar para iniciar o processo de instalação
se tudo for instalado conforme o esperado, você verá as seguintes telas. Clique em Avançar e feche para concluir a instalação.
Parabéns, você instalou com sucesso o primeiro nó do seu Cluster SQL Server de vários sites. Agora vamos instalar o segundo nó do cluster.
instalar o segundo nó do CLUSTER
instalar o segundo nó do cluster é semelhante à instalação do primeiro nó. Precisamos executar o SQL Setup mais uma vez a partir da linha de comando para que possamos pular o processo de validação. Então, a partir do segundo nó, abra seu prompt de comando e execute o seguinte comando.
-
Instalar o SQL 2008 SP1 intercalado (setup) no 2º nó usando o seguinte comando:
o programa de Configuração /SkipRules=Cluster_VerifyForErrors /Ação=AddNode /INSTANCENAME=”MSSQLSERVER”
*Nota: Este presume que você instalou a instância padrão no 1º nó
Que vai lançar o assistente de instalação, como mostrado abaixo. Clique em OK para continuar.
digite sua chave de produto e clique em Avançar.
Aceite os termos de licença e clique em Avançar
Clique em instalar para instalar os arquivos de Suporte de Instalação.
você pode mais uma vez ignorar o aviso de que alguns testes de validação de cluster foram ignorados. Isso é esperado em um cluster de vários sites e clusters de armazenamento não compartilhados.
verifique se você está adicionando o nó à instância direita e clique em Avançar.
Adicione as palavras-passe para as contas de serviço e clique em Avançar
Escolha o seu Relatório de Erro e Uso de opções e clique em Avançar
mais uma Vez, ignorar o aviso sobre o ignorada operações.
clique em Instalar para iniciar o processo de instalação.
se tudo correr como esperado, você deve ver a seguinte tela.
agora que você tem um cluster de dois nós totalmente funcional, você provavelmente deve testar as coisas fazendo alguns switchovers manuais. Clique com o botão direito do mouse no recurso e escolha “Mover para o nó secundário”.
se tudo estiver configurado corretamente, a GUI do Cluster de Failover deve ser a seguinte.
conclusão
acredito que os clusters SQL com armazenamento replicado fazem muito sentido. O armazenamento sempre foi um único ponto de falha dos clusters tradicionais. Você pode eliminar esse único ponto de falha implantando um cluster do SQL Server com armazenamento replicado do SteelEye ou de qualquer outro parceiro de replicação de Cluster de vários sites da Microsoft. Espero que você tenha encontrado este artigo informativo. Se você tiver alguma dúvida ou sugestão, adicione seus comentários!