Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Máy Chủ Windows

Nhập, Xuất Và Clone Máy Ảo Trong Hyper-V

Khác với VMWare, Hyper-V không có tính năng tích hợp để clone máy ảo (cloning chỉ có sẵn trong Virtual Machine Manager). Để tạo một bản sao đầy đủ của một VM hiện có, bạn sẽ phải sử dụng tính năng import và export của Hyper-V. Trong bài viết này, chúng tôi sẽ chỉ cách clone máy ảo trong Hyper-V bằng import và export với Hyper-V Manager GUI, PowerShell, và Windows Admin Center (WAC).

Khi clone máy ảo chạy Windows, hãy nhớ rằng bản sao VM sẽ có cùng SID với nguồn. Bạn phải sử dụng công cụ Sysprep để đặt lại SID Windows guest. Nếu bạn đã tạo hình ảnh Windows tham chiếu, hãy chạy lệnh dưới đây trong nó trước khi clone:

%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe

VM sẽ được tắt và SID mới sẽ được tạo tại lần khởi động tiếp theo trên cả VM nguồn và bản sao clone của nó. Ngoài ra, không khuyến khích clone VM đã tham gia miền Active Directory.

Xuất Và Nhập VM Trong Hyper-V Manager

Trước hết, xuất VM vào một thư mục riêng biệt. Mở console Hyper-V Manager, chuột phải vào VM và chọn Export trong menu ngữ cảnh.

Trên Hyper-V trong Windows Server 2012 R2 và mới hơn (bao gồm Free Hyper-V Server), bạn có thể xuất ngay cả máy ảo đang chạy mà không cần dừng chúng.

Chỉ định thư mục bạn muốn xuất máy ảo đến.

Trạng thái xuất VM sẽ được hiển thị trong khu vực trạng thái VM trong console Hyper-V của bạn.

Nhiều quản trị viên sử dụng xuất VM như phương pháp dễ dàng nhất để sao lưu VM trong Hyper-V.

Bạn có thể xuất một checkpoint (snapshot) cụ thể của máy ảo. Để làm điều đó, chỉ cần chuột phải vào checkpoint cần thiết trong cây Checkpoints và chọn Export.

Để nhập VM, nhấp vào tên máy chủ trong Hyper-V Manager và chọn Import Virtual Machine.

Sau đó chỉ định đường dẫn đến thư mục nơi các thư mục với file VM đã nhập nằm. Khi bạn nhập VM trong Hyper-V, bạn được cung cấp 3 tùy chọn đăng ký VM trên host:

  • Register the virtual machine in-place (use the existing unique ID) — để đăng ký VM trong thư mục chứa file đã nhập (VM ID giữ nguyên)
  • Restore the virtual machine (use the existing unique ID) — để sao chép file VM sang thư mục khác (VM ID gốc được giữ lại)
  • Copy the virtual machine (create a new unique ID) — để sao chép VM sang thư mục khác và tạo VM ID mới

Mỗi VM trên host Hyper-V có một ID phải duy nhất trong host. Nếu bạn nhập hoặc clone VM sang host khác, bạn không cần thay đổi VM ID.

Nếu bạn cố gắng nhập VM với ID trùng lặp, lỗi sau xảy ra:

The operation failed because a virtual machine with the same identifier already exists. Select a new identifier and try the operation again.

Để tạo bản clone VM với ID mới, chúng tôi đã chọn tùy chọn thứ ba. Wizard nhắc bạn chỉ định thư mục bạn muốn đặt file VM. Mặc định, các thư mục được chỉ định trong cài đặt host Hyper-V được sử dụng.

Sau đó chọn thư mục nơi ảo hóa ổ cứng của máy ảo (file vhdx) sẽ được lưu trữ.

Sau đó một máy ảo clone mới sẽ xuất hiện trong console Hyper-V của bạn.

Cách Xuất, Nhập, Và Clone Hyper-V VMs Với PowerShell?

Hãy xem cách clone máy ảo Hyper-V bằng export/import sử dụng PowerShell.

Để xuất VM, hãy chạy lệnh dưới đây:

Export-VM -Name win10 -Path 'C:\VHD\export'

Nếu bạn muốn xuất VM đang chạy, bạn có thể sử dụng tùy chọn CaptuteLiveState xác định cách xuất bộ nhớ VM. Ba tùy chọn có sẵn:

  • CaptureSavedState – để xuất bộ nhớ (mặc định)
  • CaptureDataConsistentState – để xuất trạng thái VM từ Hyper-V Production Checkpoint
  • CaptureCrashConsistentState – không lưu nội dung bộ nhớ

Export-VM -Name win10 -Path 'C:\VHD\export' -CaptureLiveState CaptureCrashConsistentState

Nếu bạn muốn xuất trạng thái VM từ checkpoint cụ thể, hãy chỉ định tên của nó.

Trước hết, hiển thị danh sách checkpoint có sẵn cho VM:

