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