Utilizzare i volumi NFS come datastore vSphere in VMware Engine

Questo documento descrive come utilizzare i volumi NFS come datastore vSphere in VMware Engine creando e gestendo datastore NFS supportati da istanze Filestore, volumi Google Cloud NetApp Volumes o condivisioni NFS di terze parti utilizzando l'API VMware Engine o Google Cloud CLI. L'endpoint API è vmwareengine.googleapis.com. Le operazioni API e gcloud CLI per la creazione, l'aggiornamento, l'eliminazione, il montaggio e lo smontaggio dei datastore sono asincrone. Quando avvii una di queste operazioni, VMware Engine restituisce un oggetto operazione che puoi utilizzare per monitorare lo stato della tua richiesta.

Eseguire il sondaggio di un'operazione

Per monitorare lo stato di un'operazione, utilizza una richiesta GET o l'interfaccia a riga di comando gcloud.

API

curl -X GET \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto Google Cloud .
  • LOCATION: la posizione dell'operazione.
  • OPERATION_ID: l'ID dell'operazione di cui viene eseguito il monitoraggio.

gcloud

gcloud vmware operations describe OPERATION_ID --location=LOCATION --project=PROJECT_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto Google Cloud .
  • LOCATION: la posizione dell'operazione.
  • OPERATION_ID: l'ID dell'operazione di cui viene eseguito il monitoraggio.

Crea un datastore NFS

Per creare un datastore supportato da un'istanza Filestore, un volume Google Cloud NetApp Volumes o una condivisione NFS di terze parti, utilizza gcloud CLI o effettua la seguente richiesta POST:

POST https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datastores?datastoreId=DATASTORE_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto Google Cloud .
  • LOCATION: la posizione di Datastore.
  • DATASTORE_ID: il nome del tuo Datastore.

Il corpo della richiesta deve essere un oggetto JSON contenente i dettagli del volume NFS che eseguirà il backup del datastore.

  • description: (facoltativo) una breve descrizione del tuo Datastore.
  • nfs_datastore: (obbligatorio) un contenitore per la configurazione del datastore NFS.

Filestore

Le sezioni seguenti descrivono come creare un Datastore supportato da Filestore utilizzando l'API o gcloud CLI.

API

Per un datastore supportato da Filestore, fornisci quanto segue in google_file_service:

  • filestore_instance: (obbligatorio) Il nome completo della risorsa dell'istanza Filestore nel formato projects/{project}/locations/{location}/instances/{instance}.

Esempio di corpo della richiesta:

{
  "description": "Filestore Datastore example",
  "nfs_datastore": {
    "google_file_service": {
      "filestore_instance": "projects/FILESTORE_PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME"
    }
  }
}

Sostituisci quanto segue:

  • FILESTORE_PROJECT_ID: l'ID progetto in cui si trova l'istanza Filestore.
  • LOCATION: la posizione dell'istanza Filestore. Deve corrispondere alla località Datastore specificata nell'URL della richiesta.
  • INSTANCE_NAME: il nome dell'istanza Filestore.

gcloud

gcloud vmware datastores create DATASTORE_ID \
--location=LOCATION --project=PROJECT_ID \
--filestore=projects/FILESTORE_PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME

Sostituisci quanto segue:

  • DATASTORE_ID: il nome del tuo Datastore.
  • LOCATION: la posizione dell'istanza Datastore e Filestore.
  • PROJECT_ID: l'ID progetto Google Cloud .
  • FILESTORE_PROJECT_ID: l'ID progetto in cui si trova l'istanza Filestore.
  • INSTANCE_NAME: il nome dell'istanza Filestore.

Google Cloud NetApp Volumes

Le sezioni seguenti descrivono come creare un datastore supportato da Google Cloud NetApp Volumes utilizzando l'API o gcloud CLI.

API

Per un datastore supportato da Google Cloud NetApp Volumes, fornisci quanto segue in google_file_service:

  • netapp_volume: (obbligatorio) il nome completo della risorsa del volume Google Cloud NetApp Volumes nel formato projects/{project}/locations/{location}/volumes/{volume}.

Esempio di corpo della richiesta:

{
  "description": "NetApp Volumes Datastore example",
  "nfs_datastore": {
    "google_file_service": {
      "netapp_volume": "projects/NETAPP_PROJECT_ID/locations/LOCATION/volumes/VOLUME_NAME"
    }
  }
}

Sostituisci quanto segue:

  • NETAPP_PROJECT_ID: l'ID progetto in cui si trova il volume Google Cloud NetApp Volumes.
  • LOCATION: la posizione del volume Google Cloud NetApp Volumes. Deve corrispondere alla località Datastore specificata nell'URL della richiesta.
  • VOLUME_NAME: il nome del tuo volume Google Cloud NetApp Volumes.

