Tag Archives: Virtual Machine Manager

VMM2012, Perimeter host i Error (2910)

Wczoraj wieczorem host którego mam w DMZecie przestał odpowiadać w VMM. Błąd który wystąpił to Error (2910):

Error (2910)
 VMM does not have appropriate permissions to access the resource C:\Windows\system32\vmms.exe on the DMZ server.
Access is denied (0x80070005)Recommended Action
 Ensure that Virtual Machine Manager has the appropriate rights to perform this action.

Problem jest z kontem serwisowym VMM na hoście który jest w workgroupie. Konto wygasa domyślnie po 45 dniach.

Odznaczamy User must change password at next logon i zaznaczamy Password never expires.

KB Microsoftu: http://support.microsoft.com/kb/971825

Stan danych po migracji P2V online przez VMM

Na IT Campie vGruru w Warszawie w trakcie sesji wywiązała się dyskusja na temat, w jakim stanie zostaną przechwycone dane z dysku w trakcie migracji na żywo do maszyny wirtualnej za pomocą Virtual Machine Managera. Nie wchodząc w to dokładnie jak VMM dokonuje migracji P2V przedstawię stan danych po migracji do maszyny wirtualnej za pomocą VMM2012. Maszyna, która została zwirtualizowana to Windows Server 2008R2 SP1.

Przypadek 1

Na maszynie przed migracją został uruchomiany skrypt powershellowy:

While($true)
{
Get-Date | Out-File C:\konwersja.txt –Append
Start-Sleep 2
}

Skrypt ten, co 2 sekundy zapisuję aktualną datę do pliku konwersja.txt
Poniżej log VMM z procesu migracji. Na czerwono zaznaczone Rozpoczęcie kopiowania dysku oraz wyłączenie maszyny fizycznej.

Na maszynie wirtualnej w pliku ostatni wpis jest o godzenie 21:22:23.

Na maszynie, która była źródłem ostatni wpis jest o 21:34:26.

Kopiowanie rozpoczęło się o 21:22:16. Jak widać dane zapisane po tej godzinie nie zostały przeniesione na maszynę wirtualną.

Przypadek 2

Na maszynie przed migracją został uruchomiany skrypt powershellowy:

 $file = New-Object System.IO.StreamWriter("C:\\keep_konwersja.txt", $true)
While($true)
{
$file.WriteLine((Get-Date))
$file.Flush()
Start-Sleep 2
}

Skrypt ten, co 2 sekundy zapisuję aktualną datę do pliku keep_konwersja.txt. W przeciwieństwie do skryptu z przypadku pierwszego proces ten blokuję plik.
Log VMM:

Na maszynie wirtualnej w pliku ostatni wpis jest o godzenie 22:06:46.

Na maszynie, która była źródłem ostatni wpis jest o 22:18:34.

Dane są w takim stanie jak w przypadku pierwszym.

Dlaczego tak się dzieje?

Odwołując się do dokumentacji:

VMM creates a copy of local NTFS volumes and data of VSS-aware applications. VMM leverages the Volume Shadow Copy Service (VSS) to ensure that data is backed up consistently while the server continues to service user requests. VMM uses this read-only snapshot to create a VHD.
 

Czyli aby zapewnić poprawną konsystencję danych jest wykorzystywany mechanizm VSS, który tworzy snapshot w trybie read-only na początku procesu kopiowania. Przez to dane, które zostaną zmodyfikowane po starcie kopiowania nie będą już dostępne na maszynie wirtualnej.
Podsumowując należy pamiętać, aby usługi, aplikację, które zapisują coś na dysku przenoszonej maszyny były wyłączone, aby nie stracić danych. Osobiście polecam używania opcji migracji offline do maszyn wirtualnych.
Pozdrowienia dla obecnych na IT Campie :).

Instalacja konsoli VMM 2012 RTM na Windows 8 Customer Preview

W czasie instalacji konsoli System Center Virtual Machine Manager 2012 na Windows 8 Customer Preview dostaniemy piękny komunikat o tym że system operacyjny nie jest wspierany i nie można zainstalować konsoli

