Alessandro's profileAle - SmartWindowsPhotosBlogListsMore Tools Help

Ale - SmartWindows

Alessandro Gonçalves

Occupation
Location
December 31

The Messenger Series - Microsoft Research

For the last day of 2009, check this project from Microsoft Research.

Project TUVA , featuring Richard Feynman famous Lectures at Cornell also you can have the book Character of a Physical Law.

Happy New Year and have fun watching the brightest bongo player in the world.

The Messenger Series - Microsoft Research

December 15

The Fourth Paradigm: Data-Intensive Scientific Discovery - Microsoft Research

Here it is a free-book to download from MS Research. It is a collection of essays from the late Jim Gray - http://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist) . Or his page from MS Research - http://research.microsoft.com/en-us/um/people/gray/ .

Only one of the founding fathers of modern database engines and main contributor of Terra Server.

If you are interested in Computer Science and mega numbers , it is a good read.

The Fourth Paradigm: Data-Intensive Scientific Discovery - Microsoft Research

November 18

Be a Martian

After a terrible and long winter ( time without blogging) I guess it is time to start over.

Check this new site that was announced at the PDC 09

You can virtually explore the Red Planet.

http://beamartian.jpl.nasa.gov/welcome

December 31

Erro 0x800705AA ao iniciar uma máquina virtual em Hyper-V

 

Ao tentar iniciar uma VM , você poderá receber a seguinte mensagem:

 

image

Ao ler a mensagem percebemos algo de inconsistente , pois indica que a operação falhou por falta de recursos no sistema , onde não pode alocar 4069 MB de memória RAM.

Mais abaixo , ainda explica que não pode alocar os 4096MB , pois a memória disponível é 7226MB !?

Com certeza temos memória disponível o suficiente para completar a operação.

Esse comportamento pode se manifestar em servidores que possuem a arquitetura NUMA (Non Uniform Memory Access) , foi corrigido com o seguinte hotfix http://support.microsoft.com/Default.aspx?id=953585 .

Basicamente , o erro acontece por uma falha de alocação de memória na arquitetura NUMA , que introduz conceitos diferentes do modela padrão de suporte SMP.

No modelo padrão SMP (Symmetric Multi Processor), cada processador possui acesso igual a memória e I/O. Todavia com o número elevado de processadores no hardware atual , isso causa uma limitação / bottleneck de performance no bus do processador.

Para a arquitetura NUMA (Non Uniform Memory Access), cada processador (por consequência os cores associados ao processador)roda em ambiente chamado NUMA Node. Cada NUMA Node compartilha seu próprio memory controller , o que podemos chamar de “memória local” ao NUMA Node , enquanto o resto da memória do sistema , pode ser considerada “Non-Local Memory”.

NUMA Arch

 

Esse conceito determina que a velocidade de acesso a memória não seja uniforme entre os processadores , pois se é necessário acessar uma página de memória “local” o tempo será consideravelmente menor do que ao acessar um dado que está localizado em “Non-Local Memory”.

Por isso o sistema operacional tentará alocar memória local para cada processo rodando em um NUMA node, para que ocorra o máximo de eficiência no acesso a memória e que o system bus fique mais liberado para I/O.

Após essa breve introdução , como sabemos se o nosso hardware suporta NUMA. Normalmente o fornecedor de hardware é que deve indicar isso. Todavia , servidores com processadores AMD são baseados na arquitetura NUMA. Servidores com processadores INTEL , podem apresentar SMP padrão ou NUMA e a maior probabilidade será em servidores com múltiplos sockets.

Para servidores com Hyper-V instalado podemos determinar isso facilmente ao observar o contador chamado “Hyper-V VM Vid NUMA Node” , ele irá reportar uma instância para cada NUMA Node , ou apenas uma se o servidor possuir um único NUMA Node.

Neste exemplo o servidor não possue NUMA habilitado:

Hyper-V Numa Node Counter

