Convertim mașinile virtuale VMWare în Hyper-V și invers. Exportul și importul de mașini virtuale Hyper-V

Hyper-V - configurarea rețelei, crearea puncte de control, import și export de mașini virtuale.

Implicit este tot mașini virtuale Hyper-V este în esență sandbox și complet izolat de alte computere și rețele. Și dacă doriți ca mașina dvs. virtuală să comunice cu alte VM, computere fizice, rețea și Internet, trebuie să creați un comutator virtual. Puteți face acest lucru în managerul Hyper-V făcând clic pe panoul din dreapta Comutator virtual Administrator.

Dar mai întâi trebuie să decideți ce fel de comutator virtual creați. Și oferă Virtual Switch Manager descriere text fiecare tip de comutator.

Dacă doriți ca dvs. să vadă și să acceseze fișierele de pe computerul gazdă și din rețeaua dvs., trebuie să selectați un comutator extern. Aceeași opțiune oferă acces VM la Internet. Opțiunile de comutare internă și privată permit mașinilor virtuale Hyper-V să comunice doar între ele. Odată ce v-ați decis asupra acestei opțiuni, faceți clic pe butonul de creare a comutatorului virtual.

În continuare, trebuie să configurați opțiunile pentru comutatorul dvs. virtual. Lucrul important aici este să determinați la ce adaptor de rețea de pe computerul dvs. îl conectați. Computerul dvs. poate fi cu fir sau conexiune fără fir. Alege-l pe cel potrivit.

Cheie. Să presupunem că doriți ca mașina dvs. virtuală să acceseze fișierele de pe computerul gazdă, dar să nu aibă acces la rețea sau la Internet. Dacă computerul are atât o conexiune cu fir, cât și o conexiune fără fir, conectați comutatorul la ceva pe care nu îl utilizați pentru a accesa Internetul. Daca nu ai fizic cablu de rețea, selectați nu Conexiune WiFi. În acest fel, VM-ul va avea acces doar la PC-ul principal și va fi izolat de software-ul rău intenționat și de atacurile externe.

După ce ați creat un comutator virtual, trebuie să îl conectați la mașina virtuală. În zona centrală a Hyper-V Manager, faceți clic pe VM-ul corespunzător. Apoi, în zona din dreapta jos, faceți clic pe setări. Care va deschide setările mașinii virtuale.

În panoul din stânga, faceți clic pe opțiunea adaptor de conectare. Dacă nu vedeți această opțiune, faceți clic pe Adăugare hardware și adăugați adaptor de retea. Caracteristica utilă- gestionarea lățimii de bandă, care poate controla utilizarea VM lățime de bandă rețeaua dvs. Această ajustare asigură că mașina virtuală are conexiunea la rețea necesară, dar nu consumă resurse inutile.

În partea de sus a setărilor adaptorului de rețea, selectați comutatorul virtual pe care l-ați creat și faceți clic pe OK. Nu este nevoie să configurați nimic altceva. Mașina ta virtuală are acum acces la retea.

Atenţie. Deși multe opțiuni pot fi modificate în setările mașinii virtuale în sine, unele dintre ele care au fost setate la crearea mașinii virtuale pot fi modificate doar prin oprirea acesteia.

Crearea punctelor de control Hyper-V

Dacă faceți modificări semnificative Windows 8.1, de exemplu, instalarea program desktop sau Actualizări Windows, este creat punct de sistem recuperare. Adică, o copie a fișierelor critice ale sistemului de operare este salvată, cum ar fi Registrul Windows, înainte de a se schimba. Și dacă ceva nu merge bine, modificarea poate fi anulată și revenită la o stare anterioară a Windows.

Hyper-V are și propria funcție de punct de control - . Acesta este un instantaneu pe care îl puteți face oricând. Pentru a face acest lucru, în panoul central al managerului Hyper-V, selectați VM pentru care doriți să creați un instantaneu și în colțul din dreapta jos al ferestrei de control, faceți clic pe linkul punctului de control.

Punctele de control pe care le creați apar în Hyper-V Manager Center. Puteți să faceți clic pe oricare dintre ele și să rulați înapoi mașina virtuală la acel punct, să exportați instantaneul sau să îl ștergeți.

Hyper-V - import și export de mașini virtuale

