Fizikai szerver költöztetése Hyper-V hostra, azaz a P2V

írta: sanzi89, 9 éve

Probléma:
A jól bevált, belakott, funkciókkal teletűzdelt szerver operációs rendszerünket szeretnénk a régi, esetleg már el is avult, kis teljesítményű fizikai hardverről egy jobban kezelhető, erősebb, új szerverre költöztetni. Mivel 2015-öt írunk, így az egyetlen ésszerű ötlet az a virtualizálás. Jelen cikkemben bemutatok egy megoldást, amely során egy Server 2012 R2 rendszer foguk egy fizikai gépről lementeni, beimportálni egy Hyper-V virtualizációs környezetbe.

Lépések:
0. Készítsünk egy teljes mentés a virtualizálásra szánt gépünkről. Mindenkinek a fantáziájára bízom ennek a módját, de mielőtt bármit is csinálunk legyen feltétlen mentésünk!

1. Szerezzük be a Disk2vhd nevezetű kis programot, majd futtassuk a virtualizálásra szánt fizikai vason. A mentés helyének nem muszáj külső tárhelyet kiválasztani, a program tud arra a partícióra is menteni, amit menteni szeretnénk, de éles környezetben erősen ajánlott valamilyen külső, közös meghajtó, ahonnan a mentés végeztével betallózhatjuk a produktumot - a PrintScreen egy teszt gépről készült, itt lokális meghajtóra készült a mentés. A gépet használó külső szolgáltatásokat, programokat érdemes leállítani a mentés idejére, hogy a minimálisra redukáljuk annak a lehetőségét, hogy a folyamat közben történjen valamilyen változás, amit már nem fog tartalmazni az elkészített virtuális meghajtónk. Ha nincs valamilyen különös indokunk ellene, akkor az újabb .vhdx formátumot használjuk, valamint legyen kipipálva a Shadow Copy lehetőség is, így ugyanis a zárolt vagy használt fájlok másolásával se lesz gond. A kirx-krax-os partíciót is mentsük mindenképpen, hogy elkerüljük a bootolási gondokat. Most várjunk türelmesen.

2. Hozzuk létre a kívánt virtuális gépet, de előtte a kész .vhdx állományt másoljuk fel a végleges helyére. Itt jön egy kis magyarázat. Amennyiben a fizikai gép, amiről mentettük a rendszer UEFI-s volt és az OS is UEFI módba lett telepítve, akkor megpróbálkozhatunk azzal, hogy 2. generációs virtuális gépet hozunk létre - mert miért ne is akarnánk - és elvileg be is fog boot-olni a gép. Amennyiben valamilyen hibát észlelünk - egyszerű, nem boot-ol a gép - vagy a fizikai gép amiről mentetünk még régebbi - ami nagyon valószínű -, akkor válasszunk 1. generációs virtuális gépet, később lesz majd módunk a generáció frissítésre. A virtuális merevlemeznél értelem szerűen válasszuk a lementett .vhdx állományt. Indítsuk el a VM-et.

3. Először takarítsunk egy kicsit a VM-en. Töröljük le azokat a programokat, amik a fizikai géphez kellettek - HP, Dell, stb. gyártói szoftverek, esetleges menedzsment eszközök -, ezekre többet nem lesz szükségünk. Végül - amennyiben 1. generációs virtuális gépet készítettünk - akkor navigáljunk be a Device Manager-be, és itt a View menü Show hidden devices lehetőséget kapcsoljuk be. Töröljük azokat az eszközöket, amik inaktívak, valamint valószínűsíthetőleg a fizikai hardver elemei voltak. Egy kis segítségnek álljon itt egy 1. generációs virtuális gép alapértelmezett eszközei a Device Manager-ben.

4. Ha sikerült 2. generációs virtuális gépet készítenünk, kész is vagyunk. Ha 1. generációs virtuális gépet csináltunk, és nem akarunk 2. generációsra upgrade-elni, akkor is kész vagyunk. Azonban mivel a "csúcsra" törekszünk, így természetesen akarunk. Fontos megjegyezni, hogy csak megfelelő VM OS esetén lehet 2. generációs virtuális gépet készíteni, tehát Windows 8 x64 és Server 2012 x64-től felfele, Windows 7-tel vagy 2008-as szerverrel nem fog összejönni a dolog. A folyamathoz szükséges lesz John Howard Powershell Script-jére. A linkelt oldalon minden részletesen le van írva, így igazából nem is szükséges hozzá kommentár, de, hogy teljes legyen a cikk és az angolul nem tudók se érezzék magukat megfosztva, pár apróság.

5. Mentés előtt még végezzünk el egy beállítást, nyissunk egy rendszergazda parancssort és adjuk ki az alábbi parancsokat, hogy a mentés idejére leállítsuk a Windows Recovery Environment szolgáltatást - majd a folyamat legvégén kapcsoljuk vissza - :

reagentc /info
reagentc /disable

Eredménye:

6. Állítsuk le a VM-et, és indítsunk egy PowerShell ablakot, majd hívjuk meg a csoda scriptet. Paraméterként a -wmname kapcsoló után a virtuális gép nevét, valamint a -path után azt a helyet, ahova létrehozza a rendszer az új, immáron 2. generációs virtuális gép állományait. A folyamat közepén még igényel egy Y leütést a program, hogy tuti 100%-ban okás a tárhely, amit a path-ban megadtunk és csekkoljuk a folyamat előtt még egyszer. Most pedig legyünk türelmesek. A folyamat eléggé hardverigényes, és VM mérettől függően elég sokáig is tarthat, ezért érdemes éjszakára vagy hétvégére ütemezni. Nekem egy teljesen üres, friss telepítésű Server 2012 R2-es rendszer mentése, ahol a .vhdx állomány mérete 15GB nagyjából fél óra volt egy közepes teljesítményű gép esetén sima SATA-s belső HDD-kre.

7. A folyamat végén a Hyper-V Manager-ben már megjelenik az új VM, ami immáron második generációs. Nagyon fontos figyelnünk arra, hogy amennyiben esetleg még be szeretnénk üzemelni a fizikai hardvert, semmiképp se kapjon a helyi hálózathoz hozzáférést, a tartománnyal már csak az "új" VM kommunikálhasson, a későbbi galibák elkerülése végett. A hálózattól elszeparálva, egyéb bütyköléshez természetesen beüzemelhető a gép. De ettől függetlenül érdemes a folyamatot akkor végigcsinálni, ami után már kukázhatjuk a korábbi rendszert. Ja, és el ne felejtsük elindítani a Windows Recovery Environment szolgáltatást (reagentc /enable) a kész VM-en!