אחרי שיוצרים אשכול H4D בבלוקים שמורים של קיבולת, אפשר לראות את הסידור הפיזי של מכונות ה-VM שמרכיבות את האשכול. הבנה של סידור המכונות הווירטואליות מאפשרת לכם לבצע את הפעולות הבאות:
- כדאי לשנות את העיצוב של האפליקציה או של עומס העבודה כדי לצמצם עוד יותר את זמן האחזור ברשת, במיוחד בעומסי עבודה שמשתמשים ב-Cloud RDMA.
- פתרון בעיות של השהיית רשת או בעיות בביצועים של מכונות וירטואליות שמתקשרות לעיתים קרובות.
לפני שמתחילים
חשוב לוודא שיש לכם את ההרשאות הנדרשות כדי לראות את פרטי הטופולוגיה של המכונה הווירטואלית.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להצגת הטופולוגיה של מכונות וירטואליות, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Compute Instance Admin (v1) בפרויקט. מידע נוסף על הקצאת תפקידים מופיע במאמר ניהול הגישה לפרויקטים, לתיקיות ולארגונים.
התפקיד המוגדר מראש הזה כולל את כל ההרשאות שנדרשות כדי להציג את הטופולוגיה של מכונות וירטואליות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
כדי לראות את הטופולוגיה של מכונות וירטואליות, נדרשות ההרשאות הבאות:
- כדי להציג את הפרטים של מכונה וירטואלית:
compute.instances.getבפרויקט - כדי לראות רשימה של מכונות וירטואליות:
compute.instances.listבפרויקט
הסבר על טופולוגיית מכונות וירטואליות
כשמציגים את הפרטים של מכונה וירטואלית שפועלת, אפשר לאחזר מידע על המיקום הפיזי שלה באשכול. כדי לעשות זאת, בודקים את השדה Physical host (ב Google Cloud מסוף), את השדה physicalHostTopology (ב-Google Cloud CLI), את Compute Engine API או שולחים שאילתה למפתח המטא-נתונים.
השדות האלה מכילים את שדות המשנה הבאים:
-
cluster: השם הגלובלי של האשכול. -
block: המזהה הספציפי לארגון של הבלוק השמור שבו נמצאת המכונה הווירטואלית. -
sub-block: המזהה הספציפי לארגון של תת-הבלוק שבו נמצאת המכונה הווירטואלית. -
host: המזהה הספציפי לארגון של המארח שבו מכונת ה-VM פועלת.
הגדרות של המונחים האלה מופיעות במאמר טרמינולוגיה של אשכולות.
כדי להבין כמה מכונות ה-VM קרובות זו לזו, משווים בין הערכים של השדות Physical host או physicalHostTopology בין מכונות ה-VM. ככל שיש יותר שדות משנה משותפים למכונות הווירטואליות, כך הן ממוקמות קרוב יותר פיזית.
אפשר גם לראות את הטופולוגיה של הזמנה שבה נוצרו מכונות וירטואליות.
בשדות physicalHostTopology של הזמנה ושל מכונה וירטואלית מוצגים אותם שדות block וcluster. כשמציגים בלוק ספציפי של מכונות וירטואליות שמורות, אפשר לראות את השם והבלוק המשני של כל המכונות הווירטואליות שנפרסו בבלוק. מידע נוסף על הטופולוגיה של הזמנה זמין במאמר הצגת הטופולוגיה של הזמנה.
הצגת הטופולוגיה של מכונות וירטואליות
כדי לראות את המיקום הפיזי של כמה מכונות וירטואליות שפועלות, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
בעמודה שם, לוחצים על שם המכונה הווירטואלית כדי לראות את הפרטים שלה. יופיע דף עם פרטי המכונה הווירטואלית. הכרטיסייה פרטים נבחרת כברירת מחדל.
בקטע מידע בסיסי, בודקים את הערך בשדה מארח פיזי.
Google Cloud CLI
כדי לראות את המיקום הפיזי של מכונה וירטואלית שפועלת, משתמשים בפקודה gcloud compute instances describe עם האפשרות flatten=resourceStatus.physicalHostTopology.
מחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: שם ה-VM. -
ZONE: האזור שבו נמצאת מכונת ה-VM.
הפלט אמור להיראות כך:
---
cluster: europe-west1-cluster-jfhb
block: 3e3056e23cf91a5cb4a8621b6a52c100
subBlock: 0fc09525cbd5abd734342893ca1c083f
host: 1215168a4ecdfb434fd4d28056589059
REST
כדי לראות את המיקום הפיזי של מכונות וירטואליות פעילות, שולחים אחת מGETהבקשות הבאות. כששולחים בקשה, צריך לכלול את פרמטר השאילתה fields ולציין שיוצגו רק השדות name, machineType ו-physicalHostTopology של מכונה וירטואלית. צריך לכלול גם את פרמטר השאילתה filter ולציין שרוצים לראות רק מכונות וירטואליות שפועלות.
- כדי לראות רשימה של מכונות ה-VM בכל האזורים:
instances.aggregatedListשיטה.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
- כדי לראות רשימה של מכונות ה-VM באזור מסוים: משתמשים בשיטה
instances.list.
GET 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: מזהה הפרויקט שבו נמצאות מכונות ה-VM.
* ZONE: האזור שבו נמצאות המכונות הווירטואליות.
הפלט אמור להיראות כך:
{
"items": [
{
"name": "vm-01",
"machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west4-b/machineTypes/h4d-highmem-192-lssd",
"resourceStatus": {
"physicalHostTopology": {
"cluster": "europe-west4-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/h4d-highmem-192-lssd",
"resourceStatus": {
"physicalHostTopology": {
"cluster": "europe-west4-cluster-jfhb",
"block": "3e3056e23cf91a5cb4a8621b6a52c100",
"subBlock": "1fc18636cbd4abd623553784ca2c174e",
"host": "2326279b5ecdfc545fd5e39167698168"
}
}
},
...
]
}
אם רוצים לחדד את רשימת המכונות הווירטואליות, צריך לערוך את ביטוי המסנן בפרמטר השאילתה filter.
הצגת טופולוגיה של מכונות וירטואליות על ידי שאילתת מפתח מטא-נתונים
כדי לראות את המיקום הפיזי של מכונה וירטואלית פעילה על ידי שליחת שאילתה למפתח המטא-נתונים physical_host_topology, בוחרים באחת מהאפשרויות הבאות:
מכונות וירטואליות של Linux
- מתחברים ל-VM של Linux.
- במכונת ה-VM של Linux, יוצרים שאילתה באמצעות הכלי curl. כדי לשלוח שאילתה למפתח המטא-נתונים
physical_host_topologyבמכונות וירטואליות של Linux, מריצים את הפקודה הבאה:
curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology
הפלט אמור להיראות כך:
{
"cluster": "europe-west4-cluster-jfhb",
"block": "3e3056e23cf91a5cb4a8621b6a52c100",
"subBlock": "1fc18636cbd4abd623553784ca2c174e",
"host": "2326279b5ecdfc545fd5e39167698168"
}
מכונות וירטואליות של Windows
- מתחברים ל-VM של Windows.
- במכונה הווירטואלית של Windows, יוצרים שאילתה באמצעות Invoke-RestMethod.
כדי לשלוח שאילתה למפתח המטא-נתונים
physical_host_topologyבמכונות וירטואליות של Windows, מריצים את הפקודה הבאה:
$value = (Invoke-RestMethod `
-Headers @{'Metadata-Flavor' = 'Google'} `
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology")
$value
הפלט אמור להיראות כך:
{
"cluster": "europe-west4-cluster-jfhb",
"block": "3e3056e23cf91a5cb4a8621b6a52c100",
"subBlock": "1fc18636cbd4abd623553784ca2c174e",
"host": "2326279b5ecdfc545fd5e39167698168"
}