Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Làm thế nào để Dừng / Tiêu diệt một máy ảo bị mắc kẹt trên Hyper-V?

Nếu máy ảo của bạn đang chạy trên Hyper-V bị kẹt vì lý do nào đó, dừng để phản hồi và không khởi động / dừng / đặt lại sau khi nhấp vào các nút tương ứng trong bảng điều khiển Hyper-V, cách duy nhất để khắc phục điều này là buộc phải giết quy trình chịu trách nhiệm cho máy ảo này trên hệ điều hành chủ. Chúng tôi sẽ hướng dẫn bạn cách buộc khởi động lại máy ảo Hyper-V bị kẹt đang chạy trên Windows Server 2016/2019 mà không cần khởi động lại toàn bộ máy chủ và tất cả máy ảo đang chạy (nếu bạn không có cụm Hyper-V HA và Live-Migration).

Nội dung:

  • Hyper-V VM bị kẹt ở trạng thái “Đang dừng / Đang khởi động”
  • Trình quản lý Hyper-V gặp sự cố khi “Kết nối với Dịch vụ quản lý máy ảo”
  • Làm thế nào để tiêu diệt một quy trình Hung VM trong Trình quản lý tác vụ?
  • Giết chết Hyper-VM bị đóng băng bằng PowerShell
  • Hyper-V:Không thể thay đổi trạng thái máy ảo

Hyper-V VM Bị kẹt ở trạng thái “Đang dừng / Khởi động”

Giả sử, một trong các máy ảo Hyper-V của bạn bị kẹt trong Dừng (Đang dừng-Nghiêm trọng) hoặc Đang bắt đầu (Bắt đầu x%) trạng thái.

Làm thế nào để Dừng / Tiêu diệt một máy ảo bị mắc kẹt trên Hyper-V?

Hệ điều hành khách không phản hồi và các nút “Tắt”, “Tắt” và “Đặt lại” trong Trình quản lý Hyper-V không khả dụng hoặc trả lại lỗi sau khi được nhấn:

Ứng dụng đã gặp lỗi khi cố gắng thay đổi trạng thái của máy ảo.
Không thể thay đổi trạng thái.
Không thể thực hiện thao tác khi đối tượng ở trạng thái hiện tại.

Làm thế nào để Dừng / Tiêu diệt một máy ảo bị mắc kẹt trên Hyper-V?

Hyper-V Manager Đã gặp sự cố khi “Kết nối với Dịch vụ Quản lý Máy ảo”

Nếu Hyper-V của bạn không hiển thị máy ảo trong bảng điều khiển Hyper-V Manager và trả về lỗi “Kết nối với dịch vụ quản lý máy ảo”, bạn cần khởi động lại vmms.exe ( Dịch vụ quản lý máy ảo Hyper-V ) quy trình. Đây là một hoạt động an toàn và sẽ không làm gián đoạn các máy ảo đang chạy. Cách dễ nhất để khởi động lại quy trình vmms.exe là thông qua dịch vụ vmms bằng bảng điều khiển services.msc hoặc với lệnh ghép ngắn quản lý dịch vụ PowerShell:

Get-Service vmms | Restart-Service

Làm thế nào để Dừng / Tiêu diệt một máy ảo bị mắc kẹt trên Hyper-V?

Làm cách nào để loại bỏ quá trình Hung VM trong Trình quản lý tác vụ?

Cách duy nhất để buộc tắt máy khởi động lại một máy ảo bị kẹt như vậy mà không cần khởi động lại toàn bộ máy chủ Hyper-V là kết thúc quy trình làm việc đang chạy của nó trong hệ điều hành khách. Tất cả các máy ảo trên máy chủ Hyper-V đều được khởi động bằng vmwp.exe quy trình ( Quy trình công nhân máy ảo ). Để tìm kiếm một quy trình, bạn cần tìm hiểu GUID của máy ảo.

Bạn có thể tải VM GUID thông qua Hyper-V Người quản lý bàn điều khiển. Mở cài đặt máy chủ Hyper-V. Trong phần Máy chủ, vị trí của các tệp cấu hình VM được hiển thị (trong trường hợp của chúng tôi là D:\ VMStore).

Làm thế nào để Dừng / Tiêu diệt một máy ảo bị mắc kẹt trên Hyper-V?

Mở thư mục này trong File Explorer và tìm thư mục có cùng tên với máy ảo của bạn. Sao chép GUID được chỉ định trong tên của tệp cấu hình VM có phần mở rộng * .vmcx.

Làm thế nào để Dừng / Tiêu diệt một máy ảo bị mắc kẹt trên Hyper-V?