Szukając rozwiązania probelmu trafiłem na taki post http://chentiangemalc.wordpress.com/2011/11/12/case-of-the-scvmm-2012-console-install-fail-on-windows-8/. Opisuje on walki autora jeszcze z betą VMM2010. Sposób podany na końcu przez autora działa również dla wersji RTM. Poniżej skrócony przepis edycji instalacji VMM dla Windowsa 8 CP.

Aby zainstalować konsole na Windows 8 CP należy wypakować iso z instalacją scvmm 2012 i otworzyć notatnikiem plik PrerequisiteInputFile1033.xml, nastepnię poprzez funkcję zamień zmienić wszytskie występujące wartości “6.1.9999.9999” na “9.9.9999.9999“. Przy instalacji na systemie 64-bitowym plik znajduje się w amd64\Setup, a w przypadku 32-bitów w i386\Setup.

VMM, Hyper-V klaster i nowy nod w klastrze.

Po dodaniu nowego noda do klastra Hyper-V zarządzanego przez Virtual Machine Manager wypadało by dodać go do VMM. Podczas dodawania go poprzez funkcję Add Host w VMM dostaniemy komunikat błędu “Error 400. The server %ComputerName; is already associated with this Virtual Machine Manager server. ” gdzie %ComputerName; to nazwa naszego klastra.

Aby poprawnie dodać nowy nod w VMM należy najpierw odświeżyć klaster. Następnie po rozwinięciu gałęzi klastra pojawi się nasz nowy host w statusie pending. Klikamy na niego prawym przyciskiem i wybieramy funkcję Add Node To Cluster. Podajemy poświadczenia administracyjne i czekamy aż zainstaluję się agent vmm i gotowe :).

Więcej niż 4 vCPU w Hyper-V i problemy

kicekpicek na swoim blogu napisał(link) o tym jak można zwiększyć ilość vCpu dla maszyny wirtualnej powyżej czterech. Jako, że musiałem ostatnio taką sztuczkę zastosować to podzielę się problemami napotkanymi po drodze.

  1. Maszyna podana takiemu zabiegowi była umieszczona klastrze. Podczas edycji pliku dostajemy komunikat, że plik jest używany przez inny proces. Aby wyedytować plik konfiguracyjny maszyny należy poprzez przystawkę Failover Cluster Manager wyłączyć konfigurację na zasobie na klastrze.
  2. System Center Virtual Machine Manager 2008R2 wykład się przy wejściu na właściwości maszyny.

Szybkie sprawdzenie powershellem rozmieszczenia maszyn na klastrze Hyper-V zarządzanym VMM

Uruchamiamy powershell i dodajmy przystawkę VMM poleceniem:

Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager

Ustawiamy nazwy serwer VMM oraz klastra Hyper-V który nas interesuje:

$VMMServerName = "vmm.lab.local"
$HVClusterName = "hvcluster.lab.local"

Poleceniem Get-VMHostCluster pobieramy informacje o interesującym nas klastrze:

$HVCluster = Get-VMHostCluster -Name $HVClusterName -VMMServer $VMMServerName

Poniższym kodem przechodzimy po kolei przez każdy node klastra i listujemy maszyny wirtualne znajdujące się na nim:

foreach($HVNode in $HVCluster.Nodes)
{
 $HVNode.VMs | Select Name, VMHost
}

Skrypt w całej okazałości:

Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager
$VMMServerName = "vmm.lab.local"
$HVClusterName = "hvcluster.lab.local"
$HVCluster = Get-VMHostCluster -Name $HVClusterName -VMMServer $VMMServerName
foreach($HVNode in $HVCluster.Nodes)
{
 $HVNode.VMs | Select Name, VMHost
}

Tak wygląda przykładowy wynik skryptu:

Name       VMHost
----       ------
VM-HUB     hv1.lab.local
VM-TS-1-1  hv1.lab.local
VM-TS-1-2  hv1.lab.local
VM-TS-1-3  hv1.lab.local
VM-TS-1-4  hv2.lab.local
VM-TS-2-1  hv2.lab.local
VM-TS-2-2  hv2.lab.local
REMOTEAPP  hv2.lab.local

W przypadku usunięcia “-Name $HVClusterName” ze skryptu będą wylistowane wszystkie maszyny z klastrów zarządzanych przez VMM.

WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera
Skip to toolbar