예약된 용량 블록에 H4D 클러스터를 만든 후 클러스터를 구성하는 VM의 실제 배열을 볼 수 있습니다. VM의 배열을 이해하면 다음 작업을 할 수 있습니다.
- 특히 Cloud RDMA를 활용하는 워크로드의 경우 네트워크 지연 시간을 최소화하도록 애플리케이션 또는 워크로드 설계를 조정합니다.
- 자주 통신하는 VM의 네트워크 지연 시간 또는 성능 문제를 해결합니다.
시작하기 전에
VM 토폴로지 정보를 볼 수 있는 권한이 있어야 합니다.
필요한 역할
VM 토폴로지를 보는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 인스턴스 관리자 (v1) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참고하세요.
이 사전 정의된 역할에는 VM 토폴로지를 보는 데 필요한 모든 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 확장하세요.
VM 토폴로지를 보려면 다음 권한이 필요합니다.
- VM 세부정보 보기: 프로젝트에 대한
compute.instances.get권한 - VM 목록 보기: 프로젝트에 대한
compute.instances.list권한
VM 토폴로지 이해
실행 중인 VM의 세부정보를 볼 때 물리적 호스트 필드( Google Cloud 콘솔의 경우) 또는 physicalHostTopology 필드 (Google Cloud CLI, Compute Engine API의 경우)를 확인하거나 메타데이터 키를 쿼리하여 클러스터 내 VM의 실제 위치에 관한 정보를 가져올 수 있습니다.
이러한 필드에는 다음 하위 필드가 포함됩니다.
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 인스턴스 페이지로 이동합니다.
이름 열에서 VM 이름을 클릭하여 세부정보를 확인합니다. VM 세부정보를 제공하는 페이지가 표시됩니다. 세부정보 탭이 기본적으로 선택됩니다.
기본 정보 섹션에서 물리적 호스트 필드의 값을 확인합니다.
Google Cloud CLI
실행 중인 VM의 실제 위치를 보려면 flatten=resourceStatus.physicalHostTopology와 함께 gcloud compute instances describe 명령어를 사용합니다.
다음을 바꿉니다.
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"
}