gcloud

gcloud vmware datastores create DATASTORE_ID \
--location=LOCATION --project=PROJECT_ID \
--netapp=projects/NETAPP_PROJECT_ID/locations/LOCATION/volumes/VOLUME_NAME

Sostituisci quanto segue:

  • DATASTORE_ID: il nome del tuo Datastore.
  • LOCATION: la posizione del volume Datastore e Google Cloud NetApp Volumes.
  • PROJECT_ID: l'ID progetto Google Cloud .
  • NETAPP_PROJECT_ID: l'ID progetto in cui si trova il volume Google Cloud NetApp Volumes.
  • VOLUME_NAME: il nome del tuo volume Google Cloud NetApp Volumes.

NFS di terze parti

Le sezioni seguenti descrivono come creare un datastore supportato da una condivisione NFS di terze parti utilizzando l'API o gcloud CLI.

API

Per un datastore supportato da una condivisione NFS di terze parti, fornisci quanto segue in nfs_datastore:

  • third_party_nfs: (obbligatorio) contiene la configurazione per NFS di terze parti.
    • network: il nome della rete VPC nel formato projects/{project}/global/networks/{network}.
    • file_share: il nome della condivisione file.
    • servers: un elenco di indirizzi IP del server.

Il corpo della richiesta è simile al seguente:

{
  "description": "Third-party NFS Datastore example",
  "nfs_datastore": {
    "third_party_nfs": {
      "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
      "file_share": "FILE_SHARE_NAME",
      "servers": ["SERVER_ADDRESS_1"]
    }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto Google Cloud .
  • NETWORK_NAME: il nome della rete VPC per l'archivio NFS di terze parti.
  • FILE_SHARE_NAME: il nome della condivisione file per l'archivio NFS di terze parti.
  • SERVER_ADDRESS_1: Un indirizzo IP del server per l'archivio NFS di terze parti. Se necessario, aggiungi altri indirizzi all'elenco.

gcloud

gcloud vmware datastores create DATASTORE_ID \
--third-party-nfs-network=NETWORK_NAME \
--third-party-nfs-file-share=FILE_SHARE_NAME \
--third-party-nfs-servers=SERVER_ADDRESSES \
--location=LOCATION --project=PROJECT_ID

Sostituisci quanto segue:

  • DATASTORE_ID: il nome del tuo Datastore.
  • NETWORK_NAME: Il nome della rete VPC per il datastore NFS di terze parti.
  • FILE_SHARE_NAME: il nome della condivisione file per l'archivio NFS di terze parti.
  • SERVER_ADDRESSES: un elenco separato da virgole di indirizzi IP del server per il datastore NFS di terze parti.
  • LOCATION: la posizione di Datastore.
  • PROJECT_ID: l'ID progetto Google Cloud .

Elencare o ottenere datastore

Per elencare tutti i datastore per un determinato progetto e una determinata località, utilizza gcloud CLI o invia una richiesta GET:

API

Per elencare tutti i datastore per un determinato progetto e una determinata località, invia una richiesta GET:

GET https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datastores

Per recuperare i dettagli di un Datastore specifico, effettua una richiesta GET:

GET https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto Google Cloud .
  • LOCATION: la posizione di Datastore.
  • DATASTORE_ID: il nome del datastore.

gcloud

Per elencare tutti i datastore per un determinato progetto e una determinata località, utilizza il comando gcloud vmware datastores list:

gcloud vmware datastores list \
--location=LOCATION --project=PROJECT_ID

Per recuperare i dettagli di un datastore specifico, utilizza il comando gcloud vmware datastores describe:

gcloud vmware datastores describe DATASTORE_ID \
--location=LOCATION --project=PROJECT_ID

Sostituisci quanto segue:

  • LOCATION: la posizione di Datastore.
  • PROJECT_ID: l'ID progetto Google Cloud .
  • DATASTORE_ID: il nome di Datastore.

Montare un datastore

Dopo aver creato una risorsa Datastore, devi montarla su un cluster vSphere per renderla disponibile agli host ESXi. Per montare un datastore NFS, utilizza gcloud CLI o invia una richiesta POST al cluster di destinazione:

API

POST https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/privateClouds/PRIVATE_CLOUD_ID/clusters/CLUSTER_ID:mountDatastore

Esempio di corpo della richiesta:

{
  "datastore_mount_config": {
    "datastore": "projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID",
    "datastore_network": {
      "subnet": "projects/PROJECT_ID/locations/LOCATION/privateClouds/PRIVATE_CLOUD_ID/subnets/SERVICE_SUBNET_NAME",
      "connection_count": 4
    },
    "access_mode": "READ_WRITE",
    "nfs_version": "NFS_V3"
  }
}
  • datastore: il nome della risorsa del datastore da montare.
  • subnet: il nome della risorsa della subnet di servizio da utilizzare per il traffico NFS.
  • connection_count: (facoltativo) il numero di connessioni. Il valore predefinito è 4.
  • access_mode: (facoltativo) la modalità di accesso, READ_WRITE o READ_ONLY. Il valore predefinito è READ_WRITE.
  • nfs_version: (facoltativo) La versione di NFS. Il valore predefinito è NFS_V3.

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto Google Cloud .
  • LOCATION: la posizione delle risorse.
  • PRIVATE_CLOUD_ID: il nome del cloud privato.
  • CLUSTER_ID: il nome del cluster.
  • DATASTORE_ID: il nome del datastore da montare.
  • SERVICE_SUBNET_NAME: il nome della subnet di servizio da utilizzare per il traffico NFS.

gcloud

gcloud vmware private-clouds clusters mount-datastore CLUSTER_ID \
--location=LOCATION --project=PROJECT_ID \
--private-cloud=PRIVATE_CLOUD_ID \
--datastore=projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID \
--subnet=SERVICE_SUBNET_NAME

In alternativa, puoi fornire i dettagli della configurazione di rete utilizzando un file JSON con il flag --datastore-network:

gcloud vmware private-clouds clusters mount-datastore CLUSTER_ID \
--location=LOCATION --project=PROJECT_ID \
--private-cloud=PRIVATE_CLOUD_ID \
--datastore=projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID \
--datastore-network=network-config.json

Dove network-config.json contiene:

{
    "subnet": "SERVICE_SUBNET_NAME",
    "mtu": 1500,
    "connection-count": 4
}

Sostituisci quanto segue:

  • CLUSTER_ID: il nome del cluster.
  • LOCATION: la posizione delle risorse.
  • PROJECT_ID: l'ID progetto Google Cloud .
  • PRIVATE_CLOUD_ID: il nome del cloud privato.
  • DATASTORE_ID: il nome del datastore da montare.
  • SERVICE_SUBNET_NAME: il nome della subnet di servizio da utilizzare per il traffico NFS.

Dopo un'operazione di montaggio riuscita, puoi visualizzare la configurazione del datastore montato nella risorsa cluster. La risorsa cluster include una voce DatastoreMountConfig che corrisponde al punto di montaggio. Ad esempio:

...
datastoreMountConfig:
- accessMode: READ_WRITE
  datastore: projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID
  datastoreNetwork:
    connectionCount: 4
    mtu: 1500
    networkPeering: projects/PROJECT_ID/locations/global/networkPeerings/PEERING_NAME
    subnet: projects/PROJECT_ID/locations/LOCATION/privateClouds/PRIVATE_CLOUD_ID/subnets/SUBNET_NAME
  fileShare: FILE_SHARE_NAME
  nfsVersion: NFS_V3
  servers:
  - SERVER_IP
...

Dopo un'operazione di montaggio riuscita, l'elenco clusters della risorsa Datastore viene aggiornato. Puoi descrivere un datastore per vedere su quali cluster è montato.

API

GET https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID

gcloud

gcloud vmware datastores describe DATASTORE_ID --location=LOCATION --project=PROJECT_ID

Dopo aver descritto un Datastore, cerca il campo clusters nella risposta per vedere su quali cluster è montato il Datastore. L'output di esempio seguente mostra un Datastore montato su un cluster:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID",
  ...
  "clusters": [
    "projects/PROJECT_ID/locations/LOCATION/privateClouds/PRIVATE_CLOUD_ID/clusters/CLUSTER_ID"
  ],
  ...
}

Aggiorna un datastore

È possibile aggiornare solo il campo description di un datastore. Per aggiornare un Datastore, utilizza gcloud CLI o invia una richiesta PATCH:

API

PATCH https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID

Esempio di corpo della richiesta:

{
  "description": "New datastore description"
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto Google Cloud .
  • LOCATION: la posizione di Datastore.
  • DATASTORE_ID: l'ID del datastore.

gcloud

gcloud vmware datastores update DATASTORE_ID \
--location=LOCATION --project=PROJECT_ID \
--description="DESCRIPTION"

Sostituisci quanto segue:

  • DATASTORE_ID: il nome del datastore.
  • LOCATION: la posizione di Datastore.
  • PROJECT_ID: l'ID progetto Google Cloud .
  • DESCRIPTION: una descrizione per Datastore.

Smontare un datastore

Per smontare un datastore NFS da un cluster, utilizza gcloud CLI o invia una richiesta POST:

API

POST https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/privateClouds/PRIVATE_CLOUD_ID/clusters/CLUSTER_ID:unmountDatastore

Esempio di corpo della richiesta:

{
  "datastore": "projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID"
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto Google Cloud .
  • LOCATION: la posizione delle risorse.
  • PRIVATE_CLOUD_ID: il nome del cloud privato.
  • CLUSTER_ID: il nome del cluster.
  • DATASTORE_ID: il nome del datastore da smontare.

gcloud

gcloud vmware private-clouds clusters unmount-datastore CLUSTER_ID \
--location=LOCATION --project=PROJECT_ID \
--private-cloud=PRIVATE_CLOUD_ID \
--datastore=projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID

Sostituisci quanto segue:

  • CLUSTER_ID: il nome del cluster.
  • LOCATION: la posizione delle risorse.
  • PROJECT_ID: l'ID progetto Google Cloud .
  • PRIVATE_CLOUD_ID: il nome del cloud privato.
  • DATASTORE_ID: il nome del datastore da smontare.

Eliminare un datastore

Per eliminare una risorsa Datastore, utilizza gcloud CLI o invia una richiesta DELETE. Il datastore non deve essere montato su alcun cluster.

API

DELETE https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto Google Cloud .
  • LOCATION: la posizione di Datastore.
  • DATASTORE_ID: il nome del datastore da eliminare.

gcloud

gcloud vmware datastores delete DATASTORE_ID \
--location=LOCATION --project=PROJECT_ID

Sostituisci quanto segue:

  • DATASTORE_ID: il nome del datastore da eliminare.
  • LOCATION: la posizione di Datastore.
  • PROJECT_ID: l'ID progetto Google Cloud .

Risoluzione dei problemi

Le tabelle seguenti elencano gli errori comuni durante la creazione e il montaggio di Datastore:

Errori di creazione del datastore

La tabella seguente descrive gli errori che potresti riscontrare durante la creazione di datastore:

Messaggio di errore Causa Soluzione
L'istanza del file server NFS filestore non può essere vuota. Il campo filestore_instance nel corpo della richiesta è vuoto. Fornisci il nome completo della risorsa dell'istanza Filestore.
Il volume del file server NFS NetApp non può essere vuoto. Il campo netapp_volume nel corpo della richiesta è vuoto. Fornisci il nome completo della risorsa del volume Google Cloud NetApp Volumes.
Formato del campo non valido per il tipo di campo filestore_instance Il campo filestore_instance non rispetta il formato richiesto. Assicurati che il nome della risorsa sia nel formato projects/{project}/locations/{location}/instances/{instance}.
Formato del campo non valido per il tipo di campo netapp_volume… Il campo netapp_volume non rispetta il formato richiesto. Assicurati che il nome della risorsa sia nel formato projects/{project}/locations/{location}/volumes/{volume}.
Datastore e il volume NFS si trovano in posizioni diverse. L'istanza Filestore o il volume Google Cloud NetApp Volumes si trova in una posizione diversa da Datastore che stai tentando di creare. Assicurati che il volume NFS e il datastore si trovino nella stessa posizione.
All'utente mancano le autorizzazioni richieste "file.instances.get" Il account di servizio non dispone delle autorizzazioni IAM necessarie per accedere all'istanza Filestore. Concedi il ruolo roles/file.viewer al service agent VMware Engine.
Autorizzazione "netapp.volumes.get" negata per la risorsa… Il account di servizio non dispone delle autorizzazioni IAM necessarie per accedere al volume Google Cloud NetApp Volumes. Concedi il ruolo roles/netapp.viewer al service agent VMware Engine.
L'istanza Filestore ... non esiste. Impossibile trovare l'istanza Filestore specificata. Verifica che l'istanza Filestore esista e che il nome della risorsa sia corretto.
Il volume Netapp ... non esiste. Impossibile trovare il volume Google Cloud NetApp Volumes specificato. Verifica che il volume Google Cloud NetApp Volumes esista e che il nome della risorsa sia corretto.
L'istanza Filestore ha un livello non supportato L'istanza Filestore utilizza un livello non supportato da questa funzionalità. Crea una nuova istanza Filestore con un livello supportato: zonale o regionale.
L'istanza Filestore ha una versione NFS non supportata L'istanza Filestore utilizza una versione NFS non supportata. Crea una nuova istanza Filestore con NFS versione 3.
Il volume Netapp… ha una versione NFS non supportata… Il volume Google Cloud NetApp Volumes utilizza una versione NFS non supportata. Crea un nuovo volume Google Cloud NetApp Volumes con NFS versione 3.
La protezione da eliminazione del volume Netapp ... è disabilitata. La protezione dall'eliminazione del volume Google Cloud NetApp Volumes è disattivata. Attiva la protezione dall'eliminazione sul volume Google Cloud NetApp Volumes.
Impossibile creare Datastore. Esiste già la risorsa… con la stessa configurazione. Esiste già un datastore con lo stesso nome e la stessa configurazione. Scegli un nome diverso per il tuo Datastore o modifica la configurazione.

Errori di montaggio e smontaggio di Datastore

La tabella seguente descrive gli errori che potresti riscontrare durante il montaggio o lo smontaggio dei datastore:

Messaggio di errore Causa Soluzione
Convalida di DatastoreFormat non riuscita. Il formato Datastore specificato non è supportato o non è valido. Assicurati che il formato del datastore sia compatibile con VMware Engine (ad esempio NFSv3).
Intervallo MTU non valido, deve essere compreso tra 1300 e 9000 Il valore MTU (Maximum Transmission Unit) fornito per la rete Datastore non rientra nell'intervallo accettabile compreso tra 1300 e 9000. Specifica un valore MTU compreso tra 1300 e 9000.
Il progetto Datastore non è uguale al progetto del cluster L' Google Cloud ID progetto del datastore non corrisponde all' Google Cloud ID progetto del cluster vSphere. Assicurati che Datastore e il cluster appartengano allo stesso progetto Google Cloud .
MTU non valida. La MTU deve essere coerente con la MTU di Datastore montato esistente nel cluster L'MTU della nuova rete Datastore non è coerente con l'MTU di altri datastore NFS già montati sullo stesso cluster. Allinea l'MTU del nuovo datastore all'MTU dei datastore montati esistenti nel cluster.
Datastore deve essere presente e in stato Pronto La risorsa Datastore specificata non esiste o non è nello stato READY. Verifica che il datastore sia stato creato correttamente e che il suo stato sia READY utilizzando l'API Get o List Datastore.
Per la prima parte, deve essere presente Filestore o NetApp a cui viene fatto riferimento e deve essere in stato pronto L'istanza Filestore o il volume Google Cloud NetApp Volumes sottostante non è presente o non è nello stato READY. Assicurati che il volume NFS a cui viene fatto riferimento esista e si trovi nello stato READY nel progetto Google Cloud .
Il peering di rete deve esistere in stato attivo tra il VPC di condivisione file e la rete VMware Engine del cloud privato del cluster È necessaria una connessione di peering di rete VPC tra la rete VPC in cui si trova il volume NFS e la rete VMware Engine del cloud privato e questa connessione è mancante o non si trova nello stato ACTIVE. Verifica che esista una connessione di peering di rete VPC attiva tra il VPC della condivisione file e la rete VMware Engine del tuo cloud privato.
L'operazione di montaggio non riesce sulle reti legacy Per le reti legacy, la connessione privata al progetto tenant del volume NFS è mancante o inattiva. Assicurati che esista una connessione privata attiva al progetto tenant prima di tentare di montare Datastore. Non eliminare una connessione privata utilizzata da un datastore montato.
Per la prima parte, l'opzione di esportazione deve essere aggiunta per consentire l'utilizzo della subnet del PC per il montaggio La policy di esportazione sul volume NFS non include la subnet di servizio del cloud privato per l'accesso. Modifica la policy di esportazione del volume NFS per consentire l'accesso dalla subnet di servizio del cloud privato che verrà utilizzata per il montaggio.
La subnet deve essere presente con un CIDR IP valido configurato La subnet del servizio specificata per la rete Datastore non è presente o non è configurato un intervallo CIDR IP valido. Assicurati che la subnet di servizio designata esista e disponga di un intervallo CIDR IP configurato correttamente, sufficiente per allocare IP a tutti gli host ESXi nel cluster.
Formato Datastore non valido Il nome della risorsa Datastore specificato non è in un formato riconosciuto o corretto, il che impedisce l'operazione di disattivazione. Verifica che il nome della risorsa Datastore fornito nella richiesta di smontaggio sia corretto e rispetti il formato projects/{project}/locations/{location}/datastores/{datastore_id}.
Datastore non montato sul cluster Il datastore che stai tentando di smontare non è montato sul cluster specificato. Prima di tentare lo smontaggio, verifica che il datastore sia montato sul cluster vSphere di destinazione.