none
SQL server num failover cluster RRS feed

  • Pergunta

  • Boa tarde,

    Criei um ambiente virtual de failover cluster no Windows Server 2008, uma das máquinas fornece os serviços de AD, DNS, DHCP, e a outra tem simplesmente tem o windows server 2008 R2. Estou a utilizar o VMware Workstation. A minha primeira pergunta é se este software de virtualização  permite criar uma shared storage entre as máquinas virtuais. 

    A segunda pergunta está relacionada com o SQL server, se eu o instalar nos dois servidores é possível fazer load balance, ou seria necessário software adicional para obter load balance.Por fim queria esclarecer se num cluster deste genero é possível instalar um serviço de email e um dos servidores continuar fornecer o serviço se o que estava a fornecer o serviço for desligado.

    Obrigado 

    terça-feira, 21 de agosto de 2012 18:02

Respostas

  • Boa Tarde,

    Vou tentar discorrer sobre as dúvidas, mas adianto que é fundamental que procurem uma boa bibliografia, pois, a idéia do fórum é para dúvidas. Se formos passar o passo a passo de como fazer bem como a parte teórica envolvida, iremos gastar pelo menos uns 50 posts e esse não é bem o propósito. Então vamos repassar o que julgo importante para podermos fechar as dúvidas:

    Deixando a Microsoft de lado, eu poderia categorizar um cluster como um agrupamento de máquinas de mesma tecnologia e sistema operacional. Funcionam como um grupo, onde o Workload pode rodar em qualquer uma das máquinas do grupo ou dependendo da situação em mais de uma máquina simultaneamente. Poderíamos dividir os cluster segundo três tipos (essa categorização não é unânime):

    • FailOver: Nesse tipo de cluster, uma máquina do grupo assume a carga por vez. Se tivermos por exemplo um cluster de duas máquinas, a carga é direcionada para uma dessas duas máquinas. No caso de uma das máquinas ficar indisponível, a outra assumirá a carga. Em nenhuma situação, as duas máquinas irão dividir a carga simultaneamente. A idéia é que uma máquina fique em espera para caso a outra caia, ela possa assumir o trabalho. Quando nos referimos a cluster em tecnologias Microsoft, normalmente estamos nos referindo a esse tipo de implementação (FailOver Cluster) ou MSCS (Microsoft Cluster Services). Essa implementação que é possível utilizar em produtos como o SQL Server, Exchange e servidor de arquivos. No geral, as tecnologias Microsoft que dependam de armazenamento (storage) e que de uma certa forma representem bancos de dados costumam utilizar esse tipo de cluster.
    • Load Balance: Nesse tipo de Cluster, temos várias máquinas no mesmo grupo, mas a carga é distribuída entre as máquinas. Ao receber, a carga, um gerenciador sabe a qual máquina do grupo direcionar a carga de forma a mantê-las homogêneas. Caso um máquina fique indisponível, o gerenciador deixará de enviar carga para essa máquina e deixará de considerá-la na distribuição. Além de prover alta disponibilidade como no caso do FailOver, esse tipo de cluster já provê também a distribuição de carga. No mundo Microsoft, teríamos alguns exemplos como o IIS, e com uma certa analogia o AD e o DNS. Infelizmente a Microsoft ainda não conseguiu colocar o SQL Server nesse tipo de cluster, mas outros fabricantes como a ORACLE e a IBM tem implementações de banco de dados que usufruem dessa modalidade a exemplo do ORACLE RAC e do DB2 PureScale ou ainda o Data Sharing para DB2 zOS.
    • High Performance Computing: Nesse modalidade, além das características de alta disponibilidade e balanceamento de carga, é possível ainda que uma tarefa muito complexa seja quebrada em tarefas menores e cada uma dessas tarefas é processada por cada máquina participante do cluster em paralelo. Após a conclusão, o gerenciador irá juntar as partes e dar a requisição por concluída. Claro que para que isso seja possível, é necessário que a aplicação seja desenvolvida para tal. A Microsoft possui implementações de HPC, mas acho que ainda vai demorar um pouco para vermos o SQL Server sobre um cluster desse tipo.

    Como estamos falando de SQL Server (ou ainda um serviço de email), iremos nos ater às características do FailOver Clustering. Duas importantes a citar:

    • Abstração: A aplicação nunca irá escolher a máquina a qual deve se conectar. Ele chamará o cluster (ou o serviço disponibilizado) sem nunca saber em qual máquina (ou nó) esse serviço está sendo executado
    • Posse: O FailOver Clustering é do tipo Shared Nothing, ou seja, os recursos não são compartilhados entre os nós participantes da forma que apenas uma máquina por vez poderá deter a posse dos recursos (serviço, discos, etc)

    Assim sendo, para que possamos montar um cluster do tipo FailOver, é necessário no mínimo três máquinas (virtuais ou não) para fazê-lo. Duas máquinas irão compor o cluster (serão os nós do cluster) e a terceira máquina será o AD e o DNS (não é necessário o DHCP para cluster, pois, os nós costumam ter IP fixo). Dizemos então que temos um cluster de duas máquinas, pois, o AD e o DNS não fazem parte desse cluster. Uma vez que iremos nos conectar ao cluster e não a uma máquina específica, precisamos do AD e do DNS para que possamos criar nomes virtuais que possam ser resolvidos. Assim sendo, utilizaremos um nome virtual (digamos SQLPROD) para conectarmos ao SQL Server e o cluster se encarrega de fazer com que esse serviço (SQLPROD) rode em uma ou em outra máquina. Nunca conectaremos na máquina, chamaremos sempre o nome virtual, pois, precisamos obedecer a regra da abstração.

    Os bancos de dados não podem ficar no disco local da máquina, mas em um lugar externo a ele (normalmente uma solução de Storage). Isso porque se utilizarmos um disco local (digamos do nó 1), quando o nó 1 cair, não teremos como acessar os dados e aí não teremos um cluster de fato. Os dados ficam no storage e um nó por vez faz o acesso (o nó que estiver com a posse do disco e do serviço). Quando um nó cair, ele deixará de ter a posse dos recursos (IP, nome virtual, discos, etc) e irá cedê-los para o outro nó que passará a responder por eles (daí a importância do nome ser virtual e dos discos não serem locais).

    Para propósitos de laboratório dificilmente teremos uma solução de storage em mãos e aí que entram emuladores como o Starwind ou o Microsoft iSCSI. Você até poderia utilizar o Windows Storage Server para fazer isso também (mas não recomendo em virtude da complexidade e da quantidade de recursos que ele consome). Independente da solução, o propósito será fazer com que ela proporcione um disco (ainda que não seja um disco de verdade). Esclarecido os conceitos, vamos então aos esclarescimentos:

    "Criei um ambiente virtual de failover cluster no Windows Server 2008, uma das máquinas fornece os serviços de AD, DNS, DHCP, e a outra tem simplesmente tem o windows server 2008 R2. Estou a utilizar o VMware Workstation. A minha primeira pergunta é se este software de virtualização  permite criar uma shared storage entre as máquinas virtuais."

    Antes mesmo de pensar no disco, veja que apenas com essas duas máquinas você não conseguirá obter o que deseja. Se uma máquina é o AD e o DNS, se ela cair não terá ninguém para gerenciar os nomes virtuais e aí a conexão com o cluster (ou o serviço clusterizado) não será possível. É preciso que a máquina com o AD seja uma máquina a parte e que você possua outras duas máquinas onde você irá habilitar a funcionalidade de cluster (MSCS)

    "A segunda pergunta está relacionada com o SQL server, se eu o instalar nos dois servidores é possível fazer load balance, ou seria necessário software adicional para obter load balance.Por fim queria esclarecer se num cluster deste genero é possível instalar um serviço de email e um dos servidores continuar fornecer o serviço se o que estava a fornecer o serviço for desligado."

    Você instalará o software SQL Server nos dois servidores, mas os bancos serão criados no disco externo. Como esse cluster é do tipo FailOver não é possível obter o Load Balance (nem com softwares adicionais). O exemplo do email é possível de ser feito e é o que exemplifica o cluster do tipo FailOver

    "Em relação ao cenário de Cluster, para que você possa realmente ter esta ambiente funcionando independente de possíveis quedas, será cenário ter o AD, DNS e DHCP configurados como serviços do MSCS para que possam ser transferidos em ambos os servidores quando houver a necessidade de troca de funções entre os servidores."

    Essa afirmação não está amparada em nenhuma documentação oficial. Não é possível "clusterizar" o AD, DNS e o DHCP na modalidade FailOver Clustering que é o que é ofertado pela funcionalidade MSCS. Vale a pena lembrar que o DHCP não é necessário para montar um cluster. Embora seja possível o IP variável para os servidores, não é uma implementação comum. A maioria prefere IPs fixos. É possível clusterizar recursos como MSDTC, SQL Server, Exchange, etc, mas de forma nenhuma é possível colocar o AD, DNS ou o DHCP configurados como serviços do Cluster.

    "Outra coisa que eu não sabia que tinha que fazer e talvez por isso que eu tô errandu e não tá funcionadu. Como é que faz pra configurar o AD, o DNS e o DHCP como serviço do Cluster (MSCS) ? Poxa, você podia me passar essas dicas hein ?"
    É preciso ter o AD e o DNS instalados antes de começar a montar o cluster, pois, eles serão necessários para registrar os nomes virtuais. Entretanto, como explicado, o AD e o DNS estão externos ao Cluster e de forma nenhuma irão ser configurados como serviços do Cluster.

    "O meu objectivo é apenas ter um cluster de dois servidores a fornecer um serviço (o mais simples possivel, talvez servidor de email) e bloqueei na Validação das configurações na criação do Cluster"
    É preciso verificar que tipo de validação foi violada. Há validações de rede, disco, system requirements, etc.

    "O Starwind ou o Microsoft iSCSI terei que o instalar em ambas as máquinas virtuais?é necessario ter o Windows storage server instalado?"
    Considerando que o seu ambiente é virtualizado, não faz sentido em instalar o Starwind ou o Microsoft iSCSI nas máquinas. O que é preciso é que as máquinas enxerguem o disco e isso não será conseguido com a instalação do Starwind ou o do Microsoft iSCSI na máquinas virtuais. No seu caso, você terá que instalar o software fora da máquina virtual (no host system e não no Guest System), configurar um disco e no momento do cluster apresentar esse disco às máquinas virtuais.

    "Dá pra usar só o Starwind ou é preciso instalar o Windows Storage Server ?"
    Como o Jr. respondeu, apenas o Microsoft iSCSI ou o Starwind já simula o storage. O Windows Storage Server não é complementar. Você terá que escolher uma dessas três ferramentas (não recomendo o Windows Storage Server em virtude das razões já discutidas).

    "Em relação a configuração do AD e DNS, você vai precisar inicialmente de um servidor que será o seu MCSC e outro servidor que será o por exemplo o Nó 1."
    Não olhei o tutorial, mas certamente que essa orientação está incorreta (ou foi interpretada incorreta), pois, não está embasada em nenhuma documentação oficial. Não tem um servidor que será o MSCS (não é MCSC). O que você terá é uma ou mais máquinas fora do cluster que farão o papel de AD e DNS e as máquinas do cluster que terão a funcionalidade MSCS habilitada. Chama-se nó cada máquina do cluster, mas é preciso de no mínimo dois nós para montar o cluster de forma que "um servidor que será o seu MCSC e outro que será por exemplo o nó 1" não faz está coerente com a documentação oficial quando falamos de FailOver Clustering.

    "Vc sabe se tem que configurar o AD e o DNS como serviços do MSCS antes de fazer a instalação do disco ou não faz diferença ? É que se o disco é um recurso externo, não precisaria de ter o DNS funcionando pra que os servidores achassem ele ? Ou não tem nada a ver ?"
    O disco não é um HOST e não será localizado com o DNS. Ainda assim, o DNS tem que estar pronto para que o cluster possa ser montado.

    Espero ter esclarescido. O assunto pode ser um pouco confuso admito. Ainda assim recomendo uma pesquisa bibliográfica, pois, há muitos detalhezinhos. O tutorial que o Jr. cita é um bom ponto de partida, mas não deixe de consultar a documentação oficial sobre o assunto (vide Books OnLine). Um link interessante sobre o assunto é do Nilton Pinheiro (também MVP)

    Alta Disponibilidade no SQL Server 2008 R2 - Failover Clustering na prática
    http://technet.microsoft.com/pt-br/sqlserver/hh207253.aspx

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível



    terça-feira, 28 de agosto de 2012 17:14