Uneori poate fi necesar să creați o mașină virtuală și să o utilizați pe alt computer sau să salvați o copie a mașinii virtuale. Pur și simplu creați un VM, copiați acest fișier pe alt computer și deschideți-l acolo nu va funcționa. Pentru a importa o mașină virtuală în Hyper-V, există o opțiune specială de import și export. Pentru a exporta VM, în Hyper-V Manager, selectați această opțiune. În colțul din dreapta jos al ferestrei Hyper-V Manager, vor apărea opțiunile de export. Faceți clic pe el și veți fi întrebat în ce folder doriți să salvați copia VM-ului. Procesul de export este invizibil și destul de rapid.

  • Puteți importa apoi o mașină virtuală exportată anterior în Hyper-V. Pentru a face acest lucru, fără a selecta VM-ul în colțul din dreapta sus al ferestrei managerului Hyper-V, faceți clic pe link-ul de importare a mașinii virtuale.

  • Asistentul de importare a mașinii virtuale se va deschide și vă va întreba în ce folder (nu fișier) se află copia salvată a mașinii virtuale.

  • Veți vedea apoi numele VM și detaliile de creare a acestuia. Dacă acesta este ceea ce căutați, faceți clic pe următorul.

  • Acum veți fi întrebat cum doriți să importați VM. Există trei posibilități pentru aceasta:
  1. Mașină virtuală înregistrată. Folosit dacă efectuați un import direct. VM-ul se află în același folder în care a fost exportat și doriți să îl lăsați acolo.
  2. Restaurarea unei mașini virtuale. Folosit dacă VM-ul nu se află în folderul în care a fost exportat. De exemplu, aceasta este o copie realizată din imaginea principală de pe server.
  3. Copie mașină virtuală. Folosit dacă doriți să creați copie locală VM existent, lăsând „principalul” intact, de exemplu, pentru a-l importa ulterior pe alt PC. Această opțiune este folosită și dacă creați o copie a unui VM deja importat.

Atenţie. Dacă importați o VM fără a face o copie a acesteia, orice modificări pe care le faceți și orice problemă vor rămâne în el și vă pierdeți efectiv copia principală curată.

  • Dacă doriți să creați o copie a mașinii virtuale, veți fi întrebat unde doriți să o salvați.

  • Ultimul pas este confirmarea setărilor selectate.

Integrarea serviciilor suplimentare într-o mașină virtuală

Unele sisteme de operare, mai ales mai multe versiuni timpurii Windows nu oferă acces la rețea sau altele funcțiile necesare. Și va trebui să activați funcții suplimentare VM. Acest lucru trebuie făcut într-o mașină virtuală care rulează.

Aceste caracteristici suplimentare, care sunt cerute de unele sisteme de operare, includ posibilitatea de a muta cursorul mouse-ului între desktopul principal și mașina virtuală deschisă. Acestea includ, de asemenea, suport pentru rețea și USB.

În meniul Acțiuni, faceți clic pe Instalare servicii de integrare. Și se va încărca pentru tine Fișier ISO conținând softwareîmbunătățirea funcționalității mașinii virtuale.

Mecanismul de export-import din hypervisorul Hyper-V este conceput pentru a muta mașinile virtuale de la un computer sau server la altul. Exportul înseamnă în esență copierea unei mașini virtuale de pe conservare completă configurația acestuia. Copiat la export virtual hard disc, setări hardware, momente salvate ale sistemului de operare invitat, create (instantanee).

Mecanism Export-import Hyper-V poate fi folosit și pentru a crea o mașină virtuală clonă pe același server sau pe același computer pentru testare și interacțiune cu mașina virtuală originală. O mașină clonată poate primi un ID (identificator) diferit, o adresă IP internă diferită în rețeaua Hyper-V, drept urmare, de fapt, nu va fi diferită de mașinile virtuale create de la zero.

Mai jos vom analiza mai detaliat procesul de export și import a unei mașini virtuale folosind exemplul inclus în Windows 10.

Probleme acoperite:

1. Exportați o mașină virtuală

Unul dintre avantajele noului Versiuni Hyper-V, inclus în Windows Server 2012 R2, client sisteme Windows 8.1 și 10, este capacitatea de a efectua unele sarcini care necesită mult resurse, în special, exportul din mers, în timp ce mașina virtuală rulează, fără a o opri, chiar și fără a o întrerupe. Exportul se efectuează către fundal, nu trece repede pentru ca implica o cantitate mica resurse de sistem, lăsând utilizatorului posibilitatea de a continua lucrul cu mașina virtuală.

Cum se exportă o mașină virtuală? Selectați mașina virtuală dorită în managerul Hyper-V și apelați meniul contextual. Avem nevoie de o comandă „Export”.

2. Exportați un instantaneu al mașinii virtuale

