Utilizza i criteri di posizionamento dell'istanza VM


Ogni istanza di macchina virtuale (VM) viene eseguita su un server fisico, o host, in un rack posizionato in un cluster in un data center. Puoi utilizzare i seguenti criteri di posizionamento per controllare dove si trovano fisicamente le VM rispetto alle altre all'interno di una zona:

  • Criteri di posizionamento dei posizionamenti: Utilizza i criteri di diffusione quando vuoi che le VM siano distribuite l'una dall'altra. Questo può ridurre l'impatto dei malfunzionamenti del sistema host o ottimizzare una migrazione live delle VM.
  • Criteri di posizionamento compatti. Utilizza criteri compatti quando vuoi che le VM siano posizionate vicini tra loro per una bassa latenza di rete tra le VM.

Prima di iniziare

Limitazioni

I criteri di posizionamento sono soggetti alle seguenti restrizioni:

  • Diffondi criteri di posizionamento:
    • Supporta fino a 8 VM per criterio.
    • Supporta solo i tipi di macchine C2, G2, N1, N2 e N2D.
    • Non può essere utilizzato con l'API VM Topology.
    • Non può essere utilizzato con le prenotazioni delle VM.
  • Criteri di posizionamento compatti:

Crea un criterio di posizionamento

Per controllare dove si trovano le tue VM in relazione una rispetto all'altra, utilizza la procedura seguente:

  1. Crea un criterio di posizionamento distribuito o compatto con la configurazione del posizionamento di cui le tue VM hanno bisogno.
    • I criteri di posizionamento distribuiti rigorosamente posizionano le VM nell'infrastruttura del data center sottostante in modo che le VM non condividano lo stesso host o sistema di alimentazione. Questo approccio riduce l'impatto degli host o delle interruzioni di corrente.
    • I criteri di posizionamento compatti avvicinano le VM per ridurre la latenza di rete tra le VM.
  2. Applica il criterio di posizionamento a una o più VM. Le VM che condividono lo stesso criterio vengono posizionate l'una in corrispondenza dell'altra in base alla modalità di definizione del criterio. Puoi applicare il criterio alle VM nuove ed esistenti oppure specificare il criterio in un modello di istanza che puoi utilizzare per creare VM indipendenti, gruppi di istanze gestite (MIG) e prenotazioni di VM.

Crea un criterio di posizionamento distribuito

Per creare un criterio di posizionamento distribuito in cui le VM si trovano su più domini di disponibilità distinti, specifica il numero di domini di disponibilità che questo criterio deve utilizzare per separare le VM l'una dall'altra.

gcloud

Utilizza l'interfaccia a riga di comando gcloud per creare il criterio.

gcloud compute resource-policies create group-placement POLICY_NAME \
    --availability-domain-count DOMAIN_COUNT \
    --region REGION \
    --project PROJECT_ID

Sostituisci quanto segue:

  • POLICY_NAME: il nome della nuova norma
  • DOMAIN_COUNT: il numero di insiemi distinti di hardware host e reti fisiche che questo criterio utilizzerà per separare le VM
  • REGION: la regione in cui prevedi di creare VM che utilizzano questo criterio
  • PROJECT_ID: l'ID del tuo progetto

API

Crea un criterio di posizionamento distribuito utilizzando il metodo resourcePolicies.insert nella sezione API e servizi di Google Cloud Console.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies

Nel corpo della richiesta, fornisci i dettagli della norma di posizionamento:

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "availabilityDomainCount": DOMAIN_COUNT
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto
  • REGION: la regione in cui prevedi di creare VM che utilizzano questo criterio
  • POLICY_NAME: il nome della nuova norma
  • DOMAIN_COUNT: il numero di insiemi distinti di hardware host e reti fisiche che questo criterio utilizzerà per separare le VM

Creazione di un criterio di posizionamento compatto

Per creare un criterio di posizionamento compatto in cui le VM si trovano più vicine tra loro e sulla stessa infrastruttura di rete, specifica un criterio COLLOCATED.

