Kompatibilita procesorů pro Quick a Live Migration v Hyper-V

Jednou z velkých nevýhod Hyper-V je fakt, že není možné provést živou migraci mezi servery, které využívají různé procesory. Tím nejjednodušším příkladem mohou být 2 servery v clusteru, kde jeden ze serverů obsahuje procesory AMD a druhý Intel – zde je situace jasná. Nicméně problém je poněkud širší, není možné migrovat například mezi servery kde jeden server má novější a druhý starší procesory.

Celý problém se točí kolem použité instrukční sady v jednotlivých procesorech. V rámci Windows Server 2008 (ne R2) nebylo možné zjistit, zdali se migrace v rámci clusteru povede, dokud tato migrace nenastala. Windows Server 2008 R2 obsahuje nové WMI metody, které napomohou detekovat kompatibilitu mezi servery (resp. procesory v rámci clusteru). I v případě Windows Server 2008 R2 se nedozvíte, zdali je migrace možná až do chvíle, kdy se o ni pokusíte.

Třída Msvm_VirtualSystemManagementService obsahuje metody GetSystemCompatibilityInfo () a CheckSystemCompatibilityInfo() pro kontrolu kompatibility procesorů v rámci skriptů. Pojďme se na tyto informace podívat blíže.

Jako první je použita metoda GetSystemCompatibilityInfo(). Vstupem pro metodu je CIM_ComputerSystem REF ComputerSystem. Návratem z volání metody je pak uint CompatibilityInfo[].

Ravikanth Chaganti vytvořil pěkný vbsrcipt, který zjednoduší zjištění kompatibility procesorů mezi dvěma servery. Pravda, script je zapotřebí trochu poupravit (komentovat Option Explicit) a výstup není také ideální, ale script plní funkci – potvrdí, zdali je možné provést Live/Quick Migration.

V případě, kdy zjistíte, že není možná Live/Quick migration, je možné nastavit kompatibilitu procesorů v nastavení virtuálního stroje.

 

Typ procesoru, který je hlášený virtuálnímu stroji se následně mění také dle použitého operačního systému ve virtuálním stroji. Primárním rozdílem je počet registrů, které jsou dostupné ve virtuálním stroji (fyzický HW 10 virtuální 6). Tyto registry ukládají informace o tom, co daný procesor obsahuje za instrukce atd. Také se instrukční sady liší dle výrobce Intel / AMD.

Intel obvykle podporuje následující:

  • SSE3 instrukce

  • Hyperthreading

AMD obvykle podporuje:

  • 3DNow! instrukce

  • Fast FXSAVE

  • Rozšíření pro MMX instrukce

  • PREFETCHW instrukce

  • SAHF a LAHF instrukce

Popis virtuálních procesorů Hypervisoru (nikoliv Hyper-V) je uveden např. zde http://msdn.microsoft.com/en-us/library/ff541644.aspx

Autor: Ondřej Výšek

Ondřej je Microsoft MVP od roku 2004, v roce 2008 založil komunitní web optimalizovane-it.cz. Za svou IT karieru, jenž započala v roce 1993 prošel celou řadou pozic, od konzultanta, přes architekt, až po vytváření vizí a strategií zákazníků. V prostředích, ve kterých pomáhal byly desítky, ale i stovky tisíc uživatelů a systémů. V posledních letech se zabývá především cloudovými technologiemi Microsoft 365 a Azure ve společnosti KPCS CZ.

Next Post Previous Post