Altul relativ nou Caracteristica Hyper-V, care nu era prezent în vechile camere de server versiuni Windows– capacitatea de a exporta un punct de control separat, adică starea mașinii virtuale la momentul creării acestui punct de control. Anterior hypervisor Microsoft furnizat numai pentru export-import al întregii mașini virtuale. Și dacă era nevoie de starea unui anumit punct de control, era necesar să exportați mașina virtuală cu toate punctele sale de control și, după importare, să reveniți la cel dorit. Hyper-V vă permite acum să exportați fiecare punct de control individual. După ce a exportat un singur instantaneu, acesta poate fi apoi importat ca o nouă mașină virtuală, în special cu propriul său ID unic, pe același server sau computer.

Pentru a exporta o mașină virtuală dintr-un punct de control, selectați atât mașina, cât și punctul de control în managerul Hyper-V. Pe ultimul, apelați meniul contextual și selectați „Export”.

3. Fiabilitatea formatului de export Hyper-V

Exportarea unei mașini virtuale Hyper-V nu se realizează într-un format de fișier comprimat separat, unde virtualul HDD, și fișierele de configurare și starea salvată a sistemului de operare invitat, așa cum, de exemplu, aceasta este oferită de mecanismul de export-import în Programul VirtualBox. In caz de mașini virtuale Export-import VirtualBox posibil cu participarea unui intermediar - un fișier OVA. Dacă acest fișier este deteriorat, importați fișierul virtual Mașini VirtualBox s-ar putea să nu se întâmple. Dar în cazul Export Hyper-V mașină virtuală înseamnă copie completă virtual hard disc în formatul său original – VHDX (sau VHD).

În acest fel, dacă alte date de export sunt corupte, mașina virtuală poate fi încă recreată. Va trebui să creați o nouă mașină virtuală folosind Hyper-V folosind fișier existent VHDX (VHD).

4. Importați o mașină virtuală

Mașina virtuală exportată poate fi importată ulterior în versiune compatibilă Hyper-V ca parte a serverelor Edițiile WindowsȘi Client Windows 8.1 și 10.

Pentru a importa o mașină virtuală, selectați funcția corespunzătoare în Hyper-V Manager.

În fereastra următoare, utilizați butonul de răsfoire și specificați calea către folderul cu mașina virtuală exportată. Faceți clic pe „Următorul”.

Selectați mașina virtuală dorită dacă există mai multe dintre ele în folderul specificat. Faceți clic pe „Următorul”.

Apoi trebuie să alegeți cum va fi importată mașina virtuală. Dacă a fost transferat de pe un alt server sau computer, puteți utiliza primul tip de import, care presupune înregistrarea lui folosind identificatorul original. Această opțiune înregistrează mașina virtuală în același folder în care sunt stocate fișierele sale de export, astfel încât nu va fi pierdut timp la copierea fișierelor.

Cel de-al doilea tip de import este potrivit și pentru cazurile de transfer a unei mașini virtuale de pe un alt server sau computer, dar atunci când o utilizați, fișierele exportate vor fi transferate în folderul specificat. ID-ul mașinii virtuale va rămâne același.

Dacă mașina virtuală este mutată pe același server sau computer, ar trebui să utilizați al treilea tip de import, care implică generarea unui nou identificator. La urma urmei, pe una calculator fizic virtual nu poate exista Mașini Hyper-V cu acelasi ID.

În cazul nostru, copiem o mașină virtuală, acesta este al treilea tip de import. Faceți clic pe „Următorul”.

Calea de stocare implicită pentru fișierele de configurare, punctele de control și alte date ale mașinii virtuale importate, specificate de Hyper-V, poate fi modificată. Trebuie să bifați caseta pentru schimbarea locației de stocare și să specificați manual căile necesare.

În cazul nostru, vom adăuga pur și simplu creație în cale (prin o bară oblică) folder separat"Copie". Faceți clic pe „Următorul”.

Vom indica aceeași cale pentru fișierul VHDX, astfel încât totul să fie într-un singur loc. Faceți clic pe „Următorul”.

Pasul final al expertului este un rezumat al datelor de import. Faceți clic pe „Terminare”.

Acum, în cazul nostru, există două mașini virtuale identice în Hyper-V Manager. Au ID-uri diferite, dar au același nume. Să schimbăm numele mașinii virtuale nou importate.

Asta este - procesul de import a fost finalizat. Mașina virtuală importată poate fi lansată și testată.

O zi bună!

11.02.2012 - 18:26

