במאמר הזה מוסבר איך לראות את הטופולוגיה של מכונות Compute Engine שפועלות. אחרי שיוצרים ומתחילים מכונות וירטואליות לחישוב, אפשר לראות את המיקום הפיזי שלהן באזור כדי להבין את הטופולוגיה של האשכול. המידע הזה עוזר לכם:
ארגון משימות: אפשר לשנות את העיצוב של עומס העבודה, למשל, להציב משימות שדורשות הרבה תקשורת במופעי מחשוב שהם הכי קרובים פיזית.
פתרון בעיות: אפשר לבדוק את זמן האחזור או את הביצועים של הרשת אם מופעים ספציפיים של מחשוב ממוקמים באופן לא צפוי במרחק רב זה מזה.
כדי לבדוק אילו מכונות וירטואליות של Compute פועלות בפרויקט, צופים ברשימת המכונות הווירטואליות של Compute.
מגבלות
אפשר לראות את הטופולוגיה רק של מופעי מחשוב שעומדים באחת או יותר מהדרישות הבאות:
המופעים של Compute משתמשים באחד מסוגי המכונות הבאים:
A4X Max
A4X
A4
A3 Ultra
A3 Mega
A3 High עם 8 מעבדי GPU
H4D
המכונות הווירטואליות מציינות מדיניות למיקום קומפקטי.
מופעי ה-Compute הם חלק מקבוצת מופעי מכונה מנוהלים (MIG) שבה מוגדרת מדיניות עומס עבודה עם סוג של תפוקה גבוהה (
HIGH_THROUGHPUT).
הסבר על הטופולוגיה של מכונות Compute
כל מכונת חישוב פועלת בשרת פיזי, מארח, שנמצא בבלוק שרתים. כל בלוק שייך לאשכול, שנמצא במרכז נתונים בGoogle Cloud אזור. כשמציגים מופעי מחשוב שעומדים בדרישות ספציפיות, אפשר להבין את הטופולוגיה שלהם ביחס למופעי מחשוב אחרים שעומדים באותן דרישות.
באופן ספציפי, כדי להבין את המיקום הפיזי של מכונות ה-Compute, אפשר לבדוק את שדות המשנה הבאים בשדה physicalHostTopology של כל מכונת Compute:
Cluster (
cluster): השם הגלובלי של האשכול שבו קיים מופע המחשוב. קלאסטר הוא קיבוץ לוגי ברמה גבוהה של כמה מארחים, שיכולים להתפרס על פני כמה בלוקים, שפועלים יחד כמאגר משותף של משאבים.Block (
block): המזהה הספציפי לארגון של הבלוק שבו קיים מופע המחשוב. בלוק הוא אוסף של כמה מארחים שמקובצים יחד. למופעי מחשוב באותה קבוצה יש זמן אחזור נמוך ברשת.Sub-block (
subBlock): המזהה הספציפי לארגון של ה-sub-block שבו קיים מופע המחשוב. תת-בלוק הוא חלוקה פיזית בתוך בלוק, שמאגדת מארחים במתחם פיזי אחד. מכונות וירטואליות של Compute באותו תת-בלוק נהנות מחביון רשת נמוך יותר מאשר מכונות וירטואליות של Compute באותו בלוק.מארח (
host): המזהה הספציפי לארגון של המארח שבו קיימת מכונת החישוב. מארח הוא שרת פיזי יחיד שבו מופעלים מופעי המחשוב. לכל מארח יש vCPU פיזי משלו, זיכרון, אחסון וכרטיס רשת (NIC). במכונות וירטואליות בשרתים סמוכים יש את זמן האחזור הנמוך ביותר האפשרי ברשת.
ככל שיש יותר שדות משנה משותפים בין שני מופעי מחשוב פעילים, כך הם קרובים יותר זה לזה מבחינה פיזית. המידע הזה עוזר לכם לבצע אופטימיזציה של עומסי העבודה על ידי ארגון המשימות כך שתוכלו לצמצם את זמן האחזור ברשת, או על ידי תכנון מערכות עמידות יותר.
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לאימות הטופולוגיה של מכונות ה-Compute, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד Compute Viewer (roles/compute.viewer) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות לאימות הטופולוגיה של מכונות החישוב. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לאמת את הטופולוגיה של מכונות ה-Compute, נדרשות ההרשאות הבאות:
-
כדי לראות את הפרטים של מופע Compute:
compute.instances.getבפרויקט -
כדי לראות רשימה של מופעי מחשוב:
compute.instances.listבפרויקט
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
אימות הטופולוגיה של מופע מחשוב
כדי לאמת את הטופולוגיה של מכונות וירטואליות פעילות, משתמשים באחת מהשיטות הבאות:
אימות הטופולוגיה של מכונת Compute באמצעות מסוף Google Cloud , ה-CLI של gcloud או REST
אימות הטופולוגיה של מופע מחשוב באמצעות שאילתת מפתח מטא-נתונים
אימות הטופולוגיה של מכונת Compute באמצעות מסוף Google Cloud , ה-CLI של gcloud או REST
כדי לראות את הטופולוגיה של כמה מופעי מחשוב בו-זמנית, משתמשים ב-API בארכיטקטורת REST. אחרת, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
בעמודה Name (שם), לוחצים על השם של מופע Compute שרוצים לראות את הפרטים שלו. מופיע דף עם פרטי המופע והכרטיסייה פרטים נבחרת.
בקטע מידע בסיסי, בודקים את הערך בשדה מארח פיזי.
gcloud
כדי לראות את הטופולוגיה של מכונת Compute פעילה, משתמשים בפקודה gcloud compute instances describe עם הדגל --flatten=resourceStatus.physicalHostTopology:
gcloud compute instances describe INSTANCE_NAME \
--flatten=resourceStatus.physicalHostTopology \
--zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
INSTANCE_NAME: השם של מכונת החישוב.
ZONE: האזור שבו קיימת מכונת ה-Compute.
הפלט אמור להיראות כך:
---
block: 3e3056e23cf91a5cb4a8621b6a52c100
cluster: europe-west1-cluster-jfhb
host: 1215168a4ecdfb434fd4d28056589059
subBlock: 0fc09525cbd5abd734342893ca1c083f
REST
כדי לראות את הטופולוגיה של מכונות ה-Compute הפעילות, שולחים אחת מהבקשות הבאות של GET. כששולחים בקשה, צריך לכלול את פרמטר השאילתה fields ולציין שיוצגו רק השדות name, machineType ו-physicalHostTopology של מופע מחשוב. צריך גם לכלול את הפרמטר filter של השאילתה ולציין שרוצים לראות רק את מופעי המחשוב הפעילים.
כדי לראות רשימה של המופעים בכל האזורים:
instances.aggregatedListmethodGET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNINGכדי לראות רשימה של המכונות שלכם באזור מסוים: שיטת
instances.listGET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו קיימים מופעי Compute.
ZONE: האזור שבו קיימות מכונות ה-Compute.
הפלט אמור להיראות כך: בדוגמה הבאה, מופעי Compute vm-01 ו-vm-02 נמצאים באותו בלוק.
{
"items": [
{
"name": "vm-01",
"machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
"resourceStatus": {
"physicalHostTopology": {
"block": "3e3056e23cf91a5cb4a8621b6a52c100",
"cluster": "europe-west1-cluster-jfhb",
"host": "1215168a4ecdfb434fd4d28056589059",
"subBlock": "0fc09525cbd5abd734342893ca1c083f"
}
}
},
{
"name": "vm-02",
"machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
"resourceStatus": {
"physicalHostTopology": {
"block": "3e3056e23cf91a5cb4a8621b6a52c100",
"cluster": "europe-west1-cluster-jfhb",
"host": "2326279b5ecdfc545fd5e39167698168",
"subBlock": "1fc18636cbd4abd623553784ca2c174e"
}
}
},
...
]
}
כדי לשפר את רשימת מופעי המחשוב, עורכים את ביטוי הסינון בפרמטר השאילתה filter.
אימות הטופולוגיה של מופע מחשוב באמצעות שאילתת מפתח מטא-נתונים
כדי לראות את הטופולוגיה של מופע מחשוב פעיל על ידי שליחת שאילתה למפתח המטא-נתונים physical_host_topology, בוחרים באחת מהאפשרויות הבאות:
מכונות Linux
מתחברים למופע Linux.
שולחים שאילתה למפתח המטא-נתונים
physical_host_topologyבאמצעותcurl:user@myinst:~$ curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topologyהפלט אמור להיראות כך:
{ "block": "3e3056e23cf91a5cb4a8621b6a52c100", "cluster": "europe-west1-cluster-jfhb", "host": "2326279b5ecdfc545fd5e39167698168", "subBlock": "1fc18636cbd4abd623553784ca2c174e" }
מכונות וירטואליות של Windows
מתחברים למופע Windows.
שולחים שאילתה למפתח המטא-נתונים
physical_host_topologyבאמצעות הפקודהInvoke-RestMethod:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology") $valueהפלט אמור להיראות כך:
{ "block": "3e3056e23cf91a5cb4a8621b6a52c100", "cluster": "europe-west1-cluster-jfhb", "host": "2326279b5ecdfc545fd5e39167698168", "subBlock": "1fc18636cbd4abd623553784ca2c174e" }