Bisakah KVM menangguhkan atau mematikan tamu secara otomatis saat host shutdown?

16

Kami memiliki host CentOS 5.5 KVM, menjalankan tamu dengan berbagai versi CentOS dan mungkin juga OS lainnya nanti.

Kami ingin dapat (a) secara otomatis mengirim shutdown ACPI ke semua tamu atau (b) menangguhkan semua tamu ke disk, pada host shutdown.

Apakah ada metode standar untuk mencapai salah satu dari ini, atau apakah itu situasi roll-Anda-sendiri? Terima kasih!

Andrew Clegg
sumber

Jawaban:

5

Iya.

The virsh shutdownperintah (atau implementasi lain dari "penutupan" menggunakan libvirt, seperti dalam virt-manager) menginstruksikan OS tamu untuk menutup rapi. Dari halaman manual:

   shutdown domain-id

   Gracefully shuts down a domain.  This coordinates with the domain
   OS to perform graceful shutdown, so there is no guarantee that it
   will succeed, and may take a variable length of time depending on
   what services must be shutdown in the domain.

   The exact behavior of a domain when it shuts down is set by the
   on_shutdown parameter in the domain’s XML definition.

Dengan KVM, ini akan mengirim AC_ systemdownpowerdown acara

Di Fedora dan RHEL 6, libvirt-guestsskrip init keluar dari kotak yang dikonfigurasi untuk menangguhkan semua tamu saat sistem mati. Ini bukan sihir, jadi orang bisa menyalin ini ke CentOS 5 dengan sedikit modifikasi.

mattdm
sumber
Itu ide yang bagus, saya punya mesin Fedora, saya akan mencoba backporting ke CentOS5. Terima kasih.
Andrew Clegg
Saya tidak dapat melihat on_shutdown dalam dokumen: libvirt.org/formatdomain.html#elementsLifecycle
Thiago Figueiro
Hmmmm. Ya, itu juga mencurigakan hilang dalam kode . Apa yang sebenarnya dilakukan libvirt-guestsskrip dijalankan . (Sepertinya mungkin hanya driver UML yang mendukung system_powerdown.) Terima kasih atas hasilnya! Saya akan memperbarui jawaban saya, dan mengajukan bug terhadap dokumentasi. virsh managedsave
mattdm
0

Sejauh yang saya tahu tidak ada skrip standar untuk CentOS. Dimungkinkan untuk mendaftar, tetapi sedikit berbahaya, karena Anda harus menangani tamu yang membutuhkan waktu lama untuk ditutup. Hanya membunuh mereka setelah waktu habis dapat menghancurkan data, sambil menunggu mereka dapat membuat shutdown Anda tergantung.

Sebaliknya lebih baik mematikan tamu dengan tangan sebelum melakukan reboot. Untuk sementara saya memiliki skrip yang menggantikan shutdown dan reboot. Script itu memperingatkan saya jika ada tamu yang menjalankan (lc sederhana pada daftar mesin virtual) dan memblokir perintah jika ada tamu yang menjalankan.

pehrs
sumber
-2

Tamu KVM hanyalah proses userspace. Anda harus memiliki beberapa proses pemantauan. yang paling umum di luar sana tampaknya adalah libvirt (ini dikembangkan oleh RedHat, jadi saya kira itu harus tersedia di CentOS).

Javier
sumber