<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>MSVirtualization : Performance, Update</title><link>http://msmvps.com/blogs/msvirtualization/archive/tags/Performance/Update/default.aspx</link><description>Tags: Performance, Update</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Usando o Hyper-V Best Practices Analyzer</title><link>http://msmvps.com/blogs/msvirtualization/archive/2011/04/08/usando-o-hyper-v-best-practices-analyzer.aspx</link><pubDate>Fri, 08 Apr 2011 11:00:20 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1791422</guid><dc:creator>Leandro Carvalho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/msvirtualization/rsscomments.aspx?PostID=1791422</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/msvirtualization/commentapi.aspx?PostID=1791422</wfw:comment><comments>http://msmvps.com/blogs/msvirtualization/archive/2011/04/08/usando-o-hyper-v-best-practices-analyzer.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Introdução&lt;/strong&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;     &lt;br /&gt;&lt;/b&gt;Como administradores de servidores devemos garantir que todos tenham as configurações certas e corretas, de acordo com as boas práticas criadas por outros administradores e pela própria Microsoft. Aplicando essas práticas conseguimos garantir mais performance, segurança e uma melhor administração dos serviços. Em um ambiente virtualizado com o Hyper-V não é diferente, aliás existem várias práticas recomendadas para ambiente virtualizados. O desafio é justamente saber quais são as boas práticas que devemos implementar, a diferença e o impacto de cada uma delas e os benefícios que teremos. Antigamente este era um trabalho manual feito por um especialista. Eu, por exemplo, já fiz algumas consultorias que chamávamos de “Preventiva”. Tínhamos uma lista de boas práticas e comparávamos cada servidor para saber quais estavam ou não de acordo com elas.&lt;/p&gt;  &lt;p&gt;No Windows Server 2008 R2 existe uma solução chamada Best Practices Analyzer (BPA) para fazer todo este procedimento de forma automatizada, mostrando as melhores configurações de acordo com o serviço instalado. Nele existe um banco de dados com todas as boas práticas de acordo com o serviço instalado, reconhecendo todas as funcionalidades que não estão de acordo com as recomendações e mostrando as soluções para cada uma delas. Confira abaixo a lista de BPA para Windows:&lt;/p&gt;  &lt;p&gt;· Best Practices Analyzer for Active Directory Certificate Services&lt;/p&gt;  &lt;p&gt;· Best Practices Analyzer for Active Directory Domain Services&lt;/p&gt;  &lt;p&gt;· Best Practices Analyzer for Active Directory Rights Management Services&lt;/p&gt;  &lt;p&gt;· Best Practices Analyzer for Application Server&lt;/p&gt;  &lt;p&gt;· Best Practices Analyzer for Domain Name System&lt;/p&gt;  &lt;p&gt;· Best Practices Analyzer for Dynamic Host Configuration Protocol&lt;/p&gt;  &lt;p&gt;· Best Practices Analyzer for File Services&lt;/p&gt;  &lt;p&gt;· Best Practices Analyzer for Hyper-V&lt;/p&gt;  &lt;p&gt;· Best Practices Analyzer for Internet Information Services&lt;/p&gt;  &lt;p&gt;· Best Practices Analyzer for Network Policy and Access Services&lt;/p&gt;  &lt;p&gt;· Best Practices Analyzer for Remote Desktop Services&lt;/p&gt;  &lt;p&gt;· Best Practices Analyzer for Windows Server Update Services&lt;/p&gt;  &lt;p&gt;Neste artigo eu mostrarei alguns detalhes, instalação e configuração do BPA para Hyper-V&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Instalação&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Para utilizar o BPA para Hyper-V é preciso instalar um pacote de atualização para o Windows, que pode ser baixado pelo link a seguir: &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyId=89d80c15-0082-4fef-a4fc-fefa463bed08&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyId=89d80c15-0082-4fef-a4fc-fefa463bed08&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Para instalá-lo, basta estar logado como administrador local no servidor e executar o arquivo do link acima.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/8176.HBPA_5F00_3912B27A.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="HBPA" border="0" alt="HBPA" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/8030.HBPA_5F00_thumb_5F00_66D05572.jpg" width="244" height="108" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Figura 1 – Instalação do BPA para Hyper-V&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Pré-requisitos&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Além da credencial de administrador local, os 4 pré-requisitos abaixo devem estar instalados e em execução:&lt;/p&gt;  &lt;p&gt;· Windows Hypervisor (Hyper-V)&lt;/p&gt;  &lt;p&gt;· Hyper-V Virtual Machine Management Service&lt;/p&gt;  &lt;p&gt;· Hyper-V Networking Management Service&lt;/p&gt;  &lt;p&gt;· Hyper-V Image Management Service&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Configuração&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Depois da instalação, para usar o BPA, abra o &lt;i&gt;Server Manager&lt;/i&gt; através do menu iniciar, clique em&lt;i&gt; Roles&lt;/i&gt; e em &lt;i&gt;Hyper-V&lt;/i&gt;. Do lado direito do &lt;i&gt;Server Manager&lt;/i&gt; você verá a opção &lt;i&gt;Best Practices Analyzer&lt;/i&gt;. Clique em &lt;b&gt;&lt;i&gt;Scan This Role&lt;/i&gt;&lt;/b&gt;, conforme figura 2.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/7723.HVBPA1_5F00_5D941A31.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="HVBPA1" border="0" alt="HVBPA1" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/2210.HVBPA1_5F00_thumb_5F00_10C02DCE.jpg" width="509" height="383" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Figura 2 – Execução do BPA para Hyper-V&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Todas as configurações existentes no servidor com o Hyper-V instalado serão analisadas e algumas dicas serão apresentadas após este procedimento. Alguns exemplos que são verificados são: Serviços, processadores virtuais e lógicos, adaptadores de rede, máquinas virtuais, memória, drivers, storage, sistema operacional guest, e várias outros. No total são 30 análises feitas somente para Hyper-V. Para ter mais detalhes sobre cada uma delas, acesse &lt;a href="http://technet.microsoft.com/en-us/library/ee941122(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/ee941122(WS.10).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Existem 4 classificações após a análise: &lt;i&gt;Compliant, Noncompliant, Excluded&lt;/i&gt; e &lt;i&gt;All&lt;/i&gt;. Na primeira guia é possivel observar cada uma delas e as respectivas severidades caracterizadas como erros e avisos.&lt;/p&gt;  &lt;p&gt;Pra cada uma delas você pode encontrar informações como o problema, o impacto e o mais importante, como resolvê-lo. No exemplo da figura 3 é exibido um aviso sobre o uso de snapshots nas máquinas virtuais.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/7823.HVBPA2_5F00_2E7192C0.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="HVBPA2" border="0" alt="HVBPA2" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/6131.HVBPA2_5F00_thumb_5F00_35611F78.jpg" width="320" height="385" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Figura 3 – Aviso sobre Snapshot&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Entretanto, na figura 4 uma boa prática com a severidade “erro” foi encontrada relacionada a configuração da placa de rede do servidor. A solução neste caso é adicionar mais placas de rede ao computador físico.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/0118.HVBPA3_5F00_0B317190.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="HVBPA3" border="0" alt="HVBPA3" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/5126.HVBPA3_5F00_thumb_5F00_068B4109.jpg" width="322" height="387" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Figura 4 – Erro relacionado a placa de rede&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Clicando na guia Compliant são exibidas todas as boas práticas de já estão sendo utilizadas.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/2818.HVBPA4_5F00_6A2DD91B.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="HVBPA4" border="0" alt="HVBPA4" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/0245.HVBPA4_5F00_thumb_5F00_7A792B07.jpg" width="497" height="173" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Figura 5 – Guia Compliant&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Integração com Powershell&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;O BPA também pode ser usado através do Powershell, possibilitando a criação de scripts e sua utilização em &lt;i&gt;Server Core&lt;/i&gt;, versão do Windows somente em linha de comando.&lt;/p&gt;  &lt;p&gt;Para utilizar os &lt;i&gt;commandlets&lt;/i&gt; do BPA através do Powershell é preciso importar os módulos do &lt;i&gt;Server Manager&lt;/i&gt; e do &lt;i&gt;BPA&lt;/i&gt; através das seguintes linhas de comando:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;i&gt;Import-Module ServerManager &lt;/i&gt;&lt;/strong&gt;&lt;b&gt;&lt;i&gt;       &lt;br /&gt;&lt;strong&gt;Import-Module BestPractices          &lt;br /&gt;&lt;/strong&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Para escanear o Hyper-V é preciso usar o commandlet &lt;i&gt;Invoke-BPAModel&lt;/i&gt;&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;strong&gt;seguido do ID do Hyper-V. &lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;i&gt;Invoke-BPAModel –BestPracticesModelID Microsoft/Windows/Hyper-V&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Para visualiza&lt;/strong&gt;&lt;strong&gt;r o resultado, o commando &lt;i&gt;Get-BpaResult&lt;/i&gt; é usado com o seguinte parâmetro:&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;i&gt;Get-BpaResult -BestPracticesModelId Microsoft/Windows/Hyper-V&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Na figura 6 os commandos acima foram executados e é possível verificar os resultados com o &lt;i&gt;Get-BpaResult&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/7345.HVBPA5_5F00_179ED312.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="HVBPA5" border="0" alt="HVBPA5" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/5153.HVBPA5_5F00_thumb_5F00_76E7E39F.jpg" width="502" height="268" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Figura 6 – Comandos do Powershell para usar o BPA&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;É possível também fazer um filtro usando o parâmetro &lt;i&gt;Where-Object&lt;/i&gt; no powershell. No exemplo abaixo é exibido somente os avisos e erros do BPA:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;i&gt;Get-BpaResult -BestPracticesModelId Microsoft/Windows/Hyper-V | Where-Object {$_.Severity –eq “Warning” –or $_.Severity –eq “Error”}&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/7658.HVBPA6_5F00_1B2CC822.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="HVBPA6" border="0" alt="HVBPA6" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/3821.HVBPA6_5F00_thumb_5F00_56507E20.jpg" width="502" height="214" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Figura 7– Filtro para obter erros e avisos&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Caso o servidor estiver usando a versão Server Core, é preciso instalar o Powershell e as funcionalidades com os 3 seguintes comandos:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;i&gt;dism /online /enable-feature /featurename:MicrosoftWindowsPowerShell&lt;/i&gt;&lt;/strong&gt;&lt;i&gt;      &lt;br /&gt;&lt;strong&gt;dism /online /enable-feature /featurename:ServerManager-PSH-Cmdlets &lt;/strong&gt;&lt;b&gt;       &lt;br /&gt;&lt;strong&gt;dism /online /enable-feature /featurename:BestPractices-PSH-Cmdlets&lt;/strong&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;É possível exportar todo o resultado para um arquivo CSV ou até mesmo criar um relatório no formato HTML.&lt;/p&gt;  &lt;p&gt;Veja o exemplo abaixo para exportar todo o resultado para um arquivo HTML:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;i&gt;Get-BpaResult -BestPracticesModelId Microsoft/Windows/Hyper-V | Where-Object {$_.Severity -eq &amp;quot;Error&amp;quot; -or $_.Severity -eq “Warning” } | ConvertTo-Html -Property Severity,Category,Title,Problem,Impact,Resolution,Help -Title &amp;quot;BPA Report for Hyper-V&amp;quot; -Body &amp;quot;BPA Report for Hyper-V &amp;lt;HR&amp;gt;&amp;quot; –Head &amp;quot;&amp;lt;title&amp;gt;BPA Report&amp;lt;/title&amp;gt;&amp;lt;style type=’text/css’&amp;gt; table { border-collapse: collapse; width: 700px } body { font-family: Arial } td, th { border-width: 2px; border-style: solid; text-align: left; padding: 2px 4px; border-color: black } th { background-color: grey } td.Red { color: Red } &amp;lt;/style&amp;gt;&amp;quot; | Out-File &amp;quot;C:\bpa.html&amp;quot;&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;i&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/5807.BPAReport_5F00_3A5F4928.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="BPAReport" border="0" alt="BPAReport" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/msvirtualization.metablogapi/7271.BPAReport_5F00_thumb_5F00_2AFBC14C.jpg" width="477" height="170" /&gt;&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Figura 8– Relatório em HTML&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Leandro Carvalho &lt;/strong&gt;&lt;b&gt;     &lt;br /&gt;&lt;/b&gt;MCSA+S+M | MCSE+S | MCTS | MCITP | MCBMSS | MCT | MVP Virtual Machine     &lt;br /&gt;&lt;a href="http://msmvps.com/blogs/msvirtualization"&gt;MSVirtualization&lt;/a&gt; | &lt;a href="http://leandroesc.wordpress.com/"&gt;Wordpress&lt;/a&gt; | &lt;a href="http://www.winsec.org/"&gt;Winsec.org&lt;/a&gt; | &lt;a href="http://www.linhadecodigo.com.br/Colaborador.aspx?id=568"&gt;LinhadeCodigo&lt;/a&gt; | &lt;a href="https://mvp.support.microsoft.com/profile=ACB46F49-3183-486B-90E9-71DA8556786C"&gt;MVP Profile&lt;/a&gt;     &lt;br /&gt;Twitter: &lt;a href="http://twitter.com/leandroeduardo"&gt;LeandroEduardo&lt;/a&gt; | LinkedIn: &lt;a href="http://au.linkedin.com/in/leandroesc"&gt;Leandroesc&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1791422" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/msvirtualization/archive/tags/Performance/default.aspx">Performance</category><category domain="http://msmvps.com/blogs/msvirtualization/archive/tags/Hyper-V+R2/default.aspx">Hyper-V R2</category><category domain="http://msmvps.com/blogs/msvirtualization/archive/tags/Update/default.aspx">Update</category><category domain="http://msmvps.com/blogs/msvirtualization/archive/tags/Gerenciamento/default.aspx">Gerenciamento</category><category domain="http://msmvps.com/blogs/msvirtualization/archive/tags/Hyper-V+Server/default.aspx">Hyper-V Server</category><category domain="http://msmvps.com/blogs/msvirtualization/archive/tags/Best+Practices+Analyzer/default.aspx">Best Practices Analyzer</category></item></channel></rss>