במאמר הזה מוסבר איך לבדוק אם הווירטואליזציה המקוננת מופעלת, ואיך לשנות את האילוץ הבוליאני שקובע אם הווירטואליזציה המקוננת מופעלת בארגון, בפרויקט או בתיקייה.
אילוץ בוליאני במדיניות הארגון קובע אם אפשר ליצור מכונות וירטואליות מוטמעות. האילוץ הבוליאני לווירטואליזציה מקוננת הוא הגבלה, כלומר כשהוא נאכף, הוא אומר למדיניות הארגון להגביל את היצירה של מכונות וירטואליות מקוננות. האילוץ הזה מונע מ-Compute Engine לחשוף הרחבות וירטואליזציה למכונות וירטואליות (מכונות וירטואליות ברמה L1). המשמעות היא שאמנם עדיין אפשר ליצור מכונות וירטואליות ברמה 1 (L1) עם הגדרות שמאפשרות וירטואליזציה מקוננת, אבל אי אפשר להריץ מכונות וירטואליות מקוננות (מכונות וירטואליות ברמה 2, L2) על מכונות וירטואליות ברמה 1. מידע נוסף על אילוצים בוליאניים זמין במאמר הסבר על אילוצים.
האילוץ השבתת וירטואליזציה מקוננת של מכונות וירטואליות לא נאכף כברירת מחדל, ולכן לא צריך לשנות אילוץ בוליאני כדי להפעיל וירטואליזציה מקוננת. למרות זאת, Google ממליצה להגדיר במפורש את הערך של האילוץ, כדי שהארגון, התיקיות והפרויקטים לא יסתמכו על הגדרת ברירת המחדל. אם הפרויקט לא כפוף לארגון, האילוץ לא נאכף כברירת מחדל ואי אפשר לשנות אותו.
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
בדיקה אם מותרת וירטואליזציה מקוננת
כדי לבדוק אם וירטואליזציה מקוננת מותרת בארגון, בתיקייה או בפרויקט, אפשר להשתמש במסוף Cloud de Confiance , ב-Google Cloud CLI או ב-REST.
המסוף
כדי לבדוק אם אפשר ליצור מכונות וירטואליות מקוננות בארגון, בתיקייה או בפרויקט, צריך לבדוק אם האילוץ הבוליאני להשבתת הווירטואליזציה המקוננת לא נאכף. אם מדיניות הארגון לא אוכפת את האילוץ השבתת וירטואליזציה מקוננת של מכונות וירטואליות, תוכלו ליצור מכונות וירטואליות מקוננות.
במסוף Cloud de Confiance , נכנסים לדף מדיניות הארגון.
בבורר הארגון, התיקייה והפרויקט, בוחרים את הישות שרוצים לראות את מדיניות הארגון שלה.
בוחרים באילוץ Disable VM nested virtualization כדי לפתוח את הדף Policy details.
צפייה בערך של Enforcement:
אם הערך הוא Not enforced, אז הווירטואליזציה המקוננת מופעלת ואפשר ליצור מכונות וירטואליות מקוננות.
אם הערך הוא Enforced, הוירטואליזציה המקוננת מושבתת ואי אפשר ליצור מכונות וירטואליות מקוננות.
gcloud
כדי לבדוק את הערך של האילוץ הבוליאני compute.disableNestedVirtualization, משתמשים בפקודה gcloud resource-manager org-policies describe.
אם הפלט של Google Cloud CLI לא מציג ערך עבור booleanPolicy, סימן שהווירטואליזציה המקוננת מותרת ואפשר ליצור מכונות וירטואליות מקוננות.
אם ערך הפלט של Google Cloud CLI עבור booleanPolicy הוא enforced: true, אז מדיניות הארגון אוכפת את האילוץ של השבתת וירטואליזציה מקוננת, ואי אפשר ליצור מכונות וירטואליות מקוננות.
gcloud resource-manager org-policies \ describe constraints/compute.disableNestedVirtualization \ (--organization=ORGANIZATION_ID | --folder=FOLDER_ID | --project=PROJECT_ID) --effective
מחליפים בדיוק אחד מהערכים הבאים:
ORGANIZATION_ID: המזהה של הארגון שרוצים לקבל את ערך האילוץ שלו. כדי להציג רשימה של הארגונים שאפשר לגשת אליהם ואת המזהים שלהם, מריצים את הפקודהgcloud organizations list.
FOLDER_ID: המזהה של התיקייה שרוצים לקבל את ערך האילוץ שלה. כדי להציג רשימה של התיקיות שאפשר לגשת אליהן ואת המזהים שלהן, מריצים את הפקודהgcloud resource-manager folders list.
PROJECT_ID: מזהה הפרויקט שרוצים לקבל את ערך האילוץ שלו. כדי לקבל רשימה של הפרויקטים שאפשר לגשת אליהם והמזהים שלהם, מריצים את הפקודהgcloud projects list.
REST
משתמשים ב-REST כדי לבדוק את הערך של compute.disableNestedVirtualization מגבלת בוליאנית, שקובעת אם אפשר ליצור מכונות וירטואליות מוטמעות בארגון, בתיקייה או בפרויקט.
אם תגובת ה-REST לא מחזירה ערך עבור "booleanPolicy" לאילוץ, אז הווירטואליזציה המקוננת לא מושבתת ואפשר ליצור מכונות וירטואליות מקוננות.
אם הערך של "booleanPolicy" בפלט הוא "enforced": true, סימן שהווירטואליזציה המקוננת מושבתת ואי אפשר ליצור מכונות וירטואליות מקוננות.
POST https://cloudresourcemanager.googleapis.com/v1/RESOURCE/RESOURCE_ID:getOrgPolicy
{
"constraint": "compute.disableNestedVirtualization"
}
מחליפים את מה שכתוב בשדות הבאים:
RESOURCE: המשאב שעבורו רוצים לקבל את מדיניות הארגון. מגדירים לאחת מהאפשרויות הבאות:
organizations: הפעלת השיטהorganizations.getOrgPolicy
folders: קריאה לשיטהfolders.getOrgPolicy
projects: קריאה לשיטהprojects.getOrgPolicy
RESOURCE_ID: הארגון, התיקייה או הפרויקט שבהם רוצים לבדוק את הסטטוס של האילוץ 'השבתת וירטואליזציה מקוננת'
מתוך מכונה וירטואלית של Linux, אפשר להריץ את הפקודה grep -c vmx /proc/cpuinfo כדי לבדוק אם הרחבות וירטואליזציה זמינות למכונה הוירטואלית. אם הפקודה הזו מחזירה 0, תוספי הווירטואליזציה לא זמינים ואי אפשר להפעיל מכונות וירטואליות מקוננות. אחת הסיבות לכך יכולה להיות שהאילוץ Disable VM nested
virtualization נאכף על ידי מדיניות הארגון.
אם מנסים להפעיל מכונה וירטואלית מקוננת באמצעות KVM, יכול להיות שתופיע הודעת שגיאה דומה לזו: Could not access KVM kernel module: No such file or
directory.
שינוי מדיניות הארגון בנושא וירטואליזציה מקוננת
אם יש לכם את התפקיד המתאים, אתם יכולים לקבוע אם אפשר ליצור מכונות וירטואליות מוטמעות בארגון, בתיקייה או בפרויקט. כדי לשלוט באכיפה הזו, משתמשים במגבלת בוליאנית לווירטואליזציה מקוננת.
אפשר להשתמש במסוף Cloud de Confiance , ב-Google Cloud CLI או ב-REST כדי להפעיל וירטואליזציה מקוננת בארגון, בתיקייה או בפרויקט.
המסוף
כדי להפעיל וירטואליזציה מקוננת, משביתים את האכיפה של מגבלת הבוליאנית השבתת וירטואליזציה מקוננת של מכונה וירטואלית. כדי להשבית וירטואליזציה מקוננת, מפעילים את האכיפה של מגבלת הבוליאנית.
במסוף Cloud de Confiance , נכנסים לדף מדיניות הארגון.
בבורר הארגון, התיקייה והפרויקט, בוחרים את הישות שרוצים לערוך את מדיניות הארגון שלה.
בוחרים באילוץ Disable VM nested virtualization כדי לפתוח את הדף Policy details.
לוחצים על עריכה ואז על התאמה אישית.
בקטע Enforcement (אכיפה), בוחרים באחת מאפשרויות האכיפה הבאות לאילוץ הבוליאני Disable VM nested virtualization (השבתת וירטואליזציה מקוננת של מכונות וירטואליות):
- מופעל: האכיפה מופעלת והווירטואליזציה המקוננת מושבתת
- מושבת: השבתה של האכיפה והפעלה של וירטואליזציה מקוננת
לוחצים על Save.
gcloud
משתמשים בפקודה gcloud resource-manager org-policies כדי להפעיל או להשבית את האכיפה של האילוץ הבוליאני compute.disableNestedVirtualization במדיניות הארגון.
אם משביתים את האילוץ compute.disableNestedVirtualization באמצעות הפקודה disable-enforce, אפשר ליצור מכונות וירטואליות עם הפעלה של וירטואליזציה מקוננת.
אם מפעילים את האילוץ באמצעות הפקודה enable-enforce, אי אפשר ליצור מכונות וירטואליות שמופעלת בהן וירטואליזציה מקוננת.
gcloud resource-manager org-policies \ ( disable-enforce | enable-enforce ) compute.disableNestedVirtualization \ (--organization=ORGANIZATION_ID | --folder=FOLDER_ID | --project=PROJECT_ID)
מחליפים בדיוק אחד מהערכים הבאים:
ORGANIZATION_ID: המזהה של הארגון שרוצים לשנות את ערך האילוץ שלו. כדי לראות את רשימת הארגונים שאפשר לגשת אליהם ואת המזהים שלהם, מריצים את הפקודהgcloud organizations list.FOLDER_ID: המזהה של התיקייה שרוצים לשנות את ערך האילוץ שלה. כדי להציג רשימה של התיקיות שאפשר לגשת אליהן ואת המזהים שלהן, מריצים את הפקודהgcloud resource-manager folders list.
PROJECT_ID: מזהה הפרויקט שבו רוצים לשנות את ערך ההגבלה. כדי לקבל רשימה של הפרויקטים שאפשר לגשת אליהם והמזהים שלהם, מריצים את הפקודהgcloud projects list.
REST
משתמשים ב-REST כדי לשנות את הערך של האילוץ הבוליאני compute.disableNestedVirtualization, שקובע אם אפשר ליצור מכונות וירטואליות מוטמעות בארגון, בתיקייה או בפרויקט.
POST https://cloudresourcemanager.googleapis.com/v1/RESOURCE/RESOURCE_ID:setOrgPolicy
{
"policy": {
"booleanPolicy": {
"enforced": ENFORCE
},
"constraint": "constraints/compute.disableNestedVirtualization"
}
}
מחליפים את מה שכתוב בשדות הבאים:
RESOURCE: המשאב שרוצים לשנות את מדיניות הארגון שלו. מגדירים את הערך לאחת מהאפשרויות הבאות:
organizations: הפעלת השיטהorganizations.setOrgPolicy
folders: קריאה לשיטהfolders.setOrgPolicy
projects: קריאה לשיטהprojects.setOrgPolicy
RESOURCE_ID: הארגון, התיקייה או הפרויקט שבהם רוצים לבדוק את הסטטוס של האילוץ 'השבתת וירטואליזציה מקוננת'
ENFORCE: קובע אם מדיניות הארגון אוכפת את האילוץ הבוליאניcompute.disableNestedVirtualization. מגדירים לאחת מהאפשרויות הבאות:
true: כדי לאכוף את האילוץ. עם ההגדרה הזו, אי אפשר ליצור מכונות וירטואליות עם וירטואליזציה מקוננת מופעלת.false: כדי לא לאכוף את האילוץ. ההגדרה הזו מאפשרת ליצור מכונות וירטואליות שמופעלת בהן וירטואליזציה מקוננת.