gcloud

Utilizza l'interfaccia a riga di comando gcloud per creare il criterio.

gcloud compute resource-policies create group-placement POLICY_NAME \
    --collocation COLLOCATED \
    --region REGION \
    --project PROJECT_ID

Sostituisci quanto segue:

  • POLICY_NAME: il nome della nuova norma
  • REGION: la regione in cui prevedi di creare VM che utilizzano questo criterio
  • PROJECT_ID: l'ID del tuo progetto

API

Crea un criterio di posizionamento compatto utilizzando il metodo resourcePolicies.insert in API e servizi della console Google Cloud.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies

Nel corpo della richiesta, fornisci i dettagli della norma di posizionamento:

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "collocation": "COLLOCATED"
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto
  • REGION: la regione in cui prevedi di creare VM che utilizzano questo criterio
  • POLICY_NAME: il nome della nuova norma

Applica criteri di posizionamento alle VM

Dopo aver creato un criterio di posizionamento, puoi applicarlo alle VM nuove o esistenti. Il supporto dei criteri di posizionamento dipende dallo scenario.

Scenario Supporto per un posizionamento compatto Supporto del posizionamento distribuito
Applicare un criterio di posizionamento a una nuova VM
Applicazione di un criterio di posizionamento a una VM esistente
Specifica un criterio di posizionamento in un modello di istanza che puoi utilizzare per creare VM
Specifica un criterio di posizionamento in un modello di istanza che puoi utilizzare per creare o aggiornare un gruppo di istanze gestite
Specifica un criterio di posizionamento in un modello di istanza che puoi utilizzare per creare prenotazioni di VM

Applica un criterio di posizionamento a una nuova VM

Dopo aver creato un criterio di posizionamento, applicalo a una o più VM. Le VM che condividono lo stesso criterio vengono posizionate l'una rispetto all'altra in base alla modalità di definizione del criterio.

gcloud

Applica un criterio di posizionamento a una VM includendo il flag --resource-policies quando crei le VM individualmente o collettivamente.

Per i criteri di posizionamento compatti, devi includere i flag --maintenance-policy=TERMINATE e --no-restart-on-failure.

Ad esempio, per creare una VM che utilizza un criterio di posizionamento compatto, utilizza il comando seguente:

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --resource-policies=POLICY_NAME \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --project=PROJECT_ID \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure \
    --async

Sostituisci quanto segue:

  • VM_NAME: il nome della nuova VM.
  • ZONE: la zona in cui vuoi creare la nuova VM.

    Questa zona deve trovarsi nella stessa regione in cui si trova il criterio di posizionamento.

  • POLICY_NAME: il nome del criterio di posizionamento che vuoi applicare a questa VM.

    Puoi applicare più di un criterio di posizionamento a una VM.

  • IMAGE_FAMILY: una delle famiglie di immagini disponibili.

  • IMAGE_PROJECT: il progetto immagine a cui appartiene l'immagine.

  • PROJECT_ID: il tuo ID progetto.

API

Applica un criterio di posizionamento a una VM includendo il flag --resource-policies quando crei le VM individualmente o collettivamente.

Ad esempio, per creare una singola VM, utilizza il comando seguente:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

Nel corpo della richiesta, specifica il criterio delle risorse. Per i criteri di posizionamento compatti, devi includere gli argomenti "onHostMaintenance": "TERMINATE" e "automaticRestart": false:

{
  "name": "VM_NAME",
  "machineType": "machineTypes/MACHINE_TYPE"
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
    }],
    "network": "global/networks/default"
  }],
  "scheduling": {
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": false
  },
  "disks": [{
     "autoDelete": "true",
     "boot": "true",
     "type": "PERSISTENT",
     "initializeParams": {
       "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
     }
  }],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • ZONE: la zona in cui vuoi creare la nuova VM.

    Questa zona deve trovarsi nella stessa regione in cui si trova il criterio di posizionamento.

  • VM_NAME: il nome della nuova VM.

  • MACHINE_TYPE: il tipo di macchina della VM.

  • IMAGE_PROJECT: il progetto immagine a cui appartiene l'immagine.

  • IMAGE_FAMILY: una delle famiglie di immagini disponibili.

  • REGION: la regione in cui hai creato il criterio di posizionamento.

  • POLICY_NAME: il nome del criterio di posizionamento che vuoi applicare a questa VM.

    Puoi applicare più di un criterio di posizionamento a una VM.

Applica un criterio di posizionamento distribuito a una VM esistente

Se crei un criterio di posizionamento distribuito, puoi applicarlo a una o più VM esistenti senza riavviarle.

gcloud

Applica un criterio di posizionamento distribuito a un'istanza esistente utilizzando il comando add-resource-policies.

gcloud compute instances add-resource-policies VM_NAME \
    --zone=ZONE \
    --resource-policies=SPREAD_PLACEMENT_POLICY_NAME \
    --project=PROJECT_ID

Sostituisci quanto segue:

  • VM_NAME: il nome della VM.
  • ZONE: la zona della VM.

    Questa zona deve trovarsi nella stessa regione in cui si trova il criterio di posizionamento.

  • SPREAD_PLACEMENT_POLICY_NAME: il nome di un criterio di posizionamento distribuito esistente che vuoi applicare a questa VM.

  • PROJECT_ID: il tuo ID progetto.

API

Applica un criterio di posizionamento distribuito a un'istanza esistente utilizzando il metodo addResourcePolicies.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addResourcePolicies

Nel corpo della richiesta, specifica le norme sul posizionamento distribuito.