Get-VMSnapshot -VMName win10

Sau đó xuất checkpoint theo tên của nó:

Export-VMSnapshot -Name “win10 - (6/17/2021 - 3:12:205 PM) Standard” -VMName win10 -Path 'C:\VHD\export'

Sau khi VM được xuất, bạn có thể nhập nó. Nếu bạn muốn đăng ký VM tại chỗ, hãy chạy lệnh sau:

Import-VM -Path "C:\VHD\export\win10\Virtual Machines\212cadd2-6543-bc2d-ca11-321ffa223f3b.vmcx"

Trong tùy chọn Path, chỉ định vị trí file cấu hình VM (định dạng file VMCX thay thế định dạng XML của file cấu hình VM trong Hyper-V Server 2016). Để sao chép VM sang thư mục khác với cùng ID, sử dụng tùy chọn Copy. Để tạo VM ID mới, sử dụng tùy chọn GenerateNewId:

Import-VM -Path "C:\VHD\export\win10\Virtual Machines\212cadd2-6543-bc2d-ca11-321ffa223f3b.vmcx" -VhdDestinationPath "C:\VHD\win10_2" -VirtualMachinePath "C:\VHD\win10_2"

VhdDestinationPath chỉ định thư mục file VHDX của VM sẽ được sao chép đến, và VirtualMachinePath đặt thư mục file cấu hình VM. Nếu các tùy chọn không được đặt, file VM sẽ được sao chép đến thư mục mặc định được chỉ định trong cài đặt host Hyper-V (C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\).

Bạn cũng có thể đặt thư mục để lưu checkpoint (SnapshotFilePath) và pagefile (SmartPagingFilePath).

Lưu ý rằng VM clone đã xuất hiện trong console Hyper-V với tên VM nguồn. Hãy đổi tên nó, nhưng chúng ta cần VMID của nó trước:

get-vm | select VMNAME,VMId

Như bạn thấy, có hai VM với cùng tên và ID khác nhau trên host. Đổi tên VM với ID khác với ID của VM đã nhập. Sao chép ID của VM mới và đổi tên nó:

get-vm | Where-Object {$_.VMId -eq "9a9d3332-f332-a231-8abc-9221aab32287"} | Rename-VM -NewName win10_2

Sau đó bạn có thể đổi tên file ảo hóa ổ cứng cũng:

Get-VHD -VMId 9a9d3332-f332-a231-8abc-9221aab32287| Select Path | Rename-Item -NewName win10_2.vhdx
Remove-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerLocation 0 -ControllerNumber 0
Add-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 0 -Path "C:\VHD\win10_2\win10_2.vhdx"

Thay đổi địa chỉ MAC của card mạng ảo (bạn có thể chỉ định địa chỉ MAC tĩnh mới hoặc cấu hình lấy địa chỉ MAC động).

Set-VMNetworkAdapter -VMName win10_2 -DynamicMacAddress
Start-VM -Name win10_2

Trước khi kết nối VM mới của bạn với mạng, khuyến khích đổi tên nó và thay đổi địa chỉ IP thành cái mới (nếu bạn sử dụng DHCP trong LAN, bạn có thể bỏ qua bước này). Sau đó bạn sẽ có thể kết nối đến VM mới của bạn qua PowerShell Direct sử dụng cmdlet Invoke-Command hoặc Enter-PSSession:

Enter-PSSession -ComputerName win10_2 -Credential (Get-Credential)
Rename-Computer win10_2
Remove-NetIPAddress -InterfaceAlias “Ethernet” -AddressFamily IPV4
New-NetIPAddress -IPAddress 192.168.13.71 -InterfaceAlias “Ethernet” -AddressFamily IPv4 -PrefixLength 24
Restart-Computer

Cách Clone Máy Ảo Hyper-V Sử Dụng Windows Admin Center?

Bạn có thể clone trực tiếp VM Hyper-V mà không cần export và import trong Windows Admin Center v2009 hoặc mới hơn.

Chạy WAC, chọn phần Virtual Machines, sau đó nhấn VM -> Manage -> Clone.

Sau đó chỉ định tên VM mới của bạn và chọn thư mục bạn muốn đặt file của nó.

Lưu ý rằng có tùy chọn “I have already run Sysprep on my VM” trong wizard clone. Nếu bạn chưa generalize hình ảnh bằng Sysprep và chưa bật tùy chọn này, Hyper-V sẽ tạo snapshot của VM nguồn, chạy Sysprep, và clone nó sang VM mới (VM nguồn sẽ được khởi động lại vài lần và sẽ không khả dụng để sử dụng trong quá trình). Sau đó VM nguồn sẽ được trả về trạng thái ban đầu, và snapshot sẽ bị xóa.

Khi clone bất kỳ VM nào với guest OS không phải Windows, luôn bật tùy chọn được mô tả ở trên.

Đợi cho đến khi VM được clone. ID mới sẽ được gán tự động cho VM mới.