במאמר הזה מוסבר איך לפתור בעיות שקשורות לשימוש במקומות שמורים למשאבים של תחום מוגדר ב-Compute Engine.
פחות מכונות וירטואליות זמינות לשימוש
הבעיה: מספר המכונות הווירטואליות ששוריינו פיזית (השדה assuredCount) לא תואם למספר המכונות הווירטואליות ששוריינו שצוין בשריון (השדה count). כלומר, פחות מכונות וירטואליות מוזמנות עבור הפרויקט שלכם ועבור כל פרויקט אחר שאתם משתפים איתו את ההזמנה.
הבעיה הזו יכולה לקרות בגלל אחת או יותר מהסיבות הבאות:
פרויקט הצרכן של הזמנה משותפת הושעה או הועבר לארגון אחר. במקרה כזה, המערכת של Compute Engine מפחיתה את הערך בשדה
assuredCountבמספר המכונות הווירטואליות שפרויקט הצרכן צורך.הפרויקט שבו נוצרה ההזמנה הושעה. במקרה כזה, Compute Engine מגדיר את השדה
assuredCountלערך0.שגיאה במארח השפיעה על ההזמנה.
פתרון: אלא אם הפרויקט שבו נוצרה ההזמנה הושעה, מערכת Compute Engine עושה כמיטב יכולתה כדי לפתור באופן אוטומטי אי התאמה בין השדות assuredCount ו-count בהזמנה תוך 24 שעות. בנוסף, עד שהפער הזה ייפתר, Google Cloud
נחייב אתכם רק על הקיבולת שהוזמנה בפועל.
בעיות ב-VM שלא צורכים הזמנות
אם מכונה וירטואלית לא יכולה להשתמש בהזמנה, יכולות להיות לכך כמה סיבות:
בקטע הזה מוסבר איך לזהות כל אחת מהבעיות האלה, לפתור אותן ולאמת את צריכת השרתים הווירטואליים.
מאפייני מכונות וירטואליות לא תואמים
בעיה: מכונה וירטואלית לא יכולה להשתמש בהזמנה עם מאפייני מכונה וירטואלית שונים.
כדי לזהות אילו מאפיינים לא תואמים בין המכונה הווירטואלית לבין ההזמנה, צריך להציג את המאפיינים של ההזמנה ושל המכונה הווירטואלית באופן הבא:
לאחר מכן, משווים בין שתי התוצאות כדי לוודא שהמאפיינים הבאים זהים:
project- אם ההזמנה משותפת עם כמה פרויקטים (במיוחד אם השדה
shareTypeבהזמנה מוגדר לערךSPECIFIC_PROJECTS), המכונות הווירטואליות יכולות להיות בפרויקט שבו נוצרה ההזמנה (פרויקט הבעלים) או בכל פרויקט שההזמנה משותפת איתו (פרויקטים צרכניים).
- אם ההזמנה משותפת עם כמה פרויקטים (במיוחד אם השדה
zonemachineTypeguestAccelerators.acceleratorType(אם יש)guestAccelerators.acceleratorCount(אם יש)minCpuPlatform- ההגדרה של המכונה הווירטואלית וההזמנה צריכה להיות זהה לחלוטין.
minCpuPlatformלדוגמה, אם מגדירים אתminCpuPlatformל-Intel Broadwellכשיוצרים מכונה וירטואלית, הערך שלminCpuPlatformלא יהיה זהה לערך שלAutomaticבהזמנה.
- ההגדרה של המכונה הווירטואלית וההזמנה צריכה להיות זהה לחלוטין.
localSsds.interface(אם יש)- במכונה הווירטואלית ובהזמנה צריך להיות אותו מספר של דיסקים מקומיים מסוג SSD עם מאפיין
localSsds.interfaceתואם לכל דיסק מקומי מסוג SSD.
- במכונה הווירטואלית ובהזמנה צריך להיות אותו מספר של דיסקים מקומיים מסוג SSD עם מאפיין
resourcePolicies(אם יש)- רק אם בהזמנה מצוינת מדיניות למיקום קומפקטי.
locationHint(אם יש)- רק אם בשדה
locationHintשל ההזמנה מצוין ערך. אפשר לציין את השדהlocationHintרק כשיוצרים מכונות וירטואליות באמצעות REST.
- רק אם בשדה
פתרון: אחרי שמזהים את הנכסים שלא תואמים, אפשר לנסות אחת מהפעולות הבאות:
אם מאפייני המכונה הווירטואלית לא תואמים להזמנה, מבצעים אחת מהפעולות הבאות:
מוחקים את המכונה הווירטואלית ויוצרים מכונה וירטואלית חדשה עם מאפיינים שתואמים למאפיינים של ההזמנה.
מעדכנים את המכונה הווירטואלית כך שתתאים למאפיינים של ההזמנה.
אם מאפייני ההזמנה אמורים להיות זהים למאפייני מכונת ה-VM, צריך למחוק את ההזמנה וליצור הזמנה חדשה שתואמת למאפייני מכונת ה-VM. אפשר גם ליצור בקשה ספציפית לשמירת מקום. כשיוצרים מכונות וירטואליות כדי להשתמש בהזמנה ספציפית, יכולות להתקבל שגיאות אם המאפיינים של המכונה הווירטואלית לא תואמים למאפיינים של ההזמנה.
אחרי שמעדכנים את ה-VM או יוצרים הזמנה חדשה, בודקים אם ה-VM משתמש בהזמנה על ידי אימות השימוש בהזמנה.
הזיקה להזמנה שגויה
הבעיה: ההגדרה reservation affinity של המכונה הווירטואלית מוגדרת באופן שגוי. הזיקה של מכונה וירטואלית להזמנה קובעת את ההזמנות שהמכונה הווירטואלית יכולה להשתמש בהן. כדי לבדוק את הקשר של מכונה וירטואלית להזמנה, מבצעים את הפעולות הבאות:
צפייה בפרטי ההזמנה ובדיקה אם ההזמנה היא הזמנה ספציפית או הזמנה שצורכת משאבים באופן אוטומטי. מידע נוסף זמין במאמר בנושא סוג צריכה.
צופים בפרטים של המכונה הווירטואלית ומאמתים את הקשר להזמנה.
פתרון: אם ההעדפה של מכונת ה-VM וההזמנה לא תואמות, מבצעים אחת מהפעולות הבאות:
יוצרים מכונה וירטואלית חדשה עם מאפיין שיוך להזמנה שתואם לסוג ההזמנה.
מעדכנים את המאפיין
reservationAffinityבמכונה הווירטואלית כדי לציין אם המכונה הווירטואלית יכולה להשתמש בהזמנה מתאימה או בהזמנה ספציפית. כדי לסיים את העדכון של מכונת ה-VM, צריך להפעיל אותה מחדש.
כדי לבדוק אם ה-VM צורך את היתרה של ההזמנה, אפשר לעיין במאמר בנושא אימות צריכת היתרה של ההזמנה.
ההזמנה כבר נוצלה במלואה
בעיה: מספר המכונות הווירטואליות שצורכות את השריון הזה זהה למספר הכולל של המכונות הווירטואליות ששוריינו. הערך הזה מציין שהמינוי נוצל במלואו.
פתרון: כדי לוודא שהשימוש בהזמנה מוצה, צריך לעיין בפרטי ההזמנה ולוודא שמספר המכונות הווירטואליות שנעשה בהן שימוש בהזמנה תואם למספר הכולל של המכונות הווירטואליות ששוריינו בהזמנה.
אם ניצלתם את כל ההזמנה, נסו אחת מהפעולות הבאות:
מגדילים את מספר המכונות הווירטואליות ששוריינו על ידי שינוי מספר המכונות הווירטואליות ששוריינו בהזמנה.
אם ההזמנה כבר כוללת את המספר המקסימלי של מכונות וירטואליות, צריך ליצור הזמנה חדשה.
צריך לצמצם את מספר המכונות הווירטואליות שצורכות את השריין. מידע נוסף זמין במאמר מכונות וירטואליות שצורכות בטעות הזמנות.
אם לא נעשה שימוש מלא בהזמנה אבל המכונה הווירטואלית לא משתמשת בהזמנה, אפשר לנסות לפתור את הבעיה בדרכים הבאות:
יוצרים מכונה וירטואלית שתשתמש בהזמנה. אם המאפיינים של המכונה הווירטואלית וההזמנה לא תואמים, יצירת המכונה הווירטואלית תיכשל.
חריגה ממכסת המשאבים בהזמנות משותפות
הבעיה: מכונה וירטואלית לא צורכת הזמנה משותפת כי בפרויקט אין מספיק מכסה למשאבים שאתם מנסים לצרוך.
פתרון: למקומות שמורים משותפים יש דרישות מכסה נוספות. אם אתם צריכים להגדיל את המכסה בפרויקט כדי לצרוך את המשאבים שהוזמנו, תוכלו לעיין במאמר איך שולחים בקשה לשינוי המכסות במסמכי Cloud Quotas.
מספר המכונות הווירטואליות לא משוחזר אחרי שמפסיקים או מוחקים מכונה וירטואלית
בעיה: אם מפסיקים, משעים או מוחקים מכונה וירטואלית שצורכת הזמנה, הפעולה צריכה להסתיים לפני שהמכונה הווירטואלית לא נספרת יותר בהזמנה, והמשאבים שנצרכו קודם לכן זמינים שוב לשימוש.
פתרון: ממתינים כמה דקות עד שהפעולה של עצירה, השהיה או מחיקה של מכונות וירטואליות תושלם. כדי לוודא שהמכונות הווירטואליות שהופסקו, הושעו או נמחקו לא נכללות יותר בחישוב של ההזמנה, בודקים את המספר הכולל של המכונות הווירטואליות שנעשה בהן שימוש בהזמנה באחת מהשיטות הבאות:
מומלץ: לעקוב אחרי ההזמנה ולחפש שינוי במדדים של ההזמנה.
צופים בפרטי ההזמנה ובודקים אם הערך של השדה
inUseCountירד. אם הערך לא ירד, סימן שאחת או יותר מכונות וירטואליות התחילו לצרוך את ההזמנה בזמן שהפעולה של עצירה, השהיה או מחיקה הושלמה.
מכונה וירטואלית שצורכת הזמנות שלא בכוונה
הבעיה: כשיוצרים בקשות לשימוש אוטומטי במשאבים (ברירת מחדל), יכול להיות שמכונה וירטואלית תשתמש במשאבים האלה שלא בכוונה.
פתרון: כדי למנוע ממכונה וירטואלית אחת או יותר לצרוך בטעות הזמנה, אפשר לבצע אחת מהפעולות הבאות: