אחרי שיוצרים אשכול H4D בבלוקים שמורים של קיבולת, אפשר לראות את הסידור הפיזי של מכונות ה-VM שמרכיבות את האשכול. הבנה של סידור המכונות הווירטואליות מאפשרת לכם לבצע את הפעולות הבאות:
- כדאי לשנות את העיצוב של האפליקציה או של עומס העבודה כדי לצמצם עוד יותר את זמן האחזור ברשת, במיוחד בעומסי עבודה שמשתמשים ב-Cloud RDMA.
- פתרון בעיות של השהיית רשת או בעיות בביצועים של מכונות וירטואליות שמתקשרות לעיתים קרובות.
לפני שמתחילים
חשוב לוודא שיש לכם את ההרשאות הנדרשות כדי לראות את פרטי הטופולוגיה של המכונה הווירטואלית.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להצגת הטופולוגיה של מכונות וירטואליות, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Compute Instance Admin (v1) בפרויקט. מידע נוסף על הקצאת תפקידים מופיע במאמר ניהול הגישה לפרויקטים, לתיקיות ולארגונים.
התפקיד המוגדר מראש הזה כולל את כל ההרשאות שנדרשות כדי להציג את הטופולוגיה של מכונות וירטואליות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
כדי לראות את הטופולוגיה של מכונות וירטואליות, נדרשות ההרשאות הבאות:
- כדי להציג את פרטי המכונה הווירטואלית:
compute.instances.getבפרויקט - כדי לראות רשימה של מכונות וירטואליות:
compute.instances.listבפרויקט
הסבר על טופולוגיית מכונות וירטואליות
כשמציגים את הפרטים של מכונה וירטואלית שפועלת, אפשר לאחזר מידע על המיקום הפיזי שלה באשכול על ידי בדיקת השדה Physical host (ב Cloud de Confiance by S3NS מסוף), או השדה physicalHostTopology (ב-Google Cloud CLI), Compute Engine API, או על ידי שאילתת מפתח המטא-נתונים.
השדות האלה מכילים את שדות המשנה הבאים:
-
cluster: השם הגלובלי של האשכול. -
block: המזהה הספציפי לארגון של הבלוק השמור שבו נמצאת המכונה הווירטואלית. -
sub-block: המזהה הספציפי לארגון של תת-הבלוק שבו נמצאת המכונה הווירטואלית. -
host: המזהה הספציפי לארגון של המארח שבו ה-VM פועל.
הגדרות של המונחים האלה מופיעות במאמר טרמינולוגיה של אשכולות.
כדי להבין כמה קרובות מכונות ה-VM זו לזו, משווים בין הערכים של השדות Physical host או physicalHostTopology בין מכונות ה-VM. ככל שיש יותר שדות משנה משותפים למכונות הווירטואליות, כך הן ממוקמות קרוב יותר פיזית.
אפשר גם לראות את הטופולוגיה של הזמנה שבה נוצרו מכונות וירטואליות.
השדות physicalHostTopology של הזמנה ומכונה וירטואלית (VM) מציגים את אותם שדות block ו-cluster. כשמציגים בלוק ספציפי של מכונות וירטואליות שהוזמנו, אפשר לראות את השם והבלוק המשני של כל המכונות הווירטואליות שנפרסו בבלוק. מידע נוסף על הטופולוגיה של הזמנה זמין במאמר הצגת הטופולוגיה של הזמנה.
הצגת הטופולוגיה של מכונות וירטואליות
כדי לראות את המיקום הפיזי של כמה מכונות וירטואליות שפועלות, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף VM instances במסוף Cloud de Confiance .
בעמודה שם, לוחצים על שם המכונה הווירטואלית כדי לראות את הפרטים שלה. יופיע דף עם פרטי המכונה הווירטואלית. הכרטיסייה פרטים נבחרת כברירת מחדל.
בקטע מידע בסיסי, בודקים את הערך של השדה מארח פיזי.
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.aggregatedListmethod.
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.
- ב-VM של 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"
}