{
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/SPREAD_PLACEMENT_POLICY_NAME"
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • ZONE: la zona in cui vuoi creare la nuova VM.

    Questa zona deve trovarsi nella stessa regione in cui si trova il criterio di posizionamento.

  • VM_NAME: il nome della nuova VM.

  • REGION: la regione in cui prevedi di creare istanze di VM che utilizzano questo criterio.

  • SPREAD_PLACEMENT_POLICY_NAME: il nome di un criterio di posizionamento distribuito esistente che vuoi applicare a questa VM.

Crea un modello di istanza che specifichi un criterio di posizionamento

Puoi specificare un criterio di posizionamento durante la creazione di un modello di istanza. In particolare:

  • Se specifichi un criterio di posizionamento compatto in un modello di istanza, puoi utilizzare il modello per creare MIG, VM e prenotazioni di VM.

  • Se specifichi un criterio di posizionamento distribuito in un modello di istanza, puoi utilizzare il modello solo per creare MIG e VM.

gcloud

Per creare un modello di istanza che specifichi un criterio delle risorse, utilizza il comando gcloud compute instance-templates create con il flag --resource-policies. Per specificare un criterio di posizionamento compatto, devi specificare anche i flag --maintenance-policy=TERMINATE e --no-restart-on-failure.

Ad esempio, per creare un modello di istanza con proprietà VM predefinite e che includa un criterio di posizionamento compatto, utilizza il comando seguente:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --resource-policies=COMPACT_PLACEMENT_POLICY_NAME \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure

Sostituisci quanto segue:

  • INSTANCE_TEMPLATE_NAME: il nome dell'istanza.

  • COMPACT_PLACEMENT_POLICY_NAME: il nome di un criterio di posizionamento compatto esistente.

API

Per creare un modello di istanza che specifichi un criterio delle risorse, effettua una richiesta POST al metodo instanceTemplates.insert. Nel corpo della richiesta, specifica i criteri di posizionamento nel campo resourcePolicies. Per specificare un criterio di posizionamento compatto, devi specificare anche i campi "onHostMaintenance": "TERMINATE" e "automaticRestart": false.

Ad esempio, per creare un modello di istanza con proprietà VM predefinite e che includa un criterio di posizionamento compatto, utilizza il comando seguente:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "resourcePolicies": {
      "COMPACT_PLACEMENT_POLICY_NAME"
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE",
      "automaticRestart": false
    },
    ...
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto corrente.

  • INSTANCE_TEMPLATE_NAME: il nome dell'istanza.

  • COMPACT_PLACEMENT_POLICY_NAME: il nome di un criterio di posizionamento compatto esistente.

Se vuoi utilizzare il modello per creare una prenotazione MIG, VM o VM, consulta i seguenti documenti:

Applica un criterio di posizionamento alle VM in un gruppo di istanze gestite

Dopo aver creato un criterio di posizionamento, crea un modello di istanza che specifichi il criterio. Quindi crea un gruppo di istanze gestite o aggiorna un gruppo di istanze gestite esistente con il modello di istanza in questione. Il criterio di posizionamento verrà applicato alle VM nel gruppo che utilizzano il modello di istanza.

Se hai un carico di lavoro che richiede comunicazioni approfondite tra le VM, ti consigliamo di creare un criterio di posizionamento compatto e di utilizzare un gruppo di istanze gestite a livello di regione con qualsiasi forma di distribuzione a zona singola. Con la forma a zona singola, ogni volta che un gruppo di istanze gestite a livello di regione non ha VM e deve scalare, il gruppo sceglie la zona ottimale in base a prenotazioni, quote e requisiti hardware.

Applica un criterio di posizionamento a un nuovo gruppo di istanze gestite

Puoi utilizzare l'interfaccia a riga di comando gcloud o l'API Compute Engine.

gcloud

Per creare un gruppo di istanze gestite con VM basate sul modello che hai creato in precedenza, utilizza il comando instance-groups managed create. Ad esempio, per creare un gruppo di istanze gestite a livello di regione con la forma di distribuzione a zona singola, utilizza il seguente comando:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template TEMPLATE_NAME \
    --size SIZE \
    --region REGION \
    --zones ZONES \
    --target-distribution-shape=any-single-zone

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome di questo gruppo di istanze
  • TEMPLATE_NAME: il nome dell'istanza da utilizzare per questo gruppo
  • SIZE: la dimensione del gruppo di istanze
  • REGION: la regione per questo gruppo di istanze

  • ZONES (facoltativo): un elenco di zone nella regione in cui il gruppo di istanze gestite può eseguire il deployment delle istanze VM. Per impostazione predefinita, Compute Engine seleziona tre zone.

    • Se vuoi che il gruppo di istanze gestite sia in grado di utilizzare tutte le zone dell'area geografica, specifica tutte le zone disponibili. Puoi ottenere un elenco delle zone nella regione con il seguente comando:

      gcloud compute zones list --filter=region:REGION --format='list(NAME)'
    • Non è possibile aggiornare un gruppo di istanze gestite a livello di regione per utilizzare zone diverse dopo la creazione.

API

Per creare un gruppo di istanze gestite con VM basate sul modello che hai creato in precedenza, chiama il metodo instanceGroupManagers.insert o regionInstanceGroupManagers.insert e specifica il modello. Ad esempio, per creare un gruppo di istanze gestite a livello di regione con la forma di distribuzione a zona singola, utilizza il seguente metodo:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "instanceTemplate": "global/instanceTemplates/TEMPLATE_NAME",
  "targetSize": SIZE,
  "distributionPolicy": {
      "zones": [
          {"zone": "zones/ZONE1"},
          {"zone": "zones/ZONE2"},
          {"zone": "zones/ZONE3"},
      ],
      "targetShape": "ANY_SINGLE_ZONE"
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per questa richiesta
  • REGION: la regione del gruppo
  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite
  • TEMPLATE_NAME: il modello di istanza da utilizzare
  • SIZE: il numero target di VM per il gruppo
  • ZONES: il nome di una zona nella regione in cui il gruppo di istanze gestite può eseguire il deployment delle istanze VM.
    • Se vuoi che il gruppo di istanze gestite sia in grado di utilizzare tutte le zone dell'area geografica, specifica tutte le zone disponibili. Puoi ottenere un elenco delle zone nella regione chiamando il metodo regions.get.
    • Non è possibile aggiornare un gruppo di istanze gestite a livello di regione per utilizzare zone diverse dopo la creazione.

Per scoprire di più sulla creazione di gruppi di istanze gestite, consulta Scenari di base per la creazione di gruppi di istanze gestite.

Applica un criterio di posizionamento a un gruppo di istanze gestite esistente

Dopo aver creato un criterio di posizionamento, crea un modello di istanza che specifichi il criterio. Quindi applica il modello a un gruppo di istanze gestite esistente. Puoi utilizzare l'interfaccia a riga di comando gcloud o l'API Compute Engine.

gcloud

Per aggiornare un gruppo di istanze gestite e utilizzare il nuovo modello, nonché per implementare automaticamente il nuovo modello nelle VM esistenti nel gruppo di istanze gestite, puoi usare il comando instance-groups managed rolling-action start-update, ad esempio:

gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \
    --template TEMPLATE_NAME \
    --type=proactive

API

Per aggiornare un gruppo di istanze gestite per utilizzare il nuovo modello, chiama il metodo patch in un gruppo di istanze gestite a livello di regione o a livello di zona.

Ad esempio, per un gruppo di istanze gestite a livello di regione, la richiesta seguente mostra la configurazione minima necessaria per aggiornare automaticamente il 100% delle istanze al nuovo modello di istanza.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "instanceTemplate": "global/instanceTemplates/TEMPLATE_NAME",
  "updatePolicy": {
    "type": "PROACTIVE"
   }
}

Per scoprire altri modi per aggiornare le VM nei gruppi di istanze gestite, consulta Aggiornare e applicare le nuove configurazioni alle VM in un gruppo di istanze gestite.

Visualizza criteri di posizionamento

Puoi visualizzare i criteri di posizionamento applicati a una VM e i dettagli di uno specifico criterio di posizionamento utilizzando l'interfaccia alla gcloud CLI'API Compute Engine.

Visualizza il criterio di posizionamento di una VM

gcloud

Per visualizzare il criterio di posizionamento delle risorse di una VM, utilizza il comando gcloud compute instances describe:

gcloud compute instances describe VM_NAME

Sostituisci VM_NAME con il nome della tua VM.

Se è disponibile un criterio di posizionamento, l'output contiene il campo resourcePolicies:

resourcePolicies:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGIONS/resourcePolicies/POLICY_NAME

API

Per visualizzare il criterio di posizionamento delle risorse di una VM, utilizza il metodo instances.get:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto
  • ZONE: la zona contenente la VM
  • VM_NAME: il nome della tua VM

Se è disponibile un criterio di posizionamento, il campo resourcePolicies restituisce i criteri delle risorse della VM.

"resourcePolicies": [
"https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/VM_NAME"
],

Visualizzare i dettagli di un criterio di posizionamento

gcloud

Per visualizzare i dettagli di un criterio di posizionamento, utilizza il comando gcloud compute resource-policies describe:

gcloud compute resource-policies describe POLICY_NAME

Sostituisci POLICY_NAME con il nome del criterio di posizionamento.

Se il criterio di posizionamento è disponibile, l'output contiene i dettagli del criterio di posizionamento:

...
groupPlacementPolicy:
  availabilityDomainCount: 2
kind: compute#resourcePolicy
name: POLICY_NAME
region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION
...

API

Per visualizzare i dettagli di un criterio di posizionamento, utilizza il metodo resourcePolicies.get:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto
  • REGION: la regione contenente la VM
  • POLICY_NAME: il nome del criterio di posizionamento

Se il criterio di posizionamento è disponibile, il corpo della risposta contiene i dettagli del criterio di posizionamento:

...
"region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION",
"name": "POLICY_NAME",
"groupPlacementPolicy": {
  "availabilityDomainCount": 2
},
"kind": "compute#resourcePolicy"
...

Visualizza topologia di posizionamento VM

Puoi visualizzare le informazioni sulla posizione di una VM in relazione a un'altra. Queste informazioni ti aiutano a creare una topologia per le tue VM, contribuendo a determinare quali VM sono più vicine tra loro e quali VM condividono la minor quantità di hardware.

Puoi confrontare le informazioni sulla topologia del posizionamento delle VM solo per le VM che utilizzano lo stesso criterio di posizionamento.

gcloud

Visualizza le proprietà resource di una VM creata con un criterio di posizionamento :

gcloud compute instances describe VM_NAME \
    --format="table[box,title=VM-Topology](resourcePolicies.scope():sort=1,resourceStatus.physicalHost:label=location)"

Sostituisci VM_NAME con il nome dell'istanza VM che utilizza un criterio di posizionamento.

L'output dovrebbe essere simile al seguente:

VM-Topology

RESOURCE_POLICIES: us-central1/resourcePolicies/policy_name']
PHYSICAL_HOST: /xxxxxxxx/xxxxxx/xxxxx

Il valore di PHYSICAL_HOST è composto da tre campi. Questi campi contengono valori sottoposti ad hashing che rappresentano il cluster, il rack di server e la macchina host in cui si trova la VM. Quando confronti questo valore con altre VM, maggiore è il numero di campi con la stessa stringa, più vicini si trovano le VM. Ad esempio, due VM che appartengono allo stesso progetto, cluster ed esecuzione sullo stesso rack hanno lo stesso valore per le prime due parti del campo PHYSICAL_HOST.

API

Visualizza i dettagli di una VM creata con un criterio di posizionamento compatto. Invia una richiesta GET al metodo instances.get:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per questa query.
  • ZONE: la zona dell'istanza su cui vuoi eseguire la query.
  • VM_NAME: il nome della VM che utilizza un criterio di posizionamento.

Il corpo della risposta contiene uno snippet simile al seguente:

{
  ...
  resourcePolicies:
  - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE/resourcePolicies/POLICY_NAME
  resourceStatus:
      physical_host: /xxxxxxxx/xxxxxx/xxxxx
  ...
}

Il valore per physical_host è composto da tre campi, che contengono valori sottoposti ad hashing che rappresentano il cluster, il rack di server e la macchina host in cui si trova la VM. Quando confronti questo valore con altre VM, più campi hanno la stessa stringa, più vicine si trovano tra loro. Ad esempio, due VM che appartengono allo stesso progetto, cluster ed esecuzione sullo stesso rack hanno lo stesso valore per le prime due parti del campo physicalHost.

Se la VM non utilizza un criterio di posizionamento compatto, il valore della proprietà viene visualizzato nell'output come:

resourceStatus: {}

Elimina un criterio di posizionamento

Puoi eliminare un criterio di posizionamento che non ti serve.

gcloud

Utilizza l'interfaccia a riga di comando gcloud per eliminare il criterio:

gcloud compute resource-policies delete POLICY_NAME \
    --region REGION \
    --project PROJECT_ID

Sostituisci quanto segue:

  • POLICY_NAME: il nome della nuova norma da rimuovere
  • REGION: la regione in cui hai creato le istanze VM che utilizzano questo criterio
  • PROJECT_ID: l'ID del tuo progetto

API

Per creare un criterio di posizionamento distribuito, utilizza il metodo resourcePolicies.insert negli API e servizi della console Google Cloud:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies

Nel corpo della richiesta, fornisci i dettagli della norma di posizionamento:

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "availabilityDomainCount": DOMAIN_COUNT
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto
  • REGION: la regione in cui prevedi di creare istanze di VM che utilizzano questo criterio
  • POLICY_NAME: il nome della nuova norma
  • DOMAIN_COUNT: il numero di insiemi separati di hardware host e reti fisiche che questo criterio utilizzerà per separare le istanze

Quali sono i passaggi successivi?