monitor رابط ادارهٔ فرایند QEMU است؛ console guest نیست. امشب pause و snapshot را با وضعیت دیسک/حافظه مرتبط می‌کنیم و QMP را از HMP جدا می‌شناسیم.

این جلسه بخشی از دورهٔ لینوکس ۳۰۵ در ۶۰ شب است.

جایگاه در دوره: هدف‌های 351.3 آزمون 305-300.

محیط: Clone مستقیم شب ۱۲، qcow2 writable، guest کم‌بار و marker؛ snapshot داخلی باید با backendهای همین اجرای QEMU سازگار باشد.

با -nographic پیش‌فرض، Ctrl-a سپس c بین console و monitor متنی جابه‌جا می‌شود. فرمان‌های زیر در HMP monitor هستند:

info status
info block
stop
info status
cont

stop اجرای CPU guest را pause می‌کند؛ فایل‌ها و حافظه همچنان متعلق به QEMU هستند. monitor را به TCP عمومی bind نکن.

snapshot داخلی#

برای تمرین کامل savevm، همهٔ deviceهای writable باید از snapshot پشتیبانی کنند؛ qcow2 این قابلیت را دارد و seed read-only است. guest را پیش از capture به وضعیت کاری تمام‌شده ببر:

savevm baseline01
info snapshots

داخل guest marker را تغییر بده و سپس در monitor loadvm baseline01 اجرا کن. بازگشت state می‌تواند زمان، نشست شبکه و برنامه را عقب ببرد؛ روی database واقعی یا نشست کاری آن را اجرا نکن. نام snapshot را با backup خارج host یکی ندان.

QMP API JSON با handshake و qmp_capabilities است؛ متن فرمان HMP را بی‌تبدیل به socket QMP نفرست. برای automation از client قابل اعتماد و socket Unix محدود استفاده کن. در دامنهٔ تحت libvirt، QEMU monitor command مستقیم می‌تواند state libvirt را دور بزند؛ API استاندارد libvirt را ترجیح بده.

آزمون و بازگشت: marker/state واقعی را پیش و پس از loadvm ثبت کن. برای پایان، guest را با shutdown خاموش و overlay اصلی را از نسخهٔ آفلاین سالم برگردان؛ حذف snapshot لازم فقط با disk متوقف/روش مناسب انجام می‌شود.

منبع: monitor QEMU ، QMP ، snapshotهای QEMU .