Voltando ao erro de iniciar a máquina virtual , basicamente há um erro quando o processo do Hyper-V tenta alocar memória. Esse comportamento é apresentado com mais frequência quando utilizamos a parent partition ( Windows 2008 host) , para fazer operações que possam causar que o System File Cache aumente ( cópia de arquivos muito grandes , por exemplo). Pois quando iniciamos a VM , irá ocorrer um flush do System File Cache se por acaso o sistema necessitar de memória para alocar para a VM. As "pages" do System File Cache irão mover-se para a StandBy List , para que mais tarde sejam liberadas ( freed ). O problema nesse caso , é que antes do hotfix , o Windows Server 2008 barra alocações NUMA contra a Stand By List. Fazendo que o sistema esteja com um consumo baixo de memória , mas a maioria da memória esta como "Cached" , que é composto por (System File Cache , Modified Pages e Standby Pages).

Este é um snapshot de um servidor apresentando o problema , verifiquem que temos o Total de Physical Memory em 8GB , mas praticamente toda a memória está em Cached , e o Memory está em 1.23 GB.

taskmgr - Cached

Windows NUMA Support

Understanding NUMA Access - SQL 2008

NUMA Optimization for Windows APP

Obrigado e Feliz 2009

Alessandro

October 16

Recurso de Cluster MSExchangeSA falha – MSExchangeMU 1043 (0x80070015)

 

Olá ,

Acabei de trabalhar em um incidente muito interessante em vários sentidos. Especialamente em relação que temos que olhar todos os aspectos e logs para encontrarmos a razão para certos comportamentos e não nos fixarmos tão profundamente na primeira impressão que temos.

Mas chega de conversa e vamos falar do incidente.

Cluster Exchange 2003 ( 3x1 ) , onde os 3 nós apresentavam a mesma falha logo após um unexpected shutdown , o recurso de System Attendant não incia com erro de timeout. Após aumentar o diagnostic logging de MSExchangeSA e MSExchangeMU apenas recebemos um erro :

1043 MSExchagneMU Error code is error 80070015 (The device is not ready.)

Com esse evento fixo na memória , e apresentando em todos os nós do cluster ao mesmo tempo rapidamente decidi que isso era um problema do METABASE do IIS .

Pesquisei por esse evento e revi quase todos os artigos de suporte , mas nenhum resolvia esse evento específico.

Ao verificar o cluster log achei o seguinte trecho ao iniciar o recurso:

 

000008dc.00000c98::2008/10/16-22:43:26.071 INFO [FM] FmpRmCreateResource: creating resource 43bc0450-9b47-4593-b1a2-0a76e491f02d in shared resource monitor

00000bd0.00000be8::2008/10/16-22:43:26.071 ERR  Generic Service <Service Registry>: Service 'Another Service' is controlled by another resource. Error: 5010.

00000bd0.00000be8::2008/10/16-22:43:26.071 WARN [RM] RmpInsertResourceList failed, returned 5010

00000bd0.00000be8::2008/10/16-22:43:26.071 ERR  [RM] Failed creating resource 43bc0450-9b47-4593-b1a2-0a76e491f02d, error 5010.

000008dc.00000c98::2008/10/16-22:43:26.071 INFO [FM] FmpRmCreateResource: unable to create resource 43bc0450-9b47-4593-b1a2-0a76e491f02d

00000bd0.00000af4::2008/10/16-22:44:10.235 INFO Microsoft Exchange System Attendant <EVS1 - Exchange System Attendant>: [EXRES] Reporting state 129 (OnlinePending).

00000bd0.00000af4::2008/10/16-22:45:39.651 INFO Microsoft Exchange System Attendant <EVS1 - Exchange System Attendant>: [EXRES] Reporting state 129 (OnlinePending).

00000bd0.00000afc::2008/10/16-22:45:39.682 INFO [RM] RmpTimerThread: Giving a reprieve for resource EVS1 - Exchange System Attendant...

00000bd0.00000af4::2008/10/16-22:47:09.278 ERR  Microsoft Exchange System Attendant <EVS1 - Exchange System Attendant>: [EXRES] EventLogging: EVS1 - Exchange System Attendant: Failed to bring this resource online because of timeout.      Error Code: 1460.

00000bd0.00000af4::2008/10/16-22:47:09.278 INFO Microsoft Exchange System Attendant <EVS1 - Exchange System Attendant>: [EXRES] Reporting state 4 (Failed).

00000bd0.00000af4::2008/10/16-22:47:09.278 INFO [RM] RmpSetResourceStatus, Posting state 4 notification for resource <EVS1 - Exchange System Attendant>

00000bd0.00000af4::2008/10/16-22:47:09.278 INFO Microsoft Exchange System Attendant <EVS1 - Exchange System Attendant>: [EXRES] State change: from 129 (OnlinePending) to 4 (Failed).

000008dc.00000be4::2008/10/16-22:47:09.278 INFO [FM] NotifyCallBackRoutine: enqueuing event

000008dc.00000be4::2008/10/16-22:47:09.278 INFO [FM] Calling RmNotifyChanges in monitor 0bd0.

000008dc.00000998::2008/10/16-22:47:09.278 INFO [CP] CppResourceNotify for resource EVS1 - Exchange System Attendant

00000bd0.00000af4::2008/10/16-22:47:09.278 ERR  Microsoft Exchange System Attendant <EVS1 - Exchange System Attendant>: [EXRES] EventLogging: EVS1 - Exchange System Attendant: Failed to bring the resource online.      Error Code: 1460.

00000bd0.00000af4::2008/10/16-22:47:09.278 INFO Microsoft Exchange System Attendant <EVS1 - Exchange System Attendant>: [EXRES] Thread exited: DwOnlinePrimaryThread. Returning error 1460.

00000bd0.00000af4::2008/10/16-22:47:09.278 INFO Microsoft Exchange System Attendant <EVS1 - Exchange System Attendant>: [EXRES] DwResourceThread::decrement:: g_lThreadCount=1.

000008dc.00000998::2008/10/16-22:47:09.278 INFO [FM] FmpRmDoHandleCriticalResourceStateChange: call InterlockedDecrement on gdwQuoBlockingResources, Resource db7cbd8a-255a-4ff1-9ef4-a469112004d9

00000bd0.00000af4::2008/10/16-22:47:09.278 INFO Microsoft Exchange System Attendant <EVS1 - Exchange System Attendant>: [EXRES] EXCHANGE_RESOURCE::Release: Count=2.

000008dc.0000099c::2008/10/16-22:47:09.278 WARN [FM] FmpHandleResourceTransition: Resource Name = db7cbd8a-255a-4ff1-9ef4-a469112004d9 [EVS1 - Exchange System Attendant] old state=129 new state=4

000008dc.0000099c::2008/10/16-22:47:09.278 WARN [FM] FmpHandleResourceTransition: Resource failed, post a work item

Observem que temos essa função chamando um decremento no mecanismo de locking dos recursos do quorum , o que também explica o porque dos recursos não conseguirem fazer failover , pois existam shared locks para o quorum e é necessário acesso ao quorum para fazer a operação de failover.

000008dc.00000998::2008/10/16-22:47:09.278 INFO [FM] FmpRmDoHandleCriticalResourceStateChange: call InterlockedDecrement on gdwQuoBlockingResources, Resource db7cbd8a-255a-4ff1-9ef4-a469112004d9

Mas isso nos dá uma pista do que pode estar causando isso , ao observar a seção entre InterlockedIncrement / InterlockedDecrement .

Nessa seção logo antes da tentativa de início do MSExchangeSA temos uma falha na criação de um recurso , e mencionando que o recurso era controlado por outro recurso:

00000bd0.00000be8::2008/10/16-22:43:26.071 ERR  Generic Service <Service Registry>: Service 'Another Service' is controlled by another resource. Error: 5010.

Isso nos deu a pista que faltava para inciar o recurso.  Nesse caso decidimos por remover todos os recursos de cluster relacionados com Generic Service <Service Registry>: , após feito isso , o recurso de MSExchangeSA e outros entraram online normalmente.

Isso nos mostra que devemos sempre ter a mente aberta e procurar o máximo de informação possível para resolver um problema.

Obrigado e até a próxima

 
Photo 1 of 4