Deduplicação do Windows Server 2012 R2 com Hyper-V

Ontem em um cliente usei o meu servidor para as Demos de System Center e ele se interessou quando disse que utilizava o recurso Deduplication (ou Dedup) do Windows Server 2012 R2. Consequentemente, a reunião migrou do System Center para otimização de discos com o Hyper-V.

Afinal de contas, o ganho com Dedup em VHDs é impressionante, chegando no meu caso a quase 80% de espaço adicional:

image

Importante: Primeiro ponto nessa conversa é deixar claro que a Microsoft não suporta Dedup para Hyper-V em hosts de Hyper-V para VMs em produção. O motivo é explicado no TechNet http://technet.microsoft.com/en-us/library/hh831700.aspx, e basicamente é porque Dedup em ambiente onde os arquivos estão abertos pode gerar diversos erros:

“Deduplication of open files has not been fully validated for general virtualization or other applications, and additional issues may be encountered.”

Porem, surgem sempre duas perguntas neste caso:

Pergunta 1: Mas o Dedup do Windows 2012 R2 pelo PowerShell tem o modo “Files” e o modo “Hyper-V”, como não é suportado?

Resposta: Para Hyper-V só é suportado para ambiente VDI, onde as maquinas são de usuário com SO cliente. Como em geral ambientes de VDI utilizam o modo de pool e uma única VM é duplicada a cada nova seção, se 100 usuário estão online teríamos 100 VHDs sendo criados dinamicamente com dados duplicados.
Neste caso fica evidente que o uso do Dedup será suportado, uma vez que os VHDs são dinamicos e não estão o tempo todo em uso. Alem disso em geral são utilizados discos diferenciais, mantendo o disco parent imutável.

Pergunta 2: Se não é suportado, porque eu estou usando?  ;-)

Resposta: Não é suportado, mas no meu caso não é ambiente de produção e utilizo Dedup manual:

image

Não mantenho meu servidor 24 horas por dia ligado, então quando todas as VMs estão paradas, normalmente faço isso semanalmente, inicio o Job do Dedup com o comando:

Start-DedupJob -Type Optimization -Volume X:

Depois basta monitorar se o Job já terminou com Get-DedupJob:

Capturar2

Assim, meus arquivos VHD não correm o risco de serem manipulados enquanto estão em uso e garanto que periodicamente está sendo atualizado o Dedup.

Porem, é sempre bom lembrar que para não ter problemas o ideal é ter um disco ou volume separado para os VHDs, pois na configuração do Dedup este volume estará configurado como VDI (ou Hyper-V no PowerShell):

image

Utilizando o Windows Azure Pack como Portal do Service Manager

Uma reclamação constante dos usuários do System Center Service Manager (SCSM) é o seu portal. Na versão disponivel para teste Technical Preview que será lançada neste ano, o portal do SM continua sendo em SharePoint Foundation 2010 e sem permitir customizações na interface. Desta forma, os clientes que utilizam o WAP como acesso externo, tinham que ter uma ferramenta de terceiro para fazer requisições.

Porém, algo que poucos já utilizaram é a integração entre o Windows Azure Pack (WAP) com o Service Manager para fornecer um portal completo de auto-provisionamento com VMs, bancos de dados, sites e requisições de serviço.

 

Configurando o Windows Azure Pack como Portal do Service Manager

O primeiro passo para a integração é fazer o download do componente GridPro que é gratuito até uma assinatura (tenant), sendo necessário adquirir a versão Pro para trabalhar com multiplas assinaturas (multi-tenant).

Entre no portal do WAP e em Request Management baixe o componente GridPro, que será manualmente e simples, solicitando alguns dados do servidor do Service Manager:

2015-01-08_15-30-18

Após a instalação do componente utilizamos a interface do WAP para incluir os dados do servidor que está com o GridPro:

SNAG-0001

SNAG-0003

O passo seguinte é incluir o serviço Request Management como parte da assinatura padrão que é ofertada no portal do Azure Pack:

SNAG-0014

 

Utilizando o Windows Azure Pack como Portal

Agora já podemos abrir o portal do WAP e ver que a aba “Solicitações” foi habilitada, permitindo que sejam vistos chamados em aberto ou adicionar novos chamados (incidentes):

SNAG-0015

Ao utilizar a criação de uma nova solicitação, a interface moderna do WAP se alinha com os dados fornecidos na oferta do serviço, de forma muito clara e fácil de entendimento:

SNAG-0016

Caso a sua oferta de serviço contenha objetos, como lista e enumeradores, todos são suportados no WAP:

SNAG-0017

Como resultado, ao abrir a solicitação pelo portal do WAP podemos verificar todos seus dados e a lista de solicitações em aberto:

SNAG-0018

SNAG-0019

Ao abrir a solicitação registrada, podemos ver detalhes e a lista de atividades que o template do Service Manager define nos workflows, de forma muito mais intuitiva que o Self-Portal do Service Manager, assim como documentos anexados e artigos de conhecimento (KB):

SNAG-0020

SNAG-0021 

Mesmo a parte de comentários e interações entre o sistema/operador e o usuário são simples e fáceis de serem acessados e utilizados:

SNAG-0022

SNAG-0023

Porem, caso sua empresa ainda utilize o Self-Portal, será possivel visualizar os chamados abertos no WAP dentro dele, como o exemplo abaixo da requisição que abrimos:

SNAG-0025

 

Conclusão

Com a integração entre o Windows Azure Pack 2.0 e o System Center Service Manager, oferecer serviços de Cloud (público ou privado) se tornará muito mais profissional!

Erro no SQL Server na Instalação do System Center Operations Manager

Já recebi diversas vezes perguntas de profissionais de TI sobre o erro abaixo do instalado do SCOM em todas as suas versões.

Realmente o erro é muito genérico e normalmente quem me perguntou consultou páginas de requisitos e não achou o problema.

image

Neste exemplo especifico que simulei, o erro é o SQL Server 2012 que está no SP1 e o SCOM exige o SP2, que ainda não havia sido aplicado:

WU

Mas como chegar a este detalhe para saber se o problema é um patch, service pack ou comunicação com o servidor?

Para isso o instalador do System Center gera um log que fica no diretório C:\User\<usuário>\AppData\SCOM\Logs com o nome OpsMgrSetupWizard.txt

Tela1

Neste arquivo é detalhado os passos das validações como abaixo:

[11:08:46]:    Debug:    :MSSQLSERVER on server w2012r2-sql2012 is in a running state
[11:08:46]:    Info:    :Info:Opening/Testing Sql Connection on w2012r2-sql2012, port:
[11:08:46]:    Debug:    :Connection was not open.  We will try to open it.
[11:08:46]:    Debug:    :SqlConnectionReady returned True.
[11:08:47]:    Debug:    :MSSQLSERVER on server w2012r2-sql2012 is in a running state
[11:08:47]:    Debug:    :Connection was not open.  We will try to open it.
[11:08:47]:    Debug:    :SqlConnectionReady returned True.
[11:08:47]:    Info:    :Info:Using DB command timeout = 1800 seconds.
[11:08:47]:    Info:    :SQL Product Level: SP1
[11:08:47]:    Info:    :SQL Edition: Enterprise Edition (64-bit)
[11:08:47]:    Info:    :SQL Version: 11.0.3128.0
[11:08:47]:    Always:    :Current Version of SQL=11.0.3128.0   Required Version=11.0.5058
[11:08:47]:    Always:    :Entering GetRemoteOSVersion.
[11:08:47]:    Info:    :Info: remoteOS = 6.3.9600
[11:08:47]:    Info:    :Info:Using DB command timeout = 1800 seconds.
[11:08:47]:    Info:    :Info:Using DB command timeout = 1800 seconds.
[11:08:47]:    Info:    :The SQL Collation is valid.
[11:08:47]:    Info:    :Info:Using DB command timeout = 1800 seconds.
[11:08:47]:    Info:    :Info:DatabaseConfigurationPage: DB connection attempt completed.
[11:08:47]:    Info:    :Info:DatabaseConfigurationPage: DB connection attempt completed.

Neste arquivo é possivel visualizar todos os testes que ele efetuou e saber se o problema é permissão, porta, collation ou, como neste exemplo, falta de update.