Chạy Tác vụ Người quản lý và đi tới Chi tiết chuyển hướng. Tất cả các máy ảo đang chạy trong phiên bản vmwp.exe của riêng chúng . Để xác định quy trình nào chịu trách nhiệm cho máy ảo của bạn, bạn cần GUID của máy ảo bị treo mà bạn đã nhận được trước đó. Tìm quy trình vmwp.exe có GUID của máy ảo của bạn trong Người dùng tên cột. Hủy quá trình này ( Kết thúc tác vụ ).

Làm thế nào để Dừng / Tiêu diệt một máy ảo bị mắc kẹt trên Hyper-V?

Máy ảo sẽ buộc phải dừng lại. Bây giờ bạn có thể làm bất cứ điều gì với nó.

Giết máy ảo đông lạnh bằng PowerShell

Việc tìm và diệt quá trình máy ảo bị treo bằng PowerShell CLI dễ dàng hơn nhiều. Chạy bảng điều khiển PowerShell với đặc quyền của quản trị viên (tài khoản của bạn phải được thêm vào nhóm “quản trị viên Hyper-V” cục bộ).

Trong trường hợp này, Stop-VM được tích hợp sẵn lệnh ghép ngắn sẽ không cho phép bạn tắt máy ảo. Nếu bạn cố gắng chạy Stop-VM -Force lệnh, nó cũng đóng băng. Rõ ràng là đang chờ phản hồi từ VM.

Bạn cũng cần phải giết tiến trình VM bằng GUID của nó. Bạn có thể lấy VM GUID theo tên của nó. Ví dụ:để lấy GUID của máy ảo với tên SVM-GUARDEDHOST1, hãy chạy lệnh:

$VMGUID = (Get-VM "SVM-GUARDEDHOST1").ID

Nếu bạn không muốn nhập tên đầy đủ của máy ảo, bạn có thể liệt kê tất cả các máy ảo được đăng ký trên máy chủ Hyper-V này:

Get-VM | Select Name, Id

Làm thế nào để Dừng / Tiêu diệt một máy ảo bị mắc kẹt trên Hyper-V?

Sao chép GUID VM của bạn từ danh sách kết quả.

Tìm mã định danh quy trình vmwp.exe (PID) cho VMGUID này:

$VMWMProc = (Get-WmiObject Win32_Process | ? {$_.Name -match 'VMWP' -and $_.CommandLine -match $VMGUID})

Sau đó, bằng cách sử dụng lệnh Stop-Process, bạn phải buộc chấm dứt quá trình này:

Stop-Process ($VMWMProc.ProcessId) –Force
Làm thế nào để Dừng / Tiêu diệt một máy ảo bị mắc kẹt trên Hyper-V?

Đây là cách dễ dàng để chấm dứt mạnh mẽ quá trình làm việc của máy ảo Hyper-V bị treo.

Mẹo . Chúng tôi cũng có một mô tả về cách tương tự để giết tiến trình của máy ảo bị treo trên VMWare ESXi.

Hyper-V:Không thể thay đổi trạng thái máy ảo

Đôi khi nó xảy ra rằng ngay cả sau khi giết một tiến trình VM bị treo, bạn không thể bật VM. Hơn nữa, nó bị đóng băng ở trạng thái Bắt đầu với lỗi:

Virtual Machine Connection
Failed to Change State.

Trong trường hợp này, hãy kiểm tra các tùy chọn sau:

  • Kiểm tra xem có đủ dung lượng trống trên đĩa để lưu trữ các tệp Hyper-V VM không;
  • Nếu hình ảnh ISO được kết nối trong cài đặt máy ảo, hãy kiểm tra tính khả dụng của nó;
  • Kiểm tra cài đặt bộ điều hợp mạng của máy ảo. Bộ điều hợp mạng ảo phải được kết nối với công tắc ảo Hyper-V hiện có (không được có trạng thái Bộ điều hợp mạng - Lỗi cấu hình cho bất kỳ NIC nào); Làm thế nào để Dừng / Tiêu diệt một máy ảo bị mắc kẹt trên Hyper-V?
  • Kiểm tra để đảm bảo rằng Dịch vụ quản lý ảo Hyper-V (VMMS) đang chạy và không bị kẹt ở trạng thái Dừng;
  • Đảm bảo rằng phần mềm chống vi-rút của bạn không chặn quyền truy cập vào các tệp VM. Thêm đường dẫn vào thư mục VM để loại trừ vi-rút (vui lòng kiểm tra cách thêm loại trừ vào chương trình chống vi-rút Windows Defender tích hợp trên Windows Server 2016);
  • Kiểm tra các lỗi liên quan đến Hyper-V trong Trình xem sự kiện -> Nhật ký ứng dụng và dịch vụ -> Microsoft -> Windows -> Hyper-V-Worker.