KVM virsh destroy vs. shutdown

Fórumok

Üdv!

A virsh parancs "destroy" és "shutdown" paraméterei között mi a különbség?
Ha csak simán egy VM-t leállítok, akkor nincs különbség a kettő között?

--
G.

Hozzászólások

destroy domain [--graceful]
Immediately terminate the domain domain. This doesn't give the domain OS any chance to react, and it's the equivalent of ripping the power cord out on a physical machine.

shutdown domain [--mode MODE-LIST]
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.

HTH

Több ideig tartott ezt a választ megírni, mint a man oldalt megnézni....

Igen, ezt olvastam. Csak azt nem tudom, hogy KVM/qemu alatt a "shutdown" miért nem működik mindig. A "destroy" is szabályos leállítást csinál? Vagy ez az erőltetett leállítás a "virt-manager"-ben? (Ami nem szerencsés.)

A "shutdown"-ra írja, hogy ez nem biztos, hogy sikerülni fog: "...so there is no guarantee that it will succeed..."
Emiatt kérdezem, mert pl. CentOS7 alatt a shutdown nem akar működni és szabályosan szeretném leállítani.
korábban azt csináltam, hogy a VM-ben adtam ki: "shutdown -h now"
De most ez sem működik. :(

--
G.

Mit értesz az alatt, hogy "nem működik"? Leállítja a processzeket, lecsatolja a fájlrendszert szépen, csak a tényleges kikapcs nem történik meg? Akkor először shutdown (akár belülről, akár kívülről), megvárod hogy megcsinálja amit kell neki (pl. virt-viewerrel nézed, vagy csak bízol benne hogy már elég idő eltelt), és utána destroy.

Azért nem működik mindig, mert a guest-ben ACPI támogatás szükséges hozzá (amikor a power gombot röviden megérinted, az is egy ACPI eseményt generál). Mivel ez alapból nincs minden guest-ben (vagy nincs bekapcsolva), ezért nem garantálható, hogy szabályosan le tudja állítani az OS-t. CentOS 7 esetén nem tudom, hogy az ACPI támogatás hogyan működik, SUSE enterprise linux-nál láttam ACPI service-t. Ha van ilyen CentOS alatt, akkor indítsd el, és valószínűleg működni fog a shutdown is.

Második: mit értesz az alatt, hogy a "shutdown -h now" nem működik?

Az acpid daemon telepítve és aktív is a guest-ben, de nem segít.
A CentOS7 első kiadásakor még működött (CentOS7 host és guest a környezet), hogy a guest-ben kiadtam a "shutdown -h now" és leállt a VM. De most nem teszi. A virt-manager látni, hogy fut a VM. Persze lehet, hogy leálltak a folyamatok (ahogy írjátok).
Viszont ha erőltetett leállítást nyomok (ez lehet a "destroy"?), akkor 'crash report' üzenet van a guest root mailjeiben. Ebből gondolom, hogy az erőltett leállítás ("destroy"?) nem a legjobb leállítási mód.

--
G.

CentOS7 core installban nincsen benne az ACPI daemon (acpid). Külön kell felrakni és engedélyezni/elindítani.

Ha a "shutdown -h now" nem megy, akkor valami nagy bazmeg lehet ott, ugyanis a shutdown parancs csak egy symlink a systemctl binárisra (/sr/sbin/shutdown -> /bin/systemctl).
Ha az nem megy, akkor semmilyen service parncsot sem tudsz kiadni.

Esetleg meg kéne nézni, hogy nem törlődött-e a shutdown symlink.
Vagy esetleg reinstallálni kéne a systemd csomagot, amiben a systemctl bináris (csak mer hátha ...).

Ha a shutdown parancs nem megy, akkor elsőre azt kéne rendbe rakni.

Ha az acpid daemon fut, akkor a host-ról ellőtt shutdown-nak is mennie kell.
---------------------------------------------------
Talisker Single Malt Scotch Whisky aged 10 years :)

A guest-et leíró domain.xml-ben vannak ACPI-ra vonatkozó dolgok.
Alapban engedélyezve van, hogy figyeljen iélyen ACPI eventekre a host asszem.

érdemes itt kutakodni kicsit: https://libvirt.org/formatdomain.html

---------------------------------------------------
Talisker Single Malt Scotch Whisky aged 10 years :)