VMware ESXi: כיצד להרוג מכונה וירטואלית שאינה מגיבה (תקועה)
לפעמים אני רואה שמכונה וירטואלית מסוימת במארח VMWare ESXi קופאת ואי אפשר לכבות או להפעיל אותה מחדש מקונסולת vSphere בשום אמצעי. אתחול מחדש של מארח ESXi כולו עקב מכונה וירטואלית אחת אינו מומלץ לחלוטין (במיוחד אם יש לך רק מארח ESXi אחד, או שהשרתים הנותרים באשכול DRS אינם מסוגלים להתמודד עם העומס הנוסף של מכונות וירטואליות מהשרת להפעלה מחדש). שקול את הדרכים העיקריות להרוג בכוח מכונה וירטואלית שאינה מגיבה (תלויה) במארח VMWare ESXi.
אם תהליך המחשב הווירטואלי בשרת ESXi קופא, הוא מפסיק להגיב ב- vCenter
Reset/
Power Offמצווה ומחזיר אחת מהשגיאות הבאות לכל פעולה:
משימה נוספת כבר בעיצומה;
-
ייתכן שהמחשב הווירטואלי מבצע פעולות בו-זמניות. פעולות: השלם את הפעולה הבו-זמנית ונסה שוב את פעולת הכיבוי; המחשב הווירטואלי נמצא במצב לא חוקי;
לא ניתן לבצע את ניסיון הפעולה במצב הנוכחי.
במקרים כאלה, באפשרותך להרוג באופן ידני את תהליך המחשב הווירטואלי במארח ESXi משורת הפקודה ESXi Shell או PowerCLI.
ראשית עליך לקבוע על איזה מארח ESXi המחשב הווירטואלי התלוי פועל. לשם כך, מצא את המחשב הווירטואלי בממשק לקוח vSphere. שם מחשב המארח ESXi שבו פועל מחשב וירטואלי מצוין בכרטיסיה סיכום במקטע אובייקט קשור -> מארח.
לאחר מכן, פרוטוקול חיבור SSH חייב להיות מופעל במארח ESXi שלך. אתה יכול לעשות זאת מממשק vSphere. לחץ על שם המארח ESXi, עבור אל Configure -> Services -> SSH -> Start.
עכשיו אתה יכול להתחבר למארח זה באמצעות SSH באמצעות לקוח מרק. פרט את המחשבים הווירטואליים הפועלים במארח ESXi:
esxcli vm process listהעתק את "מזהה העולם" של המחשב הווירטואלי הבעייתי.
כדי לסיים את התהליך של מחשב וירטואלי תלוי במחשב מארח ESXi, השתמש בפקודה הבאה:
esxcli vm process kill --type=[soft,hard,force] --world-id=WorldNumberישנם שלושה סוגי הריגה של תהליך ה-VMs:
רך - הדרך הבטוחה ביותר להרוג את תהליך VMX (בדומה להרוג -SIGTERM);
קשה - סיום מיידי של תהליך ה-VMs (להרוג -9);
Force - מצב עצירת התהליך הקשה ביותר של VM. יש להשתמש אחרון אם שום דבר אחר לא עוזר.
ודא שאין תצלומי בזק פעילים, גיבויים ומשימות דומות עבור VM, ו- VM אינו במצב "יש צורך באיחוד דיסקים של מחשב וירטואלי". אחרת, אתה יכול לשבור את ה- VM שלך ותצטרך לשחזר אותו מגיבוי.
בואו ננסה לעצור ברכות את ה- VM עם המזהה שצוין:
esxcli vm process kill --type=soft -w=20598249יש לכבות את ה-VM.
באפשרותך לעצור את המחשב הווירטואלי הקפוא באמצעות PowerCLI (זה נוח, מכיוון שבעת התחברות ל- vCenter אינך צריך למצוא את שם המארח שבו פועל ה- VM ולהפעיל עליו מעטפת SSH). ודא שה-VM פועל:
get-vm “web1" | select name,PowerStates
כפה עצירה של תהליך ה-VM באמצעות הפקודה:
stop-vm -kill "web1" -confirm:$falseכמו כן, באפשרותך לעצור מכונה וירטואלית VMWare שאינה מגיבה באמצעות כלי השירות ESXTOP.
פתח את הפעלת SSH, הזן את esxtop, הקש "c" כדי להציג משאבי CPU ולאחר מכן SHIFT+V כדי להציג תהליכי מחשב וירטואלי בלבד.
לאחר מכן הקש "f" (כדי לבחור שדות שיוצגו), "c" (כדי להציג את LWID- Leader World Id) ולאחר מכן הקש ENTER.
בעמודה שם, מצא את המחשב הווירטואלי שיש לעצור וציין את מספר ה- LWID שלו בעמודה המתאימה.
עכשיו אתה צריך ללחוץ על "k " (להרוג) ולהזין את מספר LWID של המכונה הווירטואלית שאתה רוצה לאלץ כיבוי.
והדרך האחרונה של כיבוי "קשה" של VM היא להשתמש בכלי ההריגה. שיטה זו תעצור לא רק את ה- VM, אלא גם את כל תהליכי הצאצא.
קבל את מזהה תהליך האב של המחשב הווירטואלי:
ps | grep "web2"להרוג את תהליך ה-VMs:
kill -9 24288474לאחר "איפוס קשיח" כזה, מערכת ההפעלה המותקנת תאותחל במצב שחזור. במקרה של Windows אורח, המסך ייראה כך.