Să ne uităm la un script pentru exportul de VM pe un server Hyper-V.
Scopul este de a automatiza procesul cu o logică maximă fără a compromite productivitatea. Drept urmare, am scris un scenariu pe care l-am trimis mai devreme. Situația se schimba în fiecare zi, sistemul funcționa deja în producție, așa că era necesar să se reducă riscul de a sparge ceva la minimum. Ca urmare, am modificat scriptul, al cărui concept nu s-a schimbat:

  1. Găsirea unui VM
  2. Opriți VM-ul
  3. Exportarea VM-ului
  4. Porniți VM

Au fost adăugate doar „volante” și „monograme”.
Cerința principală este să salvați 2 copii ale VM, cea actuală și cea anterioară. Când se formează o nouă copie, cea anterioară este ștearsă, iar cea actuală este redenumită cu cea anterioară. Totul este implementat folosind exemplul cataloagelor Today și Yesterday.

Principalele caracteristici ale scriptului:

  1. Verifică prezența VM-ului necesar în lista de VM. Toate acțiunile sunt înregistrate într-un fișier jurnal.
  2. Dacă VM-ul este găsit - Șterge directorul din ultima postare, redenumește directorul curent cu cel anterior, creează un director pentru intrarea curentă.
  3. Verifică starea mașinii virtuale. Dacă VM rulează - Oprește VM-ul. Exportă VM în directorul desemnat. Lansări.
  4. Dacă VM-ul este oprit, exportă VM-ul în directorul desemnat.
  5. Dacă VM-ul este într-o stare diferită, scrie în jurnal.
  6. Dacă VM-ul nu este găsit, acesta scrie în jurnal.
  7. După export - elimină toate informațiile despre VHD, testează VHD-ul. Scrie în jurnal.
  8. Trimite e-mail-uri destinatarilor despre operațiunile finalizate, stabilind importanța scrisorii în caz de eșec.

Există câteva caracteristici:

  1. Când trimiteți o scrisoare, jurnalul care este planificat să fie trimis ca atașament nu poate fi localizat într-o cale UNC. Cu alte cuvinte, dacă doriți să trimiteți jurnalul ca atașament, trebuie să îl plasați disc local sau conectați directorul de rețea cu un disc separat.
  2. Scenariul funcții suplimentare colectează informații despre disc VHD. Pentru a implementa cu succes funcțiile de audit, discul nu ar trebui să fie din nou situat pe o cale UNC, va trebui să conectați o unitate de rețea.
  3. Pentru a controla execuția exporturilor de mașini conform programului, s-a încercat introducerea parametrului „Nume VM”.

Pentru munca de succes script, trebuie să instalați acest modul. Cred că nu vor fi dificultăți.
Scenariul:

param ($VM) # Parametrul de intrare al mașinii virtuale (VM)

dacă (! (Get-Module -Name hyperv) )
{
# Activați modulul
import-modul hiperv
}
dacă ($VM -eq $null )
{
Scrie-gazdă „Introduceți numele mașinii virtuale”.
}

# ==== Parametri inițiali
$ComputerName = Get-Content env:COMPUTERNAME
# Conectați unitatea R: pentru a obține informații despre VHD
Invocare-Expresie -Comandă " utilizare net R:\\Server/y"
# Resetați contoarele
$număr = $fals # Declanșarea VM găsită
$export_count = $false # Contor de export de succes VM
# Definiți numele/adresa fișierului jurnal
$log = "\\Server\backup\Jurnale \$VM\" + (Get-Date -Format " aaa-LL") +" .log "
# Determinați calea către folder cu RK
$BackupDir = "
\\Server\backup\" +$VM
# Calea către folderul cu RK pentru a elimina informațiile din VHD
$InfoDir = "R:\backup \" +$VM
# Date pentru e-mail
$Sender = "
[email protected]"
$SMTP = " smtp.contoso.com"
$Destinatari = @(" [email protected] ") # grup de distribuție cu destinatarii care monitorizează backup-ul
$AttachePath = "
R:\backup\Logs\$VM \" + (Get-Date -Format "aaa-LL" ) +".log"

# Funcție pentru trimiterea unui mesaj, la momentul scrierii nu știam despre funcția Send-MailMessage și am scris propria mea funcție. Nu vreau să o refac, „Funcționează - nu-l atingeți!”
funcția Trimite e-mail($Subiect ,$Body ,$Priority )
{
$Message = New-Object System.Net.Mail.MailMessage
$Server = New-Object System.Net.Mail.SMTPClient
$Attache = New-Object System.Net.Mail.Attachment($AttachePath )
# ==== Mesaj
$Destinatari | Pentru fiecare obiect ($Message .To.Add($_ ) )
$Message .From = $Sender
$Message .Subject = $Subject
$Message .Body = $Body
$Message .Atașamente.Adăugați($Atașare )
$Message .Priority = [ System.Net.Mail.MailPriority] ::$Priority
# ==== Se trimite
$Server.Host = $SMTP
$Server.Send($Message)
}

