Utilizando o VMM 2012 para criar camadas de serviços com o Windows 2012 na nuvem privada

Neste artigo irei abordar o recurso de templates de serviço no System Center Virtual Machine Manager 2012, e antes de mostrar como funciona é importante contrastar e relacionar com os templates de Virtual Machine, disponível desde a primeira versão do VMM.

Entendendo Service Templates

O recurso de templates do VMM desde as primeiras versões permite criarmos uma maquina virtual como modelo para utilizarmos no momento de criação de outras VMs. Para isso é criado uma VM, executado o SysPrep e copiado o VHD para a Library.

O recurso de Service Template utiliza os templates de VMs, mas é um recurso mais sofisticado onde podemos juntar aplicações virtualizadas, banco de dados SQL Server, definição da rede e storage automaticamente.

Um exemplo simples de implementação deste recurso é criar máquinas virtuais com determinadas aplicações pré-instaladas, por exemplo, servidores de antivírus. Para isso é possível virtualizar a aplicação que será instalada nas VMs com o Server App-V e incluir o pacote no serviço.

Nota: No próximo artigo irei abordar o Server App-V.

Um exemplo mais complexo é a implementação de um serviço de três camadas onde temos um servidor IIS acessando dados do SQL Server. Podemos criar um dois templates de VMs, um com o SQL Server virtualizado e outra máquina virtual com o IIS configurado, além da aplicação virtualizada dos componentes da camada de negócios.

Em ambos os casos, para fazer a criação das VMs basta clicar no Service Template e gerar a Instancia onde todas as VMs serão automaticamente criadas, configuradas e disponibilizadas.

Criando Service Templates

Para criar os templates utilizamos o menu próprio em Fabric do VMM 2012. Ao solicitar criar um novo template é possível escolher alguns modelos padronizados, como modelo em camadas com múltiplos servidores, um único servidor ou em branco.

Um exemplo de criação dos modelos de serviço pode ser visto abaixo, onde utilizei a opção Two-Tier onde são definidas duas VMs e uma rede lógica:

image

Neste exemplo temos duas VMs que serão configuradas, uma com IIS e a outra com SQL Server com uma placa de rede em cada uma, conectada a rede local criada anteriormente no Fabric à Virtual Networks, fornecendo assim o IP, MAC Address e até NLB se for necessário para o serviço.

Para cada VM fazemos a configuração das suas funções separadamente, após definir qual o template de VM será usada em cada uma das camadas (tiers).

O primeiro conjunto de propriedades irão definir os dados do hardware da VM, lembrando que o padrão será a definição já criada no template da VM:

image

A seguir configuramos os papeis (roles) do Windows que serão habilitados na VM, o que é uma automação do que teríamos que fazer no Server Manager logo após instalar uma VM:

image

Assim como as roles, identificamos as features (recursos) que esta VM irá ter:

image

Ainda nas configurações do sistema operacional da VM podemos indicar os dados de ativação, nome, usuário e senha, etc. No que no exemplo abaixo o nome do computador está com asterisco “*” pois o nome da VM é indicado no momento em que instanciamos o serviço, já que a cada criação do conjunto as VMs precisarão ter um nome específico:

image

Na sequencia podemos indicar serviço e aplicações que serão instaladas na VM baseados nos profiles que iremos abordar no tópico a frente. Este item é interessante para já instalar o pacote da aplicação do cliente quando esta já estiver disponível, como por exemplo, um sistema de comércio eletrônico ou outro:

image

O ultimo passo é definir a cota, ou “preço” de cada VM, que será importante ao se criar usuários que utilizarão os serviços a partir do System Center AppController, uma vez que definimos o “crédito” de cada um dos usuários.

image

Instanciando um Serviço

Para criar o conjunto de VMs para o serviço, basta clicar sobre ele e usar a opção “Publish” definindo em qual nuvem será criado o conjunto das VMs:

image

Logo após será aberta a tela de configuração dos dados específicos das instâncias (locais onde ficaram asteriscos “*”), como o exemplo abaixo retirado do System Center App Controller:

image

Windows Server 2012: NIC Team (Time de Placas)

