Bagaimana cara menghentikan mesin virtual beku di Hyper-V?

Jika mesin virtual Anda yang berjalan pada host Hyper-V ditutup karena suatu alasan, berhenti merespons, dan tidak merespons tombol daya, shutdown, dan reset di konsol Hyper-V, satu-satunya cara cepat untuk secara paksa menghentikan mesin seperti itu adalah untuk mengakhiri proses VM ini di tuan rumah OS. Kami akan menunjukkan cara memaksa reboot VMs di Hyper-V pada Windows Server 2016/2019 tanpa me-reboot seluruh server dan menjalankan VMs (jika Anda tidak memiliki cluster HA Hyper-V dan Live-Migration).

Konten:

  • Mesin virtual Hyper-V membeku di status Berhenti, Mulai
  • Hyper-V Error: Menghubungkan ke layanan Manajemen Mesin Virtual
  • Menyelesaikan proses VM yang digantung menggunakan Task Manager
  • Atur ulang VM yang digantung pada Hyper-V VM menggunakan PowerShell
  • Hyper-V: Gagal mengubah status mesin virtual

Mesin virtual Hyper-V membeku di status Berhenti, Mulai

Jadi, anggaplah salah satu VM di Hyper-V dibekukan dalam keadaan Berhenti (Berhenti-Kritis) / Mulai (Mulai 10%).

OS tamu berhenti merespons, dan tombol "Matikan", "Matikan" dan "Setel Ulang" di konsol Hyper-V Manager menjadi tidak tersedia atau mengembalikan kesalahan saat ditekan:

Jadi, misalkan salah satu VM di Hyper-V hang, OS tamu berhenti merespons, dan tombol "Matikan", "Matikan" dan "Setel Ulang" di konsol Hyper-V Manager menjadi tidak tersedia atau mengembalikan kesalahan saat ditekan:

Gagal mengubah status Operasi tidak dapat dilakukan saat objek dalam kondisi saat ini 

Hyper-V Error: Menghubungkan ke layanan Manajemen Mesin Virtual

Jika Hyper-V Anda tidak menampilkan mesin virtual di konsol Hyper-V Manager, mengembalikan "Menghubungkan ke layanan Manajemen Mesin Virtual", Anda harus memulai ulang proses vmms.exe (layanan Manajemen Mesin Virtual Hyper-V). Ini adalah operasi yang aman dan tidak akan mengganggu mesin virtual yang sedang berjalan. Cara termudah untuk memulai kembali proses vmms.exe adalah melalui layanan vmms dan melalui konsol layanan.msc atau perintah:

Dapatkan-Layanan vmms | Mulai kembali layanan

Menyelesaikan proses VM yang digantung menggunakan Task Manager

Satu-satunya cara untuk memaksa shutdown / restart mesin virtual beku tanpa me-reboot seluruh server host Hyper-V adalah untuk mengakhiri alur kerjanya pada OS tamu. Semua VM di host Hyper-V mulai menggunakan proses. vmwp.exe (Virtual Mesin Pekerja Proses). Untuk mencari suatu proses, Anda perlu mengetahui GUID dari mesin virtual.

Anda dapat menentukan VM GUID melalui konsol manajemen Hiper v Manajer. Buka pengaturan server (Hiper v Pengaturan) Bagian Server menunjukkan direktori di mana file konfigurasi VM disimpan (dalam contoh kami, D: \ VMStore).

Buka direktori ini di File Explorer dan temukan direktori dengan nama mesin virtual beku. Salin GUID yang ditentukan dalam nama file konfigurasi VM dengan ekstensi * .vmcx.

Sekarang Anda perlu memulai task manager (Tugas Manajer) dan buka tab Detail. Semua mesin virtual dijalankan sebagai bagian dari instance proses mereka sendiri. vmwp.exe. Untuk menentukan proses mana yang bertanggung jawab untuk VM mana, kita perlu GUID yang sebelumnya diperoleh dari VM gantung. Temukan proses vmwp.exe yang memiliki kolom Pengguna nama GUID VM Anda ditentukan. Selesaikan proses ini (Akhiri tugas).

Mesin virtual akan dipaksa berhenti. Sekarang Anda bisa melakukan apa saja dengannya.

Atur ulang VM yang digantung pada Hyper-V VM menggunakan PowerShell

Jauh lebih mudah untuk menemukan dan menyelesaikan proses mesin virtual yang digantung menggunakan PowerShell. Mulai konsol PowerShell dengan hak administrator (akun harus dalam grup administrator Hyper-V lokal).

Dalam hal ini, cmdlet Stop-VM built-in tidak akan membiarkan Anda mematikan VM. Jika Anda mencoba menjalankan perintah Stop-VM -Force, dia juga membeku. Jelas menunggu tanggapan dari VM.

Dalam hal ini, Anda juga harus menyelesaikan proses VM dengan ID-nya. Anda bisa mendapatkan VM GUID dengan namanya. Misalnya, untuk VM yang bernama SVM-GUARDEDHOST1, jalankan perintah:

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

Jika Anda tidak ingin mengetikkan nama lengkap VM, Anda bisa mendaftar semua VM yang terdaftar di host Hyper-V ini:

Dapatkan-VM | Pilih Nama, Id

Salin GUID dari VM yang diinginkan dari daftar.

Sekarang Anda perlu menemukan pengidentifikasi proses (PID) 'vmwp.exe' untuk VMGUID Anda:

$ VMWMProc = (Dapatkan-WmiObject Win32_Process |? $ _. Nama -match 'VMWP' -dan $ _. CommandLine -match $ VMGUID)

Kemudian, menggunakan perintah Stop-Process, Anda harus menghentikan proses ini secara paksa:

Stop-Process ($ VMWMProc.ProcessId) -Paksa

Ini adalah cara sederhana untuk secara paksa menghentikan alur kerja dari mesin virtual Hyper-V yang ditangguhkan.

Kiat. Kami juga menjelaskan prosedur serupa untuk menyelesaikan proses VM menggantung pada host VMWare ESXi..

Hyper-V: Gagal mengubah status mesin virtual

Kadang-kadang terjadi bahwa bahkan setelah proses hang-up berakhir, Anda tidak dapat menghidupkan VM dan membeku dalam status Mulai dengan kesalahan:

Koneksi Mesin Virtual Gagal mengubah status. Gagal Mengubah Status.

Dalam hal ini, periksa opsi berikut:

  • Periksa apakah ada cukup ruang kosong pada disk tempat file VM disimpan;
  • Jika image ISO terhubung dalam pengaturan VM, periksa ketersediaannya;
  • Periksa pengaturan jaringan VM. Adaptor jaringan virtual harus terhubung ke sakelar virtual Hyper-V yang ada (status Jaringan Jaringan tidak boleh - Kesalahan konfigurasi);
  • Verifikasi bahwa Layanan Manajemen Virtual Hyper-V (VMMS) sedang berjalan dan tidak dibekukan dalam status Berhenti;
  • Pastikan antivirus Anda tidak memblokir akses ke file VM. Tambahkan path ke direktori VM ke pengecualian antivirus (lihat cara menambahkan pengecualian ke antivirus bawaan Windows Server 2016 - Windows Defender);
  • Periksa kesalahan dalam log peristiwa Penampil Acara -> Aplikasi dan Log Layanan -> Microsoft -> Windows -> Hyper-V-Worker.