# =========================================
# Începeți înregistrarea
(Get-Date) + " `r` n Pornirea scriptului de export VM "+$VM + " server: " + $ComputerName + " `r` n Obținerea unei liste de mașini virtuale... `r` n"

# Obțineți o listă de VM
$VMArray = Get-VM | Select-Object -Property VMElementName
foreach($element în $VMArray )
{
# Căutați o anumită VM
dacă ($VM -eq $element .VMElementName)
{
$log_string = $log_string + "Mașina virtuală a fost găsită. Efectuez acțiunile specificate... `r` n"
$număr = $adevărat
# ========== Operații cu foldere ===============

# Ștergeți folderul Ieri
Remove-Item -Path ($BackupDir + "\Yesterday" ) -Recurse -ErrorVariable err
dacă ($err)
{
# Dacă există o eroare de ștergere, opriți execuția.
`r`n"
" Eliminarea directorului Ieri a eșuat, exportul $VM a fost anulat. Eroare: "+ $err
}
altfel
{
$log_string = $log_string + „Ștergerea directorului de ieri a avut succes. `r` n”
# Redenumiți folderul Azi
Redenumiți-Item -Cale ($BackupDir + " \Astăzi") -NewName ($BackupDir + "\Yesterday" ) -Force -ErrorVariable err
dacă ($err)
{
# Dacă există o eroare de redenumire, opriți execuția.
$log_string = $log_string + $err + " `r`n"
" Redenumirea directorului Ieri a eșuat, exportul $VM a fost anulat. Eroare: "+ $err
}
altfel
{
$log_string = $log_string + „Redenumirea dosarului a fost finalizată cu succes. `r` n”
# Creați un folder Today
Calea articolului nou ($BackupDir + " \Astăzi") -ItemType Directory -Force -ErrorVariable err
dacă ($err)
{
# Dacă există o eroare de creare, opriți execuția.
$log_string = $log_string + $err + " `r`n"
$MailBody = $Mailbody + (Get-Date -Format „(aaaa-LL-zz) hh:mm:ss” ) + „Crearea directorului Ieri a eșuat, exportul $VM a fost anulat. Eroare: „+ $err
}
altfel
{
$log_string = $log_string + „Crearea folderului Today a avut succes. `r` n”
#========== Sfârșitul lucrului cu folderele

#========== Lucrul cu VM
# Dacă starea mașinii este „Running”, atunci
if ((Get-VMSummary $VM ) .enabledstate -eq „În rulare” )
{
# Începeți oprirea
$log_string = $log_string + ((Get-Date -Format "(aaaa-LL-zz) hh:mm:ss" ) + „Mașina virtuală rulează. O opresc. `r` n”)
invoke-vmshutdown -VM $VM -Motiv „Exportați VM”. -Force -ErrorVariable err
dacă ($err)
{
$log_string = $log_string + $err + " `r`n"
$MailBody = $Mailbody + (Get-Date -Format „(aaaa-LL-zz) hh:mm:ss” ) + „Maiul virtual nu a fost oprit, exportul $VM a fost întrerupt. Eroare: „+ $err
}
altfel
{

„Mașina virtuală s-a oprit. Se exportă.`r`n”
$MailBody = $MailBody + (Get-Date -Format „(aaaa-LL-zz) hh:mm:ss” ) + „Mașina virtuală s-a oprit.`r`n”
$MailBody = $MailBody + (Get-Date -Format „(aaaa-LL-zz) hh:mm:ss” ) + „Se exportă o mașină virtuală.`r`n”
\Astăzi"
dacă ($err)
{
$log_string = $log_string + $err + " `r`n"
$MailBody = $Mailbody + (Get-Date -Format „(aaaa-LL-zz) hh:mm:ss” ) + „Exportul VM a fost finalizat cu eroare, exportul $VM a fost întrerupt. Eroare: „+ $err
}
altfel
{
$log_string = $log_string + (Get-Date -Format "(aaaa-LL-zz) hh:mm:ss" ) + "Mașina virtuală a fost exportată cu succes. O pornesc.`r`n"
$MailBody = $MailBody + (Get-Date -Format „(aaaa-LL-zz) hh:mm:ss” ) +
$export_count = $true
}
# Porniți VM-ul confirmând pornirea timp de 300 de secunde înainte de a executa următoarea comandă
Start-VM -vm $VM -HeartBeatTimeOut 300 -ErrorVariable err
dacă ($err)
{
$log_string = $log_string + $err + " `r`n"
$MailBody = $Mailbody + (Get-Date -Format „(aaaa-LL-zz) hh:mm:ss” ) + „VM-ul nu a pornit. Eroare: „+ $err
}
altfel
{
$log_string = $log_string + (Get-Date -Format "(aaaa-LL-zz) hh:mm:ss" ) +
$MailBody = $MailBody + (Get-Date -Format „(aaaa-LL-zz) hh:mm:ss” ) + „Mașina virtuală rulează.`r`n”
}
}
}
elseif((Get-VMSummary $VM ) .enabledstate -eq „Oprit” )
{
# Exportați VM fără confirmare cu toate fișierele (xml, vhd, etc.) și așteptați până când este gata
$log_string = $log_string + (Get-Date -Format "(aaaa-LL-zz) hh:mm:ss" ) + „Mașina virtuală este în modul oprit. Se exportă.`r`n”
$MailBody = $MailBody + (Get-Date -Format „(aaaa-LL-zz) hh:mm:ss” ) + „Mașina virtuală este în modul oprit.`r`n”
export-VM -VM $VM -cale ($backupDir + " \Astăzi") -force -copystate -wait -ErrorVariable err
dacă ($err)
{
$log_string = $log_string + $err + " `r`n"
$MailBody = $Mailbody + (Get-Date -Format „(aaaa-LL-zz) hh:mm:ss” ) + „Exportul VM a eșuat, exportul $VM a fost întrerupt. Eroare: „+ $err
}
altfel
{
$log_string = $log_string + (Get-Date -Format "(aaaa-LL-zz) hh:mm:ss" ) + „Mașina virtuală a fost exportată cu succes.`r`n”
$MailBody = $MailBody + (Get-Date -Format „(aaaa-LL-zz) hh:mm:ss” ) + „Mașina virtuală a fost exportată cu succes.`r`n”
$export_count = $true
}
}
altfel
{
$vm_state = (Get-VMSummary -VM $VM ) .EnabledState
$log_string = $log_string + (Get-Date -Format "(aaaa-LL-zz) hh:mm:ss" ) +
$MailBody = $MailBody + (Get-Date -Format „(aaaa-LL-zz) hh:mm:ss” ) + „Mașina virtuală nu a fost exportată, starea $VM = $vm_state .`r` n”
}
}
}
}
}
}
dacă ($ număr) # Dacă VM-ul este găsit
{
dacă (! ($export_count) ) # Dacă VM-ul nu este exportat
{
$log_string = $log_string + „Exportul mașinii virtuale $VM a fost finalizat cu erori. Procesul a fost întrerupt. `r` n”
$MailBody = $MailBody + „Exportul mașinii virtuale $VM a fost finalizat cu erori. Procesul a fost întrerupt.`r` n”
}
altfel # Dacă VM-ul este exportat
{
$log_string = $log_string + "Caut *.VHD pentru $VM ... `r` n"
# Căutați *.vhd în directorul specificat
if (Get-Item -Path ($InfoDir + " \Azi\" + $VM + "\Virtual Hard disk s\* ") -Include *.*vhd | Select-Object -Property Name)
{
#$VHDInfo = "
Informații VHD:`r`n"
pentru fiecare( $element în (Get-Item -Path ($InfoDir + "\Azi\" + $VM + " \Harddiskuri virtuale\*") -Include * .* vhd | Select-Object-Property Name) )
{
# Pentru fiecare element găsit, obținem informații și le scriem în jurnal și o linie pentru scriere
$log_string = $log_string + "Informatii pentru"+ $element .Nume + ": `r`n"
$SomeVHDInfo = Get-VHDInfo -VHDPaths ($InfoDir + " \Azi\" + $VM + "\Virtual Hard Disks\" + $element .Nume)
$log_string = $log_string + "Cale: " + $ SomeVHDInfo .Path + " `r`n"
$log_string = $log_string + "Dimensiunea fișierului: " + ([ System.Math] ::Round(($SomeVHDInfo .FileSize/ 1Gb) ,2 ) ) + "Gb `r`n"
$log_string = $log_string + "Legarea VM: " + $SomeVHDInfo .InSavedState + " `r`n"
$log_string = $log_string + "Montat: " + $SomeVHDInfo .InUse + " `r`n"
$log_string = $log_string + "Volumul maxim fisier: "+ ([ System.Math] ::Round(($SomeVHDInfo .MaxInternalSize/ 1Gb) ,2 ) ) + "Gb `r`n"
$log_string = $log_string + "Tipul de imagine: " + $SomeVHDInfo .TypeName + " `r`n"
# Validăm VM-ul VHD
$TestVHD = "VHD: " + $element .Name + ": " + (Test-VHD -VHDPaths ($InfoDir + " \Azi\" + $VM + "\Virtual Hard Disks\" + $element .Nume) )
$log_string = $log_string + $TestVHD + " `r`n"
$MailBody = $Mailbody + $TestVHD + " `r`n"
}
}
altfel # Brusc, VHD-ul nu se află în acest director O_O
{
$log_string = $log_string + "*.VHD pentru $VM nu a fost găsit.`r`n"
$MailBody = $MailBody + "*.VHD pentru $VM nu a fost găsit.`r`n"
}
}
}
altfel # VM nu a fost găsit pe server
{
$log_string = $log_string +
$MailBody = $MailBody + „Mașina virtuală $VM nu a fost găsită. Procesul s-a încheiat.`r` n”
}

$log_string = $log_string + (Get-Date -Format "(aaaa-LL-zz) hh:mm:ss" ) + „Lucrul la $VM s-a terminat.`r`n”
$log_string = $log_string + „======================== `r` n”

$MailSubject = " Raport de export $VM."
# Trimis o scrisoare:
Trimite e-mail -Subject $MailSubject -Body $MailBody -Priority $MailPriority

#net use R: /delete /y Această funcție nu este necesar să alergi.

Iată, de fapt, întregul scenariu. Pentru a lucra cu un cluster, creăm o sarcină pentru fiecare VM pe fiecare nod al cluster-ului cu o diferență de minut la pornire, deoarece scriptul de la orice nod accesează același fișier jurnal și, în același timp, poate exista o coliziune de acces. Dacă nu există nicio VM pe unul dintre nodurile clusterului, scriptul va afișa un mesaj că VM-ul nu a fost găsit și se va ieși.
Scriptul a fost deja implementat la mai multe întreprinderi cu modificări minore pentru un anumit client. Toată lumea este fericită și îți doresc același lucru.

Windows Server 2008 Hyper-V nu are opțiunea de a crea o clonă a unei mașini virtuale existente. Totuși, asta nu înseamnă că este imposibil sau că este dificil de făcut. De fapt, există o astfel de posibilitate și este destul de simplu de utilizat.

Există două moduri de a clona o mașină virtuală în Hyper-V.

1. Utilizați funcția de export/import a mașinilor virtuale
2. Copiați hard disk-ul virtual și creați o nouă mașină virtuală cu acest disc.

1. Utilizați funcția de export/import în Hyper-V

Această metodă este cea mai simplă și mai accesibilă modalitate de a clona o mașină virtuală.

Exportarea unei mașini virtuale

In timp ce Manager Hyper-V, presa Click dreapta la mașina virtuală dorită și selectați Export. Specificați unde va fi importată mașina virtuală. Este important să știți că atunci când importați înapoi mașina virtuală, locația mașinii virtuale și discul său virtual vor indica această locație.

În timpul exportului, puteți alege ce să exportați: întreaga mașină virtuală sau doar configurația mașinii virtuale.

Importul unei mașini virtuale

Pentru a importa o mașină virtuală, faceți clic pe „Importați mașină virtuală” din meniul Acțiune. Specificați directorul cu mașina virtuală exportată și faceți clic pe Import.

Este important să indicați exact directorul mașinii exportate și nu unul dintre subdirectoarele acestuia.

Odată importată mașina virtuală, îi puteți modifica setările, cum ar fi adresa IP, numele de gazdă etc.

2. Copiați VHD-ul și creați o nouă mașină virtuală

Doar copiați fișierul VHD al mașinii virtuale originale și apoi creați o nouă mașină virtuală, dar ca hard disk specificați fișierul copiat. În meniu, când ajungeți la fereastra „Conectați hard disk virtual”, selectați opțiunea „Utilizați un hard disk virtual existent” și specificați locația acestuia.

gardian

Chineză nu înseamnă întotdeauna rău. Încărcătoare frontale chinezești sunt vândute aici la prețuri de fabrică.

Ai nevoie de un gard pentru casa ta, cabana sau casa ta? Contact „Profzabor” - producție de garduri la comandă din orice materiale.

Simptomele problemei

În cazul în care doriți să migrați o mașină virtuală de la un server Hyper-V 2008 R2 la un server Hyper-V 2012 R2, veți întâmpina probleme: după exportarea mașinii virtuale de la Hyper-V 2008 R2 și copierea fișierelor în server nou, când încercați să importați în Hyper-V 2012 R2, veți primi un mesaj ca:
Hyper-V nu a găsit mașină virtuală s pentru a importa din locația d:\..
sau
Hyper-V nu a putut găsi mașini virtuale de importat din locația d:\..

Cauzele problemei

Hyper-V în 2012 folosește R2 versiune noua WMI 2.0, care nu acceptă fișierele .EXP obținute după exportul unui computer Hyper-V 2008 R2 care utilizează WMI 1.0. Prin urmare, soluția în acest caz este: copiere + import, deoarece importul fără export al unei mașini virtuale este acceptat la nivelul Server 2012 R2 și aceste .exp pur și simplu nu sunt prezente în timpul importului, așa că totul merge bine).
@Spațiul de nume pentru versiunea 1.0 a WMI este depreciat. Pregătiți-vă să adaptați scripturile pentru un spațiu de nume revizuit.@
@Rădăcina WMI\spațiul de nume de virtualizare este depreciat. Noul spațiu de nume este root\virtualization\v2.@
http://technet.microsoft.com/en-us/library/hh831568.aspx

Soluţie

Este necesar să folosiți nu export+import, ci copiere+import. Urmează următoarele instrucțiuni:

  1. Opriți mașina virtuală (VM) care trebuie migrată.
  2. Copiați fișierul .XML care conține configurația mașinii virtuale, precum și .VHD sau .VHDX fișiere hard discurile mașinii virtuale către noul server.
  3. Importați o mașină virtuală în Hyper-V 2012 R2
  4. Dacă ați exportat deja o mașină virtuală, pur și simplu ștergeți (sau redenumiți) fișierul cu extensia .EXP situat în folderul cu VM-ul exportat.
  1. Când exportați (sau pregătiți o mașină virtuală pentru transfer), opriți mașina virtuală, accesați configurația acesteia și comutați Adresa mac placa de rețea de la dinamică la statică. În acest caz, în mod implicit, cea veche va fi oferită ca adresă MAC statică Rețeaua MAC carduri.
    Acest lucru vă va permite să nu reconfigurați parametrii TCP/IP în mașina virtuală după transfer, deoarece adresa MAC a cardului nu se va schimba și sistem de operare va lua în considerare că card LAN aceeași.
  2. Puteți (acest lucru este recomandat de Microsoft) să schimbați (în timpul transferului mașinii virtuale) tipul de utilizare memorie cu acces aleator: Alocați alocarea RAM statică. După importarea mașinii virtuale (pe noul server), o puteți instala din nou selecție dinamică RAM.
  3. Dacă aveți mai multe mașini virtuale pe aceeași gazdă, uneori poate fi dificil să aflați ce fișier .XML aparține mașinii virtuale dorite: toate fișierele XML pot ajunge în același folder. E bine! Copiați-le pe toate! Când importați o mașină virtuală, specificați folderul cu acestea fișiere XML, iar Hyper-V 2012 R2 vă va cere să selectați mașina virtuală dorită de importat.
  4. La import (dacă transferați o mașină virtuală - adică pe vechiul server, aceasta va fi ștearsă ca urmare și aceeași VM ar trebui să ruleze pe cel nou), selectați cum să importați:
    1. Inregistreaza-te virtualul machine in-place - înregistrați un VM într-o locație cu același ID;
    2. Restaurați mașina virtuală - copiați VM-ul într-un alt folder, lăsați ID-ul neschimbat;
      Pentru a migra o VM, selectați această opțiune.
    3. Copiați mașina virtuală - copiați VM într-un alt folder și generați un nou ID pentru acesta.
  5. Pentru că importarea (printre altele) necesită copierea fișierelor hard disk-uri, când fișiere mari VHD(X) Vreau să accelerez acest proces. În acest scop, copiați (sau mutați) fișierul VHD direct în folderul în care va fi localizat după importarea mașinii virtuale. Apoi, în timpul procesului de import, Hyper-V 2012 R2 vă va întreba în ce folder să obțineți fișierele hard disk ale mașinii virtuale importate, precum și unde să le copiați în timpul procesului de import. Pentru ambele întrebări, indicați folderul în care ați plasat fișierul VHD al VM-ului importat. Adică vei avea același folder„de unde să copiați disc virtual„ și „unde să salvezi discul virtual”.

Materialele au fost folosite la pregătirea articolului.