Iremos abordar numa série de 3 capítulos instalação de alta disponibilidade do SQL Server, cluster SQL e A lwaysOn.
Vou pular os detalhes de aplicações do dia a dia de alta disponibilidade e vamos direto ao que interessa, parte prática da coisa:
Projetando e configurando cluster
O cluster Windows é a base para construção de um cluster de failover do SQL Server. Este artigo visa indicar as melhores práticas de configuração.
Importante: Hardware compatível.
A causa mais frequente de falhas de um cluster é um hardware que não foi certificado para cluster. O hardware para cluster deve aparecer no Windows Catalog. A solução de hardware inteira deve designar inteira se é certificada para cluster. É necessário conferir as categorias de cluster do Windows Catalog que podem ser encontradas em: https://support.microsoft.com/pt-br/help/943984/the-microsoft-support-policy-for-windows-server-2008-or-windows-server-2008-r2-failover-clusters
https://www.windowsservercatalog.com/results.aspx?text=cluster+&bCatId=1282
Componentes do cluster do Windows
O cluster do Windows permite que vários componentes de hardware atuem como uma única plataforma para executar aplicativos.
Cada componente de hardwarae é chamado de Nó de Cluster.
Vejamos a baixo a tabela de nós suportados pelas versões de S.O com base na edição:
Versão | Edição | Nós |
Windows Server 2003 | Standard | 2 |
Windows Server 2003 | Enterprise | 4 |
Windows Server 2003 | Datacenter | 8 |
Windows Server 2008 | Standard | 2 |
Windows Server 2008 | Enterprise | 16 |
Um Cluster do Windows precisa ter um nome distinto, endereço de IP (Internet Protocol) associado. O nome de cluster é registrado no DNS e pode ser determinado na rede.
Os nós de cluster devem estar dentro de um mesmo domínio do Windows.
Grupo de cluster e recurso de cluster
Um grupo de cluster é um nome lógico atribuído a um container que comporta um ou mais recursos de cluster.
Um recurso de cluster é tudo que pode ser configurado em um servidor: IP, nó de rede, unidade de disco, compartilhamentos de arquivos e serviços do Windows.
Tipos de clusters
Dois tipos de clusters pode ser configurados:
- Cluster padrão do Windows;
- Cluster de conjunto de nós de maioria;
Cluster padrão do Windows:
Um cluster padrão do Windows tem apenas um banco de dados de quórum no conjunto compartilhado. Essa unidade só é acessível por um nó por vez no cluster. Em caso de falha, outro nó assume a posse do recurso de disco que contém o banco de dados quórum e continua as operações de cluster.
Cluster de conjunto de nós de maioria:
Existe uma cópia do banco de dados de quórum em cada nó de cluster armazenado de forma local.
A localização do quórum é:
%SystemRoot%\Cluster\Qo.%ResourceGUID%$\%ResourceGUID%$\MSCS.
Em cada nó é criado um compartilhamento
\\%NodeNae%\%ResourceGUID%$
Não se deve modificar nem alterar as permissões nesse diretório ou compartilhamento de forma alguma!
O nome de conjunto de nós de maioria possui esse nome porque a maioria dos nós precisa estar online para que o cluster esteja online. Só é possível criar um cluster de conjunto de nós de maioria quando tem três ou mais nós configurados no cluster.
A tabela abaixo mostra a comparação de tolerância à falha de ambas as configurações:
Num de nós |
Tolerância a falha de nó – Cluster de conjunto de nós de maioria |
Tolerância a falha de nó – Cluster padrão |
1 | 0 | 0 |
2 | 0 | 1 |
3 | 1 | 2 |
4 | 1 | 3 |
5 | 2 | 4 |
6 | 2 | 5 |
7 | 3 | 6 |
8 | 3 | 7 |
Apesar de parecer que a configuração de nós de maioria oferece menos tolerância a falha do que um cluster padrão, existe a eliminação do ponto de falha que é quórum.
O banco de dados quórum contem a configuração do cluster e controla as operações de cluster. Caso haja alguma interrupção do banco de dados quórum, o cluster ficará indisponível.
Algumas causas de falhas de quórum que podem causar indisponibilidade de todo cluster são:
- Falha do conjunto de unidades compartilhado;
- Corrupção do banco de dados quórum.
Um cluster de conjunto de nós de maioria tem uma cópia do banco de dados quórum em cada nó sincronizada com todas as outras cópias, eliminando assim o quórum como ponto de falha.
Configuração de segurança
Deve-se aplicar todas as melhores práticas de segurança do Windows em cada nó dentro de um cluster. Desativar todos os serviços que não forem necessários.
Necessário criar uma conta de domínio para ser executada como conta de administrador de cluster. Em cada nó do cluster deve-se adicionar essa conta de domínio como membro dos grupos de administradores locais antes de configurar um cluster.
Configuração de disco
Usar unidades de disco ou SCSI/iSCSI (Small Computer System Interface/Internet Small Computer System Interface) ou unidades Fibre.
Cluster não aceita o uso de disco dinâmico.
Só pode ser usado discos básicos e pontos de montagem para cluster com um total de 22 letras de unidade a serem utilizadas. (A, B, C e D já são alocadas para recursos locais em cada nó).
Nota: Sistema operacional:
Necessário verificar com o fornecedor de SAN (Storage Area Nework) se os nós podem ser inicializados a partir da SAN. Se os nós não podem ser inicializados pela SAN ou se está usando armazenamento ligado diretamente, deve instalar o sistema operacional em uma unidade de disco rígido interna, que utilizará para iniciar o nó.
Na configuração de discos deve-se alocar uma unidade exclusivamente para uso do quórum.
Configurar o MS DTC (Microsoft Distributed Transaction Coordinator) no cluster. O MS DTC exige espaço em disco em uma unidade que esteja configurada como uma dependência do recurso MS DTC que é adicionado manualmente no cluster, após cria-lo.
A recomendação de melhores práticas de cluster indica alocar um disco exclusivo para o recurso do MS DTC e, então, configurar o MS DTC e sua unidade de disco associada em um grupo do cluster separado.
Pode-se colocar o recurso MS DTC no grupo de clusters e configurar sua dependência de disco na unidade que tiver configurado como quórum. Essa configuração viola as melhores práticas, mas preserva uma unidade de disco e não afetará as operações do cluster.
Antivírus
Caso o servidor possua antivírus, necessário excluir da varredura o diretório MSCS e todos os seus diretórios que contenham arquivo de dados.
Durante um failover os discos são montados no nó em que um grupo está falhando, o que faz o software antivírus começar a examinar o disco. Normalmente arquivos de banco de dados são muito grandes, caso a verificação de varredura do antivírus comece antes que o SQL Server possa abri-lo, a recuperação do banco de dados será adiada até que o arquivo tenha sido completamente examinado fazendo com que o processo de failover demore consideravelmente.
Configuração de rede
Cada nó de cluster precisa de pelo menos duas placas de redes configuradas para comunicação publica e privada. A rede pública é o a cesso para todos os aplicativos e tráfego externo que solicitem dados do cluster. A rede é usada para toda comunicação entre nós e entre clusters.
O cluster do Windows realiza verificações periódicas para verificar se um nó está disponível. O teste mais básico é chamado de LooksAlive, e é realizado pelo envio de um pedido de ping de um nó de cluster para outro. Se um nó não responde a um teste LooksAlive, ele é considerado indisponível e o cluster executa um processo de failover.
Para evitar um failover anormal, deve-se configurar as redes públicas e privadas em sub-redes diferentes.
Melhores práticas: Conexão de rede privada
- Desativar todos os serviços, exceto o TCP/ip.
- Remover o endereço de gateway padrão.
- Remover todos os endereços de servidor DNS.
- Desativar o registro de DNS.
- Desativar o NetBIOS sobre TCP/IP.
- Desativar a pesquisa de LMHOSTS.
Nota: Todas as verificações de vitalidade usam o serviço RPC (Chamada de procedure remota). Caso RPC esteja indisponível ou desativado, todas as verificações dentro do cluster irão falhar.
Garantir que o serviço RPC esteja ativado e configurado para iniciar automaticamente em todos os nós dentro do cluster.
Recursos de cluster
Categoria | Exemplos |
Interligação em rede | Endereço IP, nome da rede |
Hardware | Unidades de disco |
Software | Serviços, arquivos executáveis, compartilhamentos de arquivo, MS DTC |
Considerações
Recursos fisicamente ligados a uma máquina não podem ser configurados em um cluster. Conjunto de unidades externo pode ser um gabinete de canal Fibre ligado em cada nó no cluster ou uma SAN conectada a todos os nós do cluster.
Unidades de disco físicas dentro do conjunto de discos não são recursos do cluster reais. A definição e montagem de disco dentro do Windows é configurada e controlada pelo cluster do Windows.
Embora um recurso de disco seja definido em todos os nós, somente o nó que está configurado para possuir o recurso de disco tem os discos montados e acessíveis. Isso garante que mais de uma máquina grave na mesma mídia ao mesmo tempo.
O principal recurso configurado em um cluster é um serviço. SQL Server ou SQL Agent por exemplo. Embora cada nó do cluster tenha uma entrada para determinado serviço, este é iniciado em apenas um nó dentro do cluster.
Embora cada nó do cluster possua a definição de endereço IP e nome de rede, somente o nó designado como proprietário do endereço IP e do nome tem a definição vinculada a uma placa de rede física. Quando ocorre um failover em outro nó, o cluster executa as seguintes operações na pilha de rede:
- Retira o registro do nome de rede do DNS;
- Vincula o endereço IP a uma placa de rede física no nó operacional;
- Volta a registrar o nome de rede no DNS.
Esse processo garante que todos os aplicativos mantenha o mesmo endereço IP e nome de rede. Preservando o mesmo endereço IP e nome de rede em um failover, não é necessário reconfigurar os aplicativos para voltar a conectar após um failover.
Grupo do cluster
Grupos do cluster server para combinar um ou mais recursos do cluster em uma estrutura de gerenciamento lógica. Cada instância de failover cluster do SQL Server que é criado, aparece como um grupo separado dentro de um cluster do Windows.
No próximo artigo iremos abortar os requisitos e a configuração de instalação do serviço de cluster do SQL Server. Tomaremos como base o SQL Server 2008 R2.
Abraços.
Deixe um comentário