O NIC Team é um recurso já existente hoje para servidores com placas Broadcom por meio do software BACS (http://bit.ly/N8B8Ql) e Intel pelo software PROSET (http://intel.ly/N6JqId, selecione o modelo da placa) mas com algumas restrições, por exemplo, as placas tem que ser do mesmo fabricante e de preferência do mesmo modelo.

A grande vantagem do NIC Team é a possibilidade de agrupar placas de rede para trabalharem como uma única interface de rede, como mostrado abaixo no BACS. Note que duas placas de rede de 1 GB foram agrupadas para criar uma única interface (“Rede”) que no Windows será detectado como uma interface de 2 GB:

clip_image001

Alem disso, uma prática comum é criar o time e colocar os cabos de rede em switches alternados, assim quando um switch não estiver funcionando ou fornecendo conexão a comunicação do servidor não terá perda de pacotes. Ou seja, estaríamos criando uma redundância para conexão a rede no servidor.

 

A Novidade

O que foi acrescentado no Windows 2012 é o recurso de time de placas diretamente pelo sistema operacional, o que permitirá trabalhar com placas de múltiplos fabricantes, modelos e velocidades como uma única interface lógica para o Windows.

Uma importante observação é que não é necessário usar Hyper-V ou outro software para utilizar e tirar proveito de times de placas, por exemplo, um banco de dados ou um servidor de arquivos tiraria grande proveito deste recurso.

 

Configurando NIC Team

Para configurar um time de placas de rede, vá ao Server Manager e ao clicar no servidor terá a opção Configure NIC Team como mostrado na imagem abaixo:

clip_image002

Na sequencia podemos ver as placas de rede, times já existentes e nas tarefas a opção de criar novos times:

clip_image003

A criação de um time é simples, bastando indicar as placas e o modo de comunicação. Porem, é importante conhecer configurações do switch desejado, pois ele deve ser configurado para LACP (agregação) ou Trunking para “entender” que duas placas do servidor estarão em portas diferentes com o mesmo endereço MAC e endereçamento IP.

Caso esteja utilizando um switch que não tem gerenciamento para criação da agregação (LACP) ou o trunking, escolha o modo “Switch Independent” onde não é necessário fazer configurações especificas no switch core de sua rede. Neste caso o Windows irá direcionar o fluxo a uma das placas e automaticamente fará a troca de placas quando a principal estiver indisponível.

Para isso escolha o modo apropriado na tela abaixo após configurar os switches:

image

Um documento detalhado de planejamento e configuração está disponível pela Microsoft em http://www.microsoft.com/en-us/download/details.aspx?id=30160 e o ajudará muito a entender melhor e utilizar este recurso apropriadamente.

 

Utilizando o NIC Team no Hyper-V

Para utilizar o NIC Team no Hyper-V basta escolher a placa “Microsoft Network Adapter Multiplexor Driver”:

image

Referencias:

Windows 2012 – NIC Team
http://technet.microsoft.com/en-us/library/hh831648

 

 

image

Para mais informações sobre o Windows Server 2012, acesse: http://clk.atdmt.com/MBL/go/425205719/direct/01/

Windows Server 2012: Novidades do Failover Cluster Services (MSCS)

Novidades do Microsoft Cluster Services (MSCS)

Muitas funcionalidades são de gerenciamento e configuração, mas algumas se destacam:

  • Live Migration com multiplicas placas de rede – Hoje designamos uma placa para dar suporte ao Live Migration e somos limitados a uma VM por vez. O Windows 2012 utilizará todas as placas que estejam disponiveis para o processo, o que permitirá maior desempenho e multiplas operações. O processo será alterado de uma placa dedicada como é hoje para utilizar a banda livre em toda as placas.
  • Priorização e Afinidade de VMs – Estes eram dois tópicos delicados quando vendíamos soluções MSCS, pois não temos como indicar a sequencia com que as VMs deverão iniciar e, muito menos, a dependência entre elas. Isso causava problemas com aplicações como SharePoint, System Center ou IIS que dependiam do SQL Server estar iniciado para funcionarem. Como não podíamos indicar esta ordem os servidores IIS subiam antes do SQL, causando queda ou instabilidade nos serviços.
  • Novos limites de 64 nós e até 8000 VMs Hoje o limite é 16 nós de cluster com até 1000 VMs ou 384 por host. Com o novo limite de 64 nós, aumentou correspondentemente para 8000 VMs. Um aumento de 4 e 8 vezes respectivamente no número de host e VMs suportadas.
  • Transferência de File Server transparente – Este é um dos itens muito importantes que para muitos passava despercebido em projetos e que na administração do dia-a-dia se davam conta. Quando se move um share de um File Server virtual de um nó para outro o SMB (protocolo de comunicação) derrubava a sessão e o usuário recebia uma mensagem de erro de I/O. No SMB 3.0 no Windows 2012 será possivel fazer a migração sem a perda da sessão, resolvendo este problema. Adicionalmente isso também acontecerá se o File Server foi movido para um site remoto, porém neste caso entra o Hyper-V Replica que já é outro recurso novo no Hyper-V e não do MSCS.

Configurando o Failover Clustering no Windows 2012

Como qualquer nova funcionalidade desejada no Windows 2012, iniciamos por instalar e habilitar as features desejadas pelo Server Manager. Para isso utilizamos o menu Manage à Add Roles and Features e selecionamos a Failover Clustering, que automaticamente irá incluir as ferramentas de gerenciamento e outros itens que sejam necessários para o funcionamento, sendo possível escolher ou não a instalação, por exemplo, se for remoto não precisaremos do console local:

image

O passo seguinte é definir o nome e o IP que o cluster utilizará, uma vez que o acesso dos clientes não será pelo nome e IP dos servidores e sim pelo nome e IP configurado posteriormente. Neste exemplo foi escolhido o nome MSCS-Lab e o IP 192.168.0.230 que manualmente foram acrescentados ao DNS:

Já na console do Cluster utilizamos a opção Create Cluster... para iniciar o assistente do cluster. Note que no menu lateral acima da opção de criação temos a opção Validate Configuration que funciona como um BPA (Best Practices Analyzer) e é recomendado que se execute primeiro.

image

Voltando ao assistente, o primeiro passo é selecionar quais servidores estarão no grupo:

image

O passo seguinte é indicar o nome e o IP criados para esta finalidade:

image

Ao finalizar temos uma importante opção antes de simplesmente clicar no Next que é indicar se discos de storage serão automaticamente acrescentados no cluster. Isso é interessante para evitar que após a configuração do cluster seja necessário incluir os discos, mas deve ser usado com cuidado caso existam LUNs no storage dedicada a discos de acesso direto (Pass-Throught):

image

Na sequencia são definidos os serviços que estarão contemplados pela alta disponibilidade, como maquinas virtuais, DHCP, DNS, etc. Cada serviço tem um assistente próprio e configurações próprias, portanto não teríamos como abordar cada um neste momento. Alguns dos recursos disponíveis pode ser visto a imagem logo abaixo (tópico Hyper-V Replica Broker).

Hyper-V Replica Broker

Um dos novos recursos do Hyper-V 3.0 é a réplica de VMs que permite criarmos ambientes de alta disponibilidade com Datacenters remotos. Porem, este mesmo recurso pode ser configurado pelo Failover Cluster, habilitando o recurso de alta disponibilidade em Datacenter remoto automaticamente, diferente do Hyper-V que apenas faz a réplica exigindo a inicialização da VM remota em caso da parada do Datacenter principal.

Este recurso é criado por meio do assistente de papeis (New Role...) como a imagem abaixo:

image

Após acrescentar o serviço, será habilitado um novo nome e IP virtual específico para este cluster trabalhar as réplicas:

image

Após adicionar este serviço, acesse as máquinas virtuais e com o botão direito será possível ver a opção Replication à Enable Replication e seguir o assistente mostrado no artigo de Hyper-V, indicando o nome do servidor habilitado para réplica, seja ele um cluster ou standalone.

Para maiores detalhes sobre Hyper-V Replica Broker consulte o link abaixo onde poderá entender porque é necessário para os casos de cluster criar um novo nome e IP virtual: http://blogs.technet.com/b/virtualization/archive/2012/03/27/why-is-the-quot-hyper-v-replica-broker-quot-required.aspx

Trabalhando com VMs no Failover Cluster

Para que uma maquina virtual esteja sendo protegida e controlada pelo Cluster ela precisa ser criada nele e não pelo Hyper-V Manager (é possível mover pelo System Center Virtual Machine Manager ou VMM) e para isso utilize o menu lateral Create Role como no caso mostrado no tópico anterior para acrescentar o Replica Broker ou a opção Virtual Machines à New Virtual Machine.

Na sequencia irá ter acesso a criação de uma VM normalmente como acontece com o Hyper-V, e após a criação está irá aparecer na lista de Roles do Cluster.

Alguns recursos interessantes já existentes no Windows 2008 R2 continuam a funcionar, como Live Migration e Quick Migration, onde o Live migra as maquinas em funcionamento e o Quick ao fazer um Save State. Algumas mudanças ocorrem nesta nova versão, pois é possível agora fazer a migração entre máquinas que não estejam em um cluster, mas não é o tópico em questão.

Storage File Share

Um recurso interessante é poder agora armazenar maquinas virtuais em um cluster utilizando um File Share, ou seja, utilizar um terceiro servidor como Storage ao invés de um storage físico. Para utilizar este recurso acesse uma das VMs e utilize a opção Virtual Machine Storage:

image

Na sequencia define o File Share onde deseja que a VM fique hospedada:

image

Este recurso é excelente por permitir que utilizemos clusters de alta disponibilidade sem ter um storage físico dedicado.

Prioridades

Outro interessante recurso do Failover Cluster do Windows 2012 é indicar a prioridade de cada VM, assim garantindo que um servidor de banco de dados inicialize antes de um servidor com SharePoint ou IIS estejam solicitando a este os dados para funcionamento.

Este é um recurso importante para impedir os problemas comuns que temos quando utilizamos várias VMs, uma para cada função, sendo elas dependentes entre si. Para configurar este recurso utilize as propriedades da maquina virtual:

image

No exemplo citado, o servidor de banco de dados estaria com prioridade Alta, o servidor com IIS ou SharePoint com prioridade média ou mesmo baixa dependendo do tempo total de inicialização do banco de dados.

Importante: Não existe um relacionamento entre as VMs, portanto todas que estiverem selecionadas como High serão iniciadas, depois as Medium e por ultimo as Low.

Referencias:

Windows 2012 – Failover Clustering
http://technet.microsoft.com/en-us/library/hh831579

 

image Para mais informações sobre o Windows Server 2012, acesse: http://clk.atdmt.com/MBL/go/425205719/direct/01/