Todas as Respostas

  • Boa Noite,

    Não sei as versões atuais, mas até onde sei, os softwares de virtualização não costumam oferecer essa feature. É possível simular o disco através de softwares como o Starwind ou o Microsoft iSCSI Software Target da Microsoft. Há outras alternativas que já foram inclusive postadas aqui (basta procurar nas threads anteriores).

    Não é possível montar um solução de Load Balance com o MSCS para o SQL Server para uma mesma instância e (ou) banco de dados. O máximo que você consegue é instalar uma instância em cada e consumir assim as duas máquinas (uma para cada instância). Se uma máquina cair, a outra deverá absorver a carga de ambas, mas de forma nenhuma é possível que as duas máquinas processem a mesma base (mesmo com softwares adicionais). Ainda assim, existem soluções bem interessantes como o Always On e a Replicação P2P.

    No MSCS, é possível que uma máquina assuma o serviço da outra em caso da queda de uma dessas máquinas. Só que se você coloca uma máquina para ser o AD, DNS, DHCP e essa máquina cai, não adiantará a outra estar de pé, pois, não há como o Cluster funcionar sem o AD e o DNS.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    • Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 22 de agosto de 2012 03:23
    • Marcado como Resposta JoaoCFMonteiro quarta-feira, 22 de agosto de 2012 15:31
    • Não Marcado como Resposta JoaoCFMonteiro quarta-feira, 22 de agosto de 2012 15:55
    quarta-feira, 22 de agosto de 2012 03:22
  • João,

    Recentemente eu utilizei em um ambiente Virtualizado o Starwind e também o Microsoft iSCSI Software Target para simular ambiente de cluster e funcionou perfeitamente, mas sendo a versão trial.

    Em relação ao cenário de Cluster, para que você possa realmente ter esta ambiente funcionando independente de possíveis quedas, será cenário ter o AD, DNS e DHCP configurados como serviços do MSCS para que possam ser transferidos em ambos os servidores quando houver a necessidade de troca de funções entre os servidores.

    Para o SQL Server vou na mesma linha de raciocínio do Gustavo, podemos trabalhar com recursos de Replicação de dados para balanceamento de carga, como também utilizar o novo recurso de Always On disponível a partir do SQL Server 2012.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]


    quarta-feira, 22 de agosto de 2012 13:23
    Moderador
  • Oi Galvão,

    Cara eu tô num problema com esse negócio de cluster que talvez vc consiga me ajudá.

    Eu tô querendo fazer um TCC falando de alta disponibilidade, máquinas duplicadas, etc e vi esse post com exatamente o que tô precisandu.

    Como vc utilizou recentemente tudo isso em um ambiente virtualizado, eu queria umas dicas, tipo assim como começar, como configurar o disco, etc. Eu instalei as máquinas com o Windows 2008 tanto no Hyper-V quanto no VMWare e já até configurei essas máquinas como nós, mas tô esbarrando na configuração do disco compartilhado. Você poderia me falar como vc fez para configurar o disco (pode ser no Starwind ou no software da Microsoft).

    Outra coisa que eu não sabia que tinha que fazer e talvez por isso que eu tô errandu e não tá funcionadu. Como é que faz pra configurar o AD, o DNS e o DHCP como serviço do Cluster (MSCS) ? Poxa, você podia me passar essas dicas hein ?

    Valeu gente boa. Aguardo resposta :)

    quarta-feira, 22 de agosto de 2012 15:19
  • ola

    Desde já muito obrigado aos dois, ando um pouco perdido pois não tenho muita experiência nestas áreas. O meu objectivo é apenas ter um cluster de dois servidores a fornecer um serviço (o mais simples possivel, talvez servidor de email) e bloqueei na Validação das configurações na criação do Cluster. Mas seguindo com as vossas dicas:

    O Starwind ou o Microsoft iSCSI terei que o instalar em ambas as máquinas virtuais?é necessario ter o Windows storage server instalado?

    Também nunca configurei o MSCS podiam indicar-me alguns links com tutoriais simples?

    Obrigado, 


    quarta-feira, 22 de agosto de 2012 15:26
  • João,

    Sim terá que instalar em ambas as máquinas e posteriormente configurar o MCSC.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quarta-feira, 22 de agosto de 2012 15:57
    Moderador
  • ZezinhoTI,

    Cara eu encontrei no próprio site do Starwind um tutorial que explica todos os passos que você necessita para fazer a configuração. Acesse: http://www.starwindsoftware.com/


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quarta-feira, 22 de agosto de 2012 15:58
    Moderador
  • Obrigado Galvão,

    Resumindo e para ver se eu percebi. Vou utilizar neste caso o Microsoft iSCSI pois não encontrei o StarWind livre, instalo individualmente em cada servidor do meu cluster e só depis instalo o MCSC. Não necessito então de criar nenhum Storage server ?

    Obrigado

    quarta-feira, 22 de agosto de 2012 16:22
  • Oi Zezinho,

    Você conseguiu arranjar o StarWind ou o Microsoft iSCSI? Podia dizer me como?

    Obrigado

    quarta-feira, 22 de agosto de 2012 16:51
  • Fala Galvão,

    Então amigo, eu dei uma olhada no site lá e tem alguns tutoriais legais. Vou ver se dou conta de ver como usar esse starwind depois. Eu vi o João falando do Windows Storage Server. Eu num intendo muito, mas acho que precisa instalar ele tb pra montar o cluster e funcionar o disco compartilhado. Eu preciso mesmo dele pra funfar ? Dá pra usar só o Starwind ou é preciso instalar o Windows Storage Server ? Vc acha que é bom instalar só pra garantir ?

    Agora vc podia dar uma força na parte de AD e do DNS ? Não tô conseguindo colocar eles como recurso do cluster de jeito manera. Acho que deve ser simples, mas não tô conseguindo de jeito nenhum. Como vc já montou um ambiente por agora, teria como me quebrar essa ? Dá pra montar tudo então só com duas máquinas ?

    Valeu meu chegado. Brigadão pelas dicas aê. Tá ajudando por demais. Tú é o cara...

    quarta-feira, 22 de agosto de 2012 17:02
  • Zezinho,

    Cara, você não vai precisar de Storage, mas sim configura o Microsoft iSCSI que vai simular a Storage.

    Em relação a configuração do AD e DNS, você vai precisar inicialmente de um servidor que será o seu MCSC e outro servidor que será o por exemplo o Nó 1.

    No tutorial de uso do Starwind você vai encontrar essa orientação.

    O primeiro passo é instalar um Windows Server 2003 ou 2008 Enterprise e configurar o MSCS.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quarta-feira, 22 de agosto de 2012 17:53
    Moderador
  • Fala Galvão,

    Intão... Eu vou baixa o Starwind para simular o disco, mas esse negócio do AD e do DNS eu ainda tô com dúvida.

    Tô com duas máquinas no Hyper-V (TCC01 e TCC02). Instalei o AD e o DNS na máquina TCC01 que vai ser o MCSC (vô deixár a máquina TCC02 pra ser o tal do nó 1 então). Ainda não instalei o starwind ou o do Microsoft. Só queria saber intão como é que façu pra pô o AD e o DNS configurados como serviços do MSCS nesse máquina TCC01.

    Vc sabe se tem que configurar o AD e o DNS como serviços do MSCS antes de fazer a instalação do disco ou não faz diferença ? É que se o disco é um recurso externo, não precisaria de ter o DNS funcionando pra que os servidores achassem ele ? Ou não tem nada a ver ?

    quarta-feira, 22 de agosto de 2012 18:52
  • Oi Galvão,

    Se eu tiver um Servidor só com o AD, DNS e DHCP e dois servidores que serão o nó 1 e o nó 2, tenho que configurar o MSCS na mesma? Neste caso instalo o iSCSI também no Servidor DC certo?

    Esta opção é melhor ou pior que ter só duas máquinas virtuais e ter o MSCS?

    Obrigado

    quinta-feira, 23 de agosto de 2012 10:42
  • Galvão,

    Ajuda nóis com as dúvidas aê

    quinta-feira, 23 de agosto de 2012 11:09
  • Galvão,

    Alguma novidade dessas dúvidas todas ?

    segunda-feira, 27 de agosto de 2012 12:49
  • Achú que o Galvão num vai responder naum.
    Hoje teve um monte pergunta que ele respondeu, mas nada dessa aqui.

    Será que alguém aí pode ajudar nóis ?

    terça-feira, 28 de agosto de 2012 01:50
  • Boa Tarde,

    Vou tentar discorrer sobre as dúvidas, mas adianto que é fundamental que procurem uma boa bibliografia, pois, a idéia do fórum é para dúvidas. Se formos passar o passo a passo de como fazer bem como a parte teórica envolvida, iremos gastar pelo menos uns 50 posts e esse não é bem o propósito. Então vamos repassar o que julgo importante para podermos fechar as dúvidas:

    Deixando a Microsoft de lado, eu poderia categorizar um cluster como um agrupamento de máquinas de mesma tecnologia e sistema operacional. Funcionam como um grupo, onde o Workload pode rodar em qualquer uma das máquinas do grupo ou dependendo da situação em mais de uma máquina simultaneamente. Poderíamos dividir os cluster segundo três tipos (essa categorização não é unânime):

    • FailOver: Nesse tipo de cluster, uma máquina do grupo assume a carga por vez. Se tivermos por exemplo um cluster de duas máquinas, a carga é direcionada para uma dessas duas máquinas. No caso de uma das máquinas ficar indisponível, a outra assumirá a carga. Em nenhuma situação, as duas máquinas irão dividir a carga simultaneamente. A idéia é que uma máquina fique em espera para caso a outra caia, ela possa assumir o trabalho. Quando nos referimos a cluster em tecnologias Microsoft, normalmente estamos nos referindo a esse tipo de implementação (FailOver Cluster) ou MSCS (Microsoft Cluster Services). Essa implementação que é possível utilizar em produtos como o SQL Server, Exchange e servidor de arquivos. No geral, as tecnologias Microsoft que dependam de armazenamento (storage) e que de uma certa forma representem bancos de dados costumam utilizar esse tipo de cluster.
    • Load Balance: Nesse tipo de Cluster, temos várias máquinas no mesmo grupo, mas a carga é distribuída entre as máquinas. Ao receber, a carga, um gerenciador sabe a qual máquina do grupo direcionar a carga de forma a mantê-las homogêneas. Caso um máquina fique indisponível, o gerenciador deixará de enviar carga para essa máquina e deixará de considerá-la na distribuição. Além de prover alta disponibilidade como no caso do FailOver, esse tipo de cluster já provê também a distribuição de carga. No mundo Microsoft, teríamos alguns exemplos como o IIS, e com uma certa analogia o AD e o DNS. Infelizmente a Microsoft ainda não conseguiu colocar o SQL Server nesse tipo de cluster, mas outros fabricantes como a ORACLE e a IBM tem implementações de banco de dados que usufruem dessa modalidade a exemplo do ORACLE RAC e do DB2 PureScale ou ainda o Data Sharing para DB2 zOS.
    • High Performance Computing: Nesse modalidade, além das características de alta disponibilidade e balanceamento de carga, é possível ainda que uma tarefa muito complexa seja quebrada em tarefas menores e cada uma dessas tarefas é processada por cada máquina participante do cluster em paralelo. Após a conclusão, o gerenciador irá juntar as partes e dar a requisição por concluída. Claro que para que isso seja possível, é necessário que a aplicação seja desenvolvida para tal. A Microsoft possui implementações de HPC, mas acho que ainda vai demorar um pouco para vermos o SQL Server sobre um cluster desse tipo.

    Como estamos falando de SQL Server (ou ainda um serviço de email), iremos nos ater às características do FailOver Clustering. Duas importantes a citar:

    • Abstração: A aplicação nunca irá escolher a máquina a qual deve se conectar. Ele chamará o cluster (ou o serviço disponibilizado) sem nunca saber em qual máquina (ou nó) esse serviço está sendo executado
    • Posse: O FailOver Clustering é do tipo Shared Nothing, ou seja, os recursos não são compartilhados entre os nós participantes da forma que apenas uma máquina por vez poderá deter a posse dos recursos (serviço, discos, etc)

    Assim sendo, para que possamos montar um cluster do tipo FailOver, é necessário no mínimo três máquinas (virtuais ou não) para fazê-lo. Duas máquinas irão compor o cluster (serão os nós do cluster) e a terceira máquina será o AD e o DNS (não é necessário o DHCP para cluster, pois, os nós costumam ter IP fixo). Dizemos então que temos um cluster de duas máquinas, pois, o AD e o DNS não fazem parte desse cluster. Uma vez que iremos nos conectar ao cluster e não a uma máquina específica, precisamos do AD e do DNS para que possamos criar nomes virtuais que possam ser resolvidos. Assim sendo, utilizaremos um nome virtual (digamos SQLPROD) para conectarmos ao SQL Server e o cluster se encarrega de fazer com que esse serviço (SQLPROD) rode em uma ou em outra máquina. Nunca conectaremos na máquina, chamaremos sempre o nome virtual, pois, precisamos obedecer a regra da abstração.

    Os bancos de dados não podem ficar no disco local da máquina, mas em um lugar externo a ele (normalmente uma solução de Storage). Isso porque se utilizarmos um disco local (digamos do nó 1), quando o nó 1 cair, não teremos como acessar os dados e aí não teremos um cluster de fato. Os dados ficam no storage e um nó por vez faz o acesso (o nó que estiver com a posse do disco e do serviço). Quando um nó cair, ele deixará de ter a posse dos recursos (IP, nome virtual, discos, etc) e irá cedê-los para o outro nó que passará a responder por eles (daí a importância do nome ser virtual e dos discos não serem locais).

    Para propósitos de laboratório dificilmente teremos uma solução de storage em mãos e aí que entram emuladores como o Starwind ou o Microsoft iSCSI. Você até poderia utilizar o Windows Storage Server para fazer isso também (mas não recomendo em virtude da complexidade e da quantidade de recursos que ele consome). Independente da solução, o propósito será fazer com que ela proporcione um disco (ainda que não seja um disco de verdade). Esclarecido os conceitos, vamos então aos esclarescimentos:

    "Criei um ambiente virtual de failover cluster no Windows Server 2008, uma das máquinas fornece os serviços de AD, DNS, DHCP, e a outra tem simplesmente tem o windows server 2008 R2. Estou a utilizar o VMware Workstation. A minha primeira pergunta é se este software de virtualização  permite criar uma shared storage entre as máquinas virtuais."

    Antes mesmo de pensar no disco, veja que apenas com essas duas máquinas você não conseguirá obter o que deseja. Se uma máquina é o AD e o DNS, se ela cair não terá ninguém para gerenciar os nomes virtuais e aí a conexão com o cluster (ou o serviço clusterizado) não será possível. É preciso que a máquina com o AD seja uma máquina a parte e que você possua outras duas máquinas onde você irá habilitar a funcionalidade de cluster (MSCS)

    "A segunda pergunta está relacionada com o SQL server, se eu o instalar nos dois servidores é possível fazer load balance, ou seria necessário software adicional para obter load balance.Por fim queria esclarecer se num cluster deste genero é possível instalar um serviço de email e um dos servidores continuar fornecer o serviço se o que estava a fornecer o serviço for desligado."

    Você instalará o software SQL Server nos dois servidores, mas os bancos serão criados no disco externo. Como esse cluster é do tipo FailOver não é possível obter o Load Balance (nem com softwares adicionais). O exemplo do email é possível de ser feito e é o que exemplifica o cluster do tipo FailOver

    "Em relação ao cenário de Cluster, para que você possa realmente ter esta ambiente funcionando independente de possíveis quedas, será cenário ter o AD, DNS e DHCP configurados como serviços do MSCS para que possam ser transferidos em ambos os servidores quando houver a necessidade de troca de funções entre os servidores."

    Essa afirmação não está amparada em nenhuma documentação oficial. Não é possível "clusterizar" o AD, DNS e o DHCP na modalidade FailOver Clustering que é o que é ofertado pela funcionalidade MSCS. Vale a pena lembrar que o DHCP não é necessário para montar um cluster. Embora seja possível o IP variável para os servidores, não é uma implementação comum. A maioria prefere IPs fixos. É possível clusterizar recursos como MSDTC, SQL Server, Exchange, etc, mas de forma nenhuma é possível colocar o AD, DNS ou o DHCP configurados como serviços do Cluster.

    "Outra coisa que eu não sabia que tinha que fazer e talvez por isso que eu tô errandu e não tá funcionadu. Como é que faz pra configurar o AD, o DNS e o DHCP como serviço do Cluster (MSCS) ? Poxa, você podia me passar essas dicas hein ?"
    É preciso ter o AD e o DNS instalados antes de começar a montar o cluster, pois, eles serão necessários para registrar os nomes virtuais. Entretanto, como explicado, o AD e o DNS estão externos ao Cluster e de forma nenhuma irão ser configurados como serviços do Cluster.

    "O meu objectivo é apenas ter um cluster de dois servidores a fornecer um serviço (o mais simples possivel, talvez servidor de email) e bloqueei na Validação das configurações na criação do Cluster"
    É preciso verificar que tipo de validação foi violada. Há validações de rede, disco, system requirements, etc.

    "O Starwind ou o Microsoft iSCSI terei que o instalar em ambas as máquinas virtuais?é necessario ter o Windows storage server instalado?"
    Considerando que o seu ambiente é virtualizado, não faz sentido em instalar o Starwind ou o Microsoft iSCSI nas máquinas. O que é preciso é que as máquinas enxerguem o disco e isso não será conseguido com a instalação do Starwind ou o do Microsoft iSCSI na máquinas virtuais. No seu caso, você terá que instalar o software fora da máquina virtual (no host system e não no Guest System), configurar um disco e no momento do cluster apresentar esse disco às máquinas virtuais.

    "Dá pra usar só o Starwind ou é preciso instalar o Windows Storage Server ?"
    Como o Jr. respondeu, apenas o Microsoft iSCSI ou o Starwind já simula o storage. O Windows Storage Server não é complementar. Você terá que escolher uma dessas três ferramentas (não recomendo o Windows Storage Server em virtude das razões já discutidas).

    "Em relação a configuração do AD e DNS, você vai precisar inicialmente de um servidor que será o seu MCSC e outro servidor que será o por exemplo o Nó 1."
    Não olhei o tutorial, mas certamente que essa orientação está incorreta (ou foi interpretada incorreta), pois, não está embasada em nenhuma documentação oficial. Não tem um servidor que será o MSCS (não é MCSC). O que você terá é uma ou mais máquinas fora do cluster que farão o papel de AD e DNS e as máquinas do cluster que terão a funcionalidade MSCS habilitada. Chama-se nó cada máquina do cluster, mas é preciso de no mínimo dois nós para montar o cluster de forma que "um servidor que será o seu MCSC e outro que será por exemplo o nó 1" não faz está coerente com a documentação oficial quando falamos de FailOver Clustering.

    "Vc sabe se tem que configurar o AD e o DNS como serviços do MSCS antes de fazer a instalação do disco ou não faz diferença ? É que se o disco é um recurso externo, não precisaria de ter o DNS funcionando pra que os servidores achassem ele ? Ou não tem nada a ver ?"
    O disco não é um HOST e não será localizado com o DNS. Ainda assim, o DNS tem que estar pronto para que o cluster possa ser montado.

    Espero ter esclarescido. O assunto pode ser um pouco confuso admito. Ainda assim recomendo uma pesquisa bibliográfica, pois, há muitos detalhezinhos. O tutorial que o Jr. cita é um bom ponto de partida, mas não deixe de consultar a documentação oficial sobre o assunto (vide Books OnLine). Um link interessante sobre o assunto é do Nilton Pinheiro (também MVP)

    Alta Disponibilidade no SQL Server 2008 R2 - Failover Clustering na prática
    http://technet.microsoft.com/pt-br/sqlserver/hh207253.aspx

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível



    terça-feira, 28 de agosto de 2012 17:14
  • Oi,

    Gustavo muito Obrigado pelos seus esclarecimentos. Ao ver as suas respostas reparo que algumas das minhas perguntas não fazem sentido, peço-lhe desculpa por isso. Não é a minha área no entanto agora tenho que entregar um trabalho sobre ela. Segui todo o seu raciocinio, coloquei um servidor exclusivamente como DC, DHCPe DNS no qual vou gerir o cluster também, no entanto estou com problemas no Storage.

    Pode indicar me alguns links ou algumas indicações breves de como configurar o Microsoft iSCSI na máquina real (as versões que tenho do Microsoft iSCSI são todas para 2008 Server, existe alguma que corra no windows 7?) e depois como fazer que as máquinas virtuais a enxerguem?

    Nota: Eu já experimentei instalar o Microsoft iSCSI nas máquinas virtuais configurando as para clustering no entanto depois deu um erro ao validar o clustering.

    Mais uma vez muito obrigado pelo seu esclarecimento,

    Cumprimentos




    sexta-feira, 31 de agosto de 2012 01:02
  • Zezinho,

    Eu não respondi por saber que o Gustavo Maia estava formulando um material para você.

    Sempre estamos se comunicando sobre os posts.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    sexta-feira, 31 de agosto de 2012 13:26
    Moderador
  • Joao,

    Ambiente de Cluster é somente para Servidores, ou seja, para sistemas operacionais Windows Server, sistemas operacionais para desktop ou mobiles como o Windows 7 não são compatíveis com Cluster.

    Você poder criar ambientes virtuais dentro do Windows 7, mas o cluster vai ser no server.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    sexta-feira, 31 de agosto de 2012 13:29
    Moderador