VM Clouds i Windows Azure Pack visar ”Unavailable”

Det kan finns flera olika anledningar till varför det här typet av fel uppstår i WAP. När jag kom i kontakt med det senast så började jag att kolla på följande bloggpost:
http://blogs.technet.com/b/privatecloud/archive/2013/11/08/troubleshooting-windows-azure-pack-spf-amp-vmm.aspx

Det är en väldigt trevlig bloggpost som beskriver i detalj hur man löser ett antal olika fel i i WAP, tyvärr så löste det inte mitt, mitt var mycket mer konstigt än det som fanns beskriver där.

Jag kunde ganska snabbt konstatera att felet hade på något sätt att göra med SPF, frågan var bara hur. När man öppnar upp WAP Admin portalen och klickar på VM Clouds-fliken så går en förfrågan till SPF, SPF skickar sedan vidare förfrågan till VMM och VMM i sin tur frågar databasen efter information om det aktuella molnen och returnerar det till Admin portalen. Med det i åtanke så började jag kolla på SPF, dock kunde jag inte hitta några Errors eller ens några Warnings i eventloggen, det var inte förens jag aktiverade debugging i SPF som jag började hitta intressanta meddelanden, här kommer det meddelandet som jag såg:

”Exception:

System.Management.Automation.RuntimeException: VMM is unable to find the capacity settings for the specified private cloud. The private cloud may have been moved or deleted.
Verify that the private cloud is correct and that the private cloud exists on the VMM management server. —> Microsoft.VirtualManager.Utils.CarmineException: VMM is unable to find the capacity settings for the specified private cloud. The private cloud may have been moved or deleted.
Verify that the private cloud is correct and that the private cloud exists on the VMM management server.
at Microsoft.SystemCenter.VirtualMachineManager.Remoting.ServerConnection.MapIndigoExceptions(Exception e)
at Microsoft.SystemCenter.VirtualMachineManager.Cmdlets.CmdletBase.ProcessRecord()
— End of inner exception stack trace —
at System.Management.Automation.Runspaces.PipelineBase.Invoke(IEnumerable input)
at System.Management.Automation.PowerShell.Worker.ConstructPipelineAndDoWork(Runspace rs, Boolean performSyncInvoke)
at System.Management.Automation.PowerShell.Worker.CreateRunspaceIfNeededAndDoWork(Runspace rsToUse, Boolean isSync)
at System.Management.Automation.PowerShell.CoreInvokeHelper[TInput,TOutput](PSDataCollection`1 input, PSDataCollection`1 output, PSInvocationSettings settings)
at System.Management.Automation.PowerShell.CoreInvoke[TInput,TOutput](PSDataCollection`1 input, PSDataCollection`1 output, PSInvocationSettings settings)
at System.Management.Automation.PowerShell.CoreInvoke[TOutput](IEnumerable input, PSDataCollection`1 output, PSInvocationSettings settings)
at System.Management.Automation.PowerShell.Invoke(IEnumerable input, PSInvocationSettings settings)
at Microsoft.SystemCenter.Foundation.Utility.PowerShellAbstractionLayer.<>c__DisplayClass1.b__0()
at Microsoft.ManagementServices.Diagnostics.Activity.ActivityMonitorExtensions.TryCatchRethrow[TResult](IActivityMonitor monitor, Func`1 instrumentedAction)
at Microsoft.SystemCenter.Foundation.Psws.PowerShellRequestInvoker.<>c__DisplayClass1a.b__19()
at Microsoft.ManagementServices.Diagnostics.Activity.ActivityMonitorExtensions.TryCatchRethrow[TResult](IActivityMonitor monitor, Func`1 instrumentedAction)
at Microsoft.SystemCenter.Foundation.Psws.PowerShellRequestInvoker.GetAssociatedDataForCollection(ISpfOperationManagerContext context, String resourceTypeName, String navigationProperty, Guid resourceId, Guid relatedResourceId)
at Microsoft.SystemCenter.Foundation.Psws.PowerShellRequestInvoker.<>c__DisplayClass7.b__6()
at Microsoft.ManagementServices.Diagnostics.Activity.ActivityMonitorExtensions.TryCatchRethrow[TResult](IActivityMonitor monitor, Func`1 instrumentedAction)
at Microsoft.SystemCenter.Foundation.Psws.RequestInvokerDecorator.Get(ISpfOperationManagerContext context, String resourceTypeName, PropertyManager propertyManager, Nullable`1& totalCount, AssociationInfo associationInfo)”

Vad felmeddelanden säger är att en ”capacity setting” för ett specifikt moln inte kunde hittas av VMM, där var anledningen till att jag fick status ”Unavailable” i Admin portalen, låt oss gå vidare ner i VMMs databas.

Kollar man i tbl_Cloud_Cloud så finns det en kolumn som mappar CapacitySettingsID till det rätta IDt för Cloud Capacity posten i tbl_Cloud_CloudCapacity tabellen.

(tbl_Cloud_Cloud)
VMM1png

(tbl_Cloud_CloudCapacity)
VMM2

I mitt fall så kunde jag se en post för varje moln i tbl_Cloud_Cloud (låt oss säga att det var 12 st) men en saknades i tbl_Cloud_CloudCapacity (låt oss säga att det var 11), så vi har alltså ett ojämnt antal mellan antalet moln och antalet kapacitets poster.
Efter ytterligare utredning och en backup av VMMs databas så hittade jag den försvunna posten och la återigen in den i tbl_Cloud_CloudCapacity tabellen och allt började återigen att fungera.

Det som kvarstår är egentligen hur det här kunde hända? Mitt korta svar är att jag inte vet, det kanske har att göra med att någon har försökt att ta bort ett moln på felaktigt sätt, det kan också ha att göra med att någon gjorde något som den inte skulle ha gjort, vem vet :).

Mvh
Patrik

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *