在預留容量區塊上建立 H4D 叢集後,即可查看組成叢集的 VM 實體排列方式。瞭解 VM 的排列方式,可讓您執行下列操作:
- 調整應用程式或工作負載設計,進一步縮短網路延遲時間,特別是使用 Cloud RDMA 的工作負載。
- 排解經常通訊的 VM 網路延遲或效能問題。
事前準備
請確認您擁有必要權限,可以查看 VM 拓撲資訊。
必要的角色
如要取得查看 VM 拓撲所需的權限,請要求管理員在專案中授予您 Compute 執行個體管理員 (v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備查看 VM 拓撲的所有必要權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
如要查看 VM 拓撲,必須具備下列權限:
- 如要查看 VM 的詳細資料,請按一下專案中的
compute.instances.get - 如要查看 VM 清單,請在專案中按一下
compute.instances.list
瞭解 VM 拓撲
查看執行中 VM 的詳細資料時,您可以檢查「實體主機」欄位 (適用於 Google Cloud 控制台) 或 physicalHostTopology 欄位 (適用於 Google Cloud CLI),或透過 Compute Engine API 或查詢中繼資料鍵,擷取叢集內實體位置的相關資訊。這些欄位包含下列子欄位:
cluster:叢集的全域名稱。block:VM 所在的預留區塊專屬 ID。sub-block:VM 所在的子區塊專屬 ID。host:VM 執行的主機專屬 ID。
如需這些字詞的定義,請參閱叢集術語。
如要瞭解 VM 之間的距離,請比較 VM 之間的「實體主機」或 physicalHostTopology 欄位值。VM 共用的子欄位越多,實體位置就越接近。
您也可以查看建立 VM 的預留資源拓撲。預留項目和 VM 的 physicalHostTopology 欄位會顯示相同的 block 和 cluster 欄位。查看特定預留區塊時,您可以查看部署在該區塊中的所有 VM 名稱和子區塊。如要進一步瞭解預留項目的拓撲,請參閱「查看預留項目的拓撲」。
查看 VM 拓撲
如要查看多個執行中 VM 的實際位置,請選取下列任一選項:
控制台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
在「Name」(名稱) 欄中,按一下 VM 名稱即可查看詳細資料。隨即會顯示含有 VM 詳細資料的頁面。系統預設會選取「詳細資料」分頁。
在「Basic information」(基本資訊) 區段中,檢查「Physical host」(實體主機) 欄位的值。
Google Cloud CLI
如要查看執行中 VM 的實際位置,請使用 gcloud compute instances describe 指令搭配 flatten=resourceStatus.physicalHostTopology。
更改下列內容:
VM_NAME:VM 名稱。ZONE:VM 所在的區域。
輸出結果會與下列內容相似:
---
cluster: europe-west1-cluster-jfhb
block: 3e3056e23cf91a5cb4a8621b6a52c100
subBlock: 0fc09525cbd5abd734342893ca1c083f
host: 1215168a4ecdfb434fd4d28056589059
REST
如要查看執行中 VM 的實體位置,請提出下列其中一項 GET 要求。提出要求時,您必須加入 fields 查詢參數,並指定只顯示 VM 的 name、machineType 和 physicalHostTopology 欄位。您也必須加入 filter 查詢參數,並指定只列出正在執行的 VM。
- 如要查看所有區域的 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 所在的專案 ID。
* ZONE:VM 所在的區域。
輸出結果會與下列內容相似:
{
"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"
}
}
},
...
]
}
如要修正 VM 清單,請編輯 filter 查詢參數中的篩選器運算式。
透過查詢中繼資料鍵,查看 VM 拓撲
如要透過查詢 physical_host_topology 中繼資料鍵,查看執行中 VM 的實際位置,請選取下列其中一個選項:
Linux VM
- 連線至 Linux VM。
- 在 Linux VM 中,使用 curl 工具建立查詢。如要在 Linux VM 上查詢
physical_host_topology中繼資料鍵,請執行下列指令:
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 VM 中,使用 Invoke-RestMethod 建立查詢。如要在 Windows VM 上查詢
physical_host_topology中繼資料鍵,請執行下列指令:
$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"
}