Pessoal, tranquilo? Espero que sim!
Bom, antes de qualquer coisa quero dizer que estou muito contente de finalmente estar postando algo mais detalhado sobre o SQL Server 2014. Neste post irei mostrar como se cria um ambiente completo de alta disponibilidade em Hyper-V utilizando um cluster Microsoft de 2 nós com Domain Controller e Storage, rodando o SQL Server 2014 CTP em cima do Windows Server 2008 R2. Apesar de já ter revisado o post peço que me informem sobre qualquer coisa que não estiver claro ou estiver incorreto. Muito obrigado!
PRÉ REQUISITOS:
-ROLE HYPER-V HABILITADA NA MÁQUINA QUE IRA MANTER O AMBIENTE VIRTUAL.
-ISO DO WINDOWS SERVER 2008 R2.
-ISO DO SQL SERVER 2014 CTP.
-MÍNIMO DE 512 RAM POR MÁQUINA VIRTUAL.
Obs.: No post estou supondo que você já sabe instalar o Windows Server 2008 R2, portanto me atentei mais ao que deve ser configurado e habilitado nas máquinas virtuais depois que o sistema operacional já estiver instalado.
MÁQUINA VIRTUAL (DOMAIN CONTROLLER e SIMULADOR STORAGE)
Sistema Operacional: Windows Server 2008 R2 SP1
Roles:
Habilitar Active Directory Domain Services
Features: Habilitar .NET 3.5.1
Nas configurações do adaptador de rede configure o IPv4
conforme abaixo:
IP
Address: 10.0.0.2
Subnet
Mask: 255.255.255.0
Default
Gateway: 10.0.0.2
Preferred DNS Server: 10.0.0.2
Alternate DNS Server: Deixe em branco.
MÁQUINA VIRTUAL (NÓ
1)
Sistema Operacional: Windows Server 2008 R2 SP1
Roles: Habilitar Hyper-V, faça isso subindo um prompt de
comando com privilégios de administrador e execute os comandos abaixo na
sequência:
a) DISM
/Online /Enable-Feature /FeatureName: Microsoft-Hyper-V
Obs.: Não reinicie ainda o servidor.
b) DISM
/Online /Enable-Feature /FeatureName: Microsoft-Hyper-V-Management-Clients
Obs.: Agora pode reiniciar o servidor.
Features: Habilitar .NET 3.5.1
Nas configurações do adaptador de rede configure o IPv4
conforme abaixo:
IP
Address: 10.0.0.3
Subnet
Mask: 255.255.255.0
Default
Gateway: 10.0.0.2
Preferred DNS Server: 10.0.0.2
Alternate DNS Server: Deixe em branco.
MÁQUINA VIRTUAL (NÓ
2)
Sistema Operacional: Windows Server 2008 R2 SP1
Roles: Habilitar Hyper-V, faça isso subindo um prompt de
comando com privilégios de administrador e execute os comandos abaixo na
sequência:
a) DISM
/Online /Enable-Feature /FeatureName: Microsoft-Hyper-V
Obs.: Não reinicie ainda o servidor.
b) DISM
/Online /Enable-Feature /FeatureName: Microsoft-Hyper-V-Management-Clients
Obs.: Agora pode reiniciar o servidor.
Features: Habilitar .NET 3.5.1
Nas configurações do adaptador de rede configure o IPv4
conforme abaixo:
IP
Address: 10.0.0.4
Subnet
Mask: 255.255.255.0
Default
Gateway: 10.0.0.2
Preferred DNS Server: 10.0.0.2
Alternate DNS Server: Deixe em branco.
CONFIGURANDO O
STORAGE:
Iremos precisar de uma ferramenta chamada iSCSI Software
Target 3.3, você pode baixar a mesma através do link abaixo:
Gere uma ISO dela e carregue ela na VM, quando
descompactar os arquivos, você irá observar que um deles possui mais de 5 MB,
este é o arquivo que você deverá instalar no servidor.
Uma vez instalada, navegue até as ferramentas
administrativas, vamos criar agora nossos discos a serem usados pelo cluster.
Clique com o direito em iSCSI Targets, Next, escolha um
nome da sua preferência, Next, nesta etapa temos que definir quais servidores
poderão acessar e utilizar os discos em nosso storage, clique em
"Advanced...", "Add...", No identifier Type troque para
"Ip Address", e em valor adicione o IP dos nossos nós, no caso
10.0.0.3 e 10.0.0.4, Next, Finish.
Agora vamos criar nossos discos virtuais, vamos criar
dois discos, um para ser o Witness/Quorum do cluster, e um para armazenar os
arquivos de dados e log das bases do SQL Server que será posteriormente
instalado:
Tamanho disco Quorum: 1 GB
Tamanho disco Dados: 10 GB
Para os dois discos acima faça o procedimento a seguir:
clique com o direito no Target que você acabou de criar, e clique em
"Create Virtual Disk For iSCSI Target", Next, de o caminho do novo
disco virtual, nome dele e extensão deixe como "VHD", algo como
"c:\meus discos\dados.vhd", se o caminho não existir não se preocupe
que ele irá criar, Next, agora defina seu tamanho em MB (Conforme citado
acima), Next, a descrição é opcional, Next, Finish.
CONFIGURANDO O
DOMAIN CONTROLLER (MESMA VM DO STORAGE):
Vamos agora criar nosso domínio, vá no menu iniciar,
executar e digite DCPROMO.EXE, aguarde o wizard surgir, Next, Next, selecione
"Create a new domain in a new forest", Next, agora você devera
inserir o nome do seu novo domínio, no meu caso utilizei “SQL2014.net”, Next,
vamos agora escolher o nível funcional da Floresta, escolha "Windows
Server 2008 R2", Next, confirme que o "DNS Server" está
selecionado, Next, um “warning” ira aparecer com relação ao DNS, apenas clique
em "Yes", na próxima etapa de diretórios apenas deixe como está e clique
em Next, defina agora a senha da conta do administrador do Domínio, clique em
Next, clique em Next mais uma vez, aguarde a instalação e configuração do novo domínio,
perceba que você tem como marcar a opção para que um boot seja feito
automaticamente ao término da mesma, fica a seu critério, contudo o boot deverá
ser feito. Após o boot seu domínio já estará configurado e pronto para ser
utilizado!
COLOCANDO OS NÓS NO
DOMINIO.
Primeiramente vamos colocar nossos servidores em domínio,
pois do contrário não conseguiremos trabalhar com eles em modo cluster. Execute
nos dois servidores. Clique com o direito em Computer, “Properties”,
"Change Settings", "Change",
mude o nome do computador para algo mais simples, no meu caso utilizei a
nomenclatura Win2k8-1 e Win2k8-2 e em Domain especifique o nome do domínio que
você criou, no meu caso, “SQL2014”, clique em “OK”, se a comunicação das máquinas
estiver ok (Nó x DC), será solicitado um usuário e senha que tenha privilégio
administrativo no domínio para configurar a máquina, insira o usuário e senha,
confirme e aguarde, deverá aparecer algo como "Bem Vindo ao domínio
XXX", reinicie a máquina conforme solicitado e quando ela subir faça o
login já usando uma conta do domínio.
ASSOCIANDO DISCOS
DO STORAGE AOS NÓS DO CLUSTER.
Teremos que associar os discos do storage em nossos dois nós,
para isso, navegue até as Ferramentas Administrativas, localize o "iSCSI
Initiator", em "Target" digite o IP do Storage e clique em
"Quick Connect", se der tudo certo, uma nova janela irá abrir com uma
mensagem dizendo que a conexão foi bem sucedida, clique em "Done", vá
na aba "Volumes and Devices" e clique em "Auto Configure",
se tudo der certo seus discos do storage serão listados na "Volume List",
clique em "Apply" e feche o "iSCSI Initiator".
INICIANDO DISCOS -
EXECUTE APENAS EM UM DOS NÓS.
Escolha um dos nós para este procedimento, ele não pode
ser feito nos dois nós, clique com o direito em Computador, "Manage",
expanda "Storage" e clique em "Disk Management", perceba
que os discos criados no storage estarão lá, coloque eles online, inicialize os
mesmos como GPT, crie o novo volume com os devidos tamanhos sem associar uma
letra a eles.
VALIDANDO A
CONFIGURAÇÃO E CRIANDO O CLUSTER.
Agora vamos configurar os nós para que eles suportem
trabalhar em cluster, execute nos dois nós. Abra o Server Manager, vá até
Features e habilite a feature chamada "Failover Clustering".
VALIDANDO A
CONFIGURAÇÃO DO CLUSTER.
Instalada a feature do passo anterior em ambos nós, vamos
validar nosso cluster. Em um dos nós, vá ao menu iniciar, executar, e digite
cluadmin.msc ou navegue até as ferramentas administrativas e abra o
"Failover Cluster Manager", clique com o direito em "Failover
Cluster Manager", clique em "Validade a Configuration...", Next,
digite o nome do nó 1 no campo "Enter Server Name:" ou então faça uma
busca pelo nome do mesmo no domínio clicando em "Browse...",
adicionado o nome do nó 1, faça o mesmo para o nó 2, depois de adicionados os
dois nós, clique em Next, selecione “Run all tests (reccomended)”, Next, o “wizard”
irá verificar se os discos estão offline para os testes serem executados, se
algum disco estiver online você tem a opção de deixar eles desta forma e os
testes nos mesmos não serão executados ou você pode escolher a segunda opção,
para que os discos sejam colocados em offline e os testes sejam então
executados nos mesmos, escolhida uma delas clique em Next, a próxima tela é
apenas um resumo das escolhas anteriores, clique em Next, aguarde a validação,
ao término da mesma clique em Finish.
CRIANDO O
CLUSTER.
Agora vamos de fato criar nosso cluster. Em um dos nós,
vá ao menu iniciar, executar, e digite cluadmin.msc ou navegue até as
ferramentas administrativas e abra o "Failover Cluster Manager", clique
com o direito em "Failover Cluster Manager", clique em "Create
Cluster...", Next, digite o nome do nó 1 no campo "Enter Server
Name:" ou então faça uma busca pelo nome do mesmo no domínio clicando em
"Browse...", adicionado o nome do nó 1, faça o mesmo para o nó 2,
depois de adicionados os dois nós, clique em Next, defina um IP para o cluster,
utilizei o IP 10.0.0.5, Next, Next, Finish. Aguarde o término da configuração
do cluster. Automaticamente o cluster ira varrer o storage em busca do disco
com menor capacidade para que ele seja o Quorum, caso sejam discos de mesmo
tamanho ele irá utilizar a ordem de apresentação do discos como critério.
Em Storage, verifique que os discos estarão lá, para o
disco que não é o Quorum, configure uma letra para ele, feito isso perceba que
ele irá aparecer em Computador.
SETUP DO SQL
SERVER 2014 CTP.
1. Insira a mídia do SQL Server 2014 CTP no nó win2k8-1.
2. Rode o “setup.exe”.
3. Na esquerda, clique em “Installation” > “New SQL
Server failover cluster installation”.
4. Na tela Setup “Support Rules”, clique em “OK” após as
verificações.
5. Na tela “Product Updates” desmarque o “Include SQL
Server product updates” e clique em “Next”.
6. Na tela “Install Setup Files”, aguarde o término da
instalação.
7. Na tela “Setup Support Rules”, clique em “Next” após
as verificações.
8. Na tela “Product Key”, em “Specify a free edition:”
selecione “Evaluation” e clique em “Next”.
9. Na tela “License Terms”, selecione “I accept the
license terms”, desmarque a segunda opção e clique em “Next”.
10. Na tela “Setup Role”, selecione “SQL Server Feature
Installation” e clique em “Next”.
11. Na tela de “Feature Selection”, escolha as features
que desejár, no meu caso escolhi “Database Engine Services”, “Client Tools
Connectivity”, “Documentation Components” e “Management Tools – Basic”. Para os
diretórios mantive o padrão “C:\Program Files\Microsoft SQL Server\” e
“C:\Program Files (x86)\microsoft SQL Server”, clique em “Next”.
12. Na tela “Feature Rules”, aguarde as verificações e
clique em “Next”.
13. Na tela “Instance Configuration”, em “SQL Server
Network Name:” defina o nome do seu SQL Server na rede, no meu caso irei
utilizar “CLUSQL14”, selecione “Default instance” para a instalação de uma
instância “default” ou “Named Instance:” para a instalação de uma instância
nomeada, no meu caso irei utilizar nomeada e minha instância irá se chamar
“MSSQL2014”, em “Instance root directory:”, deixei o diretório padrão
“C:\Program Files\Microsof SQL Server”, clique em “Next”.
14. Na tela “Disk Space Requirements” aguarde as
verificações e clique em “Next”.
15. Na tela “Cluster Resource Group”, em “SQL Server
cluster resource group name:” coloque qual será o nome do grupo do SQL no
cluster, no meu caso irei colocar “SQL14GROUP”, clique em “Next”.
16. Na tela “Cluster Disk Selection”, selecione os discos
a serem utilizados pelo cluster, no caso deste guia, teremos apenas um disco
para ser selecionado, clique em “Next”.
17. Na tela “Cluster Network Configuration”, marque
“IPv4” e em “Address” digite qual será o IP do SQL Server, no caso irei
utilizar “10.0.0.6”, clique em “Next”.
18. Na tela “Server Configuration”, defina as contas a
serem utilizadas para os serviços, irei utilizar uma conta que criei como
“domain admin” em meu domínio, chamada SQLUSER, coloque a senha da conta e mude
para a aba “Collation”, defina qual será o “collation” da sua instância, irei
utilizar “SQL_Latin1_General_CP1_CI_AI”, clique em “Next”.
19. Na tela “Database Engine Configuration”, defina a
forma de autenticação do SQL Server, no meu caso irei selecionar “Mixed Mode” e
definir uma senha para o usuário S.A., também irei clicar em “Add Current User”
para que o usuário no qual estou logado no Windows seja também um administrador
da instância, feito estas customizações, mude para a aba “Data Directories”, em
“Data root directory:”, deixei apenas meu disco do cluster “G:\”, em “User
database directory:” deixei como “G:\SQLDATA”, em “User databaselog directory:”
deixe como “G:\SQLTLOG”, em “Temp DB directory:” deixei como “G:\SQLDATA”, em
“Temp DB log directory:” deixei como “G:\SQLTLOG”, em “Backup directory:”,
deixei como “G:\BACKUP”, clique em “Next”.
20. Na tela “Error Reporting”, deixei desmarcado a opção
e cliquei em “Next”.
21. Na tela “Cluster Installation Rules”, aguarde as
verificações e clique em “Next”.
22. Na tela “Ready to Install”, verifique se tudo está de
acordo com o que você configurou e clique em “Install”.
23. Ao término da instalação clique em “Close”.
Vamos agora
adicionar o outro nó do cluster em nossa instalação do SQL Server 2014 CTP...
1. Insira a mídia do SQL Server 2014 CTP no nó win2k8-2.
2. Rode o “setup.exe”.
3. Na esquerda, clique em “Installation” > “Add node
to a SQL Server failover cluster”.
4. Na tela “Setup Support Rules”, aguarde as verificações
e clique em “OK”.
5. Na tela “Product Updates”, clique em “Next”.
6. Na tela “Install Setup Files”, aguarde o término da
instalação.
7. Na tela “Setup Support Rules”, aguarde as verificações
e clique em “Next”.
8. Na tela “Product Key”, em “Specify a free edition:”
selecione “Evaluation” e clique em “Next”.
9. Na tela “License Terms”, selecione “I accept the
license terms”, desmarque a segunda opção e clique em “Next”.
10. Na tela “Cluster Node Configuration”, perceba que ele
já ira detectar nossa instância instalada no nó 1 automaticamente, basta clicar
em “Next”.
11. Na tela “Cluster Network Configuration”, perceba que
ele já ira detectar o ip do SQL Server que instalamos automaticamente, basta
clicar em “Next”.
12. Na tela “Service Accounts”, adicione a senha para as
contas de serviço que você definiu durante a instalação da instância no nó 1,
feito isso clique em “Next”.
13. Na tela “Error Reporting”, deixei desmarcado a opção
e cliquei em “Next”.
14. Na tela “Add Node Rules”, aguarde as verificações e
clique em “Next”.
15. Na tela “Ready to Add Node”, verifique se tudo está
de acordo com o que você configurou e clique em “Install”.
16. Ao término da instalação clique em “Close”.
Pessoal é isso! Espero que o post tenha sido útil a vocês e até a próxima!
Pessoal é isso! Espero que o post tenha sido útil a vocês e até a próxima!
André, boa noite.
ResponderExcluirParabéns, fantástico, um dos melhores posts sobre cluster que eu já tive a oportunidade de ler.
Vlw pelo feedback Junior Galvão! Você é um dos grandes nomes na comunidade e fico muito feliz com seu elogio! Um abraço!
ExcluirAndré,
ResponderExcluirCara este post me deixou louco, estou acabando de montar o mesmo ambiente só que utilizando VMs rodando no Azure.
Show de bola.
Boa! Depois nos conta o resultado final!!!
ExcluirUm abraço!
Excelente André. Aqui na empresa estamos justamente debatendo como realizar esse procedimento. Teu tutorial foi uma luz. Muito bom!! Obrigado!!
ResponderExcluirFabiano muito obrigado! Que bom que o post foi útil a você! Boa sorte!
ExcluirPerfeito as suas explicações no post André. Lhe digo que me esclareceu algumas dúvidas que tinha sobre cluster, até porque tenho tido pouco contato com a tecnologia. Só um detalhe, é possível utilizar no lugar do Hyper-V o VirtualBox pra montar a mesma estrutura?
ResponderExcluirAbraços e Parabéns!
Jeferson, boa noite! Obrigado pelo elogio ao material, fico feliz que tenha sido útil para você. Quanto a utilização de outro soft. de virtualização não vejo grandes problemas, acredito que só a questão da rede que deva ser um pouco diferente. Abraço!
ExcluirAndré, essa solução é somente para alta disponibilidade ou serve como balanceamento também?
ResponderExcluirGrata!!!
Olá Wanessa!
ExcluirO foco aqui foi mostrar um ambiente de alta disponibilidade utilizando hyper-v + SQL em um windows cluster, como só temos uma instância, ela rodará apenas em um unico nó por vez, se fossem duas instâncias o ideal seria uma rodando em cada nó com seus recursos devidamente configurados para não excederem a capacidade do hardware, isso seria sim uma espécie de balanceamento.
Um abraço!
Bom dia André,
ResponderExcluirParabéns pelo post, excelente tutorial!
Estava pensando em utilizar o tema como TCC da pós, gostaria de comparar algumas características desse ambiente "fisico" com um ambiente em nuvem.
Sabe se tem algum material disponivel, ou qual seria o melhor ambiente (Azure, Eucalyptus) para eu estudar mais a respeito e desenvolver tal comparação.
Abraço.