Questo documento spiega come creare ed eseguire un job batch che utilizza uno o più volumi di archiviazione esterni. Le opzioni di archiviazione esterna includono nuovi o esistenti disco permanente, nuovi SSD locali, bucket Cloud Storage esistenti e un file system di rete (NFS) esistente come Condivisione file Filestore.
Indipendentemente dal fatto che tu aggiunga volumi di archiviazione esterni, ogni La VM di Compute Engine per un job ha un disco di avvio, che fornisce spazio di archiviazione per l'immagine e le istruzioni del sistema operativo del job. Per informazioni sulla configurazione del disco di avvio per un job, consulta Panoramica dell'ambiente del sistema operativo VM.
Prima di iniziare
- Se non hai mai utilizzato Batch, rivedi Inizia a utilizzare Batch e abilita Batch, completando prerequisiti per progetti e utenti.
-
Per ottenere le autorizzazioni necessarie per creare un job, chiedi all'amministratore di concederti seguenti ruoli IAM:
-
Editor job batch (
roles/batch.jobsEditor
) del progetto -
Utente account di servizio (
roles/iam.serviceAccountUser
) sull'account di servizio del job, che per impostazione predefinita è l'account di servizio Compute Engine predefinito -
Crea un job che utilizza un bucket Cloud Storage:
Visualizzatore oggetti Storage (
roles/storage.objectViewer
) sul bucket
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
-
Editor job batch (
Crea un job che utilizza volumi di archiviazione
Facoltativamente, un job può utilizzare uno o più di ciascuno dei seguenti tipi di come volumi di archiviazione esterni. Per ulteriori informazioni su tutti i tipi di volumi di archiviazione differenze e restrizioni per ciascuno, consulta la documentazione Opzioni di archiviazione per le VM di Compute Engine.
- disco permanente: archiviazione a blocchi permanente a livello di zona o di regione
- SSD locale: archiviazione a blocchi transitoria ad alte prestazioni
- Bucket Cloud Storage: archiviazione di oggetti conveniente
- network file system (NFS): file system distribuito che segue il protocollo Network File System, per un esempio Condivisione file Filestore, un'istanza NFS ad alte prestazioni ospitata su Google Cloud
Puoi consentire a un job di utilizzare ogni volume di archiviazione includendolo
nella definizione del tuo job e specificandone
percorso di montaggio (mountPath
)
nei tuoi runnable. Per scoprire come creare un job che utilizza volumi di archiviazione, consulta
una o più delle seguenti sezioni:
- Utilizzare un disco permanente
- Utilizzare un SSD locale
- Usa un bucket Cloud Storage
- Utilizzare un file system di rete
Utilizza un disco permanente
Un job che utilizza dischi permanenti ha le seguenti restrizioni:
Tutti i dischi permanenti: esamina il limitazioni per tutti i dischi permanenti.
Dischi permanenti nuovi ed esistenti: ogni disco permanente in un job può essere nuovo (definito e creato con il job) o esistente (già sono stati creati nel progetto e specificati nel job). Per utilizzare un disco permanente, deve essere formattati e montati nel delle VM del job, che devono trovarsi nella stessa località del disco permanente. Il comando monta in batch tutti i dischi permanenti che includi in un job formatta i nuovi dischi permanenti, ma devi formattare e smontare i dischi permanenti esistenti che vuoi vengano utilizzati da un job.
Le opzioni di località supportate, opzioni di formato, e opzioni di montaggio variano tra i dischi permanenti nuovi ed esistenti, come descritto in tabella:
Nuovi dischi permanenti Dischi permanenti esistenti Opzioni formato Il disco permanente viene formattato automaticamente con una File system
ext4
:Devi formattare il disco permanente utilizzare un File system
ext4
prima di utilizzarlo per un lavoro.Opzioni di montaggio Sono supportate tutte le opzioni.
Sono supportate tutte le opzioni tranne la scrittura. Ciò è dovuto a limitazioni di modalità multi-writer.
Devi dissociare il disco permanente da qualsiasi VM a cui è collegato prima di utilizzarlo per un job.
Opzioni per località Puoi creare solo dischi permanenti a livello di zona.
Puoi selezionare qualsiasi località per il tuo lavoro. L'impostazione permanente vengono creati i dischi nella zona in cui viene eseguito il progetto.
Puoi selezionare dischi permanenti a livello di zona e di regione.
Devi impostare la posizione del lavoro (o, se specificato, solo la posizione località consentite) alle solo località che contengono tutti i dati i dischi permanenti. Ad esempio, per un disco permanente a livello di zona, la località deve essere la zona del disco. per un disco permanente a livello di regione la località del job deve essere la regione del disco o, se specificando zone, una o entrambe le zone specifiche in cui a disco permanente di regione.Modelli di istanza: se vuoi utilizza un modello di istanza VM durante la creazione di questo job, devi collegare i disco permanente per questo job nell'istanza modello. Altrimenti, se non vuoi utilizzare un modello di istanza, devi collegare eventuali disco permanente direttamente nella definizione del job.
Puoi creare un job che utilizza un disco permanente console Google Cloud, gcloud CLI, API Batch, Go, Java, Node.js, Python o C++.
Console
Utilizzando la console Google Cloud, l'esempio seguente crea un job che
esegue uno script per leggere un file da un disco permanente a livello di zona esistente
che si trova nella zona us-central1-a
. Lo script di esempio presuppone che il job
dispone di un disco permanente a livello di zona esistente contenente un file di testo denominato
example.txt
nella directory principale.
(Facoltativo) Crea un disco permanente a livello di zona di esempio
Se vuoi creare un disco permanente a livello di zona da usare esegui lo script di esempio, segui questi passaggi prima di creare il job:
Collega un nuovo permanente vuoto denominato
example-disk
a una VM Linux nelus-central1-a
zona ed eseguire sulla VM i comandi da formattare e montare sul disco. Per istruzioni, vedi Aggiungi un disco permanente alla tua VM.Non disconnetterti ancora dalla VM.
Per creare
example.txt
sul disco permanente, esegui questo comando sulla VM:Per modificare la directory di lavoro corrente nella directory radice del un disco permanente, digita il seguente comando:
cd VM_MOUNT_PATH
Sostituisci VM_MOUNT_PATH con il percorso di la directory in cui il disco permanente è stato montato su questa VM nel passaggio precedente, ad esempio
/mnt/disks/example-disk
.Premi
Enter
.Per creare e definire un file denominato
example.txt
: digita questo comando:cat > example.txt
Premi
Enter
.Digita il contenuto del file. Ad esempio, digita
Hello world!
.Per salvare il file, premi
Ctrl+D
(oCommand+D
su macOS).
Al termine, puoi disconnetterti dalla VM.
Scollega il disco permanente dalla VM.
Se la VM non ti serve più, puoi eliminare la VM. dissocia automaticamente il disco permanente.
In caso contrario, scollega il disco permanente. Per istruzioni, vedi Scollegamento e ricollegamento dei dischi di avvio e scollega il disco permanente
example-disk
anziché al disco di avvio della VM.
Crea un job che utilizza il disco permanente a livello di zona esistente
Per creare un job che utilizza dischi permanenti a livello di zona esistenti usando Nella console Google Cloud, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Elenco job.
Fai clic su
Crea. La Si apre la pagina Crea job batch. Nel riquadro a sinistra, La pagina Dettagli job è selezionata.Configura la pagina Dettagli job:
(Facoltativo) Nel campo Nome job, personalizza il nome del job.
Ad esempio, inserisci
example-disk-job
.Configura la sezione Dettagli attività:
Nella finestra Nuovo eseguibile, aggiungi almeno uno script oppure container per l'esecuzione di questo job.
Ad esempio, per eseguire uno script che stampi i contenuti di un file denominato
example.txt
e che si trova nella directory radice del disco permanente utilizzato da questo job, segui questi passaggi:Seleziona la casella di controllo Script. Viene visualizzata una casella di testo.
Nella casella di testo, inserisci il seguente script:
echo "Here is the content of the example.txt file in the persistent disk." cat MOUNT_PATH/example.txt
Sostituisci MOUNT_PATH con il percorso di in cui prevedi di montare il disco permanente sulle VM questo job, ad esempio
/mnt/disks/example-disk
.Fai clic su Fine.
Nel campo Conteggio attività, inserisci il numero di attività per per questo job.
Ad esempio, inserisci
1
(valore predefinito).Nel campo Parallelismo, inserisci il numero di attività da contemporaneamente.
Ad esempio, inserisci
1
(valore predefinito).
Configura la pagina Specifiche delle risorse:
Nel riquadro a sinistra, fai clic su Specifiche della risorsa. Si apre la pagina Specifiche della risorsa.
Seleziona la località per questo lavoro. Per usare un disco permanente a livello di zona esistente, le VM di un job devono devono trovarsi nella stessa zona.
Nel campo Regione, seleziona una regione.
Ad esempio, per utilizzare il disco permanente a livello di zona, Seleziona
us-central1 (Iowa)
(impostazione predefinita).Nel campo Zona, seleziona una zona.
Ad esempio, seleziona
us-central1-a (Iowa)
.
Configura la pagina Configurazioni aggiuntive:
Nel riquadro a sinistra, fai clic su Configurazioni aggiuntive. Si apre la pagina Configurazioni aggiuntive.
Per ogni disco permanente a livello di zona esistente su cui vuoi montare questo lavoro:
Nella sezione Volume spazio di archiviazione, fai clic su Aggiungi nuovo volume. Viene visualizzata la finestra Nuovo volume.
Nella finestra Nuovo volume:
Nella sezione Tipo di volume, seleziona Persistent Disk (Disco permanente) (impostazione predefinita).
Nell'elenco Disco, seleziona un disco permanente di zona esistente su cui vuoi montare per questo job. Il disco deve trovarsi nella stessa in questa zona.
Ad esempio, seleziona il disco permanente a livello di zona esistente preparato, disponibile nel
us-central1-a
e contiene il fileexample.txt
.(Facoltativo) Se vuoi rinominare questo disco permanente a livello di zona, segui questi passaggi:
Seleziona Personalizza il nome del dispositivo.
Nel campo Nome dispositivo, inserisci il nuovo nome per sul disco.
Nel campo Percorso di montaggio, inserisci il percorso di montaggio (MOUNT_PATH) per questo elemento un disco permanente:
Ad esempio, inserisci quanto segue:
/mnt/disks/EXISTING_PERSISTENT_DISK_NAME
Sostituisci EXISTING_PERSISTENT_DISK_NAME con il nome del disco. Se hai rinominato il disco permanente a livello di zona, utilizza il nuovo nome.
Ad esempio, sostituisci EXISTING_PERSISTENT_DISK_NAME con
example-disk
.Fai clic su Fine.
(Facoltativo) Configura il altri campi per questo job.
(Facoltativo) Per rivedere la configurazione del job, nel riquadro a sinistra fai clic su Anteprima.
Fai clic su Crea.
Nella pagina Dettagli job viene visualizzato il job creato.
gcloud
Utilizzando gcloud CLI, l'esempio seguente crea un job che
collega e monta un disco permanente esistente e un nuovo disco permanente.
Il job prevede tre attività, ognuna delle quali esegue uno script per creare un file nella nuova
disco permanente denominato output_task_TASK_INDEX.txt
dove TASK_INDEX è l'indice di ogni attività: 0, 1 e
2.
Per creare un job che utilizza dischi permanenti usando il comando
gcloud CLI, utilizza
Comando gcloud batch jobs submit
.
Nel file di configurazione JSON del job, specifica i dischi permanenti nella
instances
e montare il disco permanente nel campo volumes
.
Crea un file JSON.
Se non utilizzi un modello di istanza per questo job, crea un file JSON con i seguenti contenuti:
{ "allocationPolicy": { "instances": [ { "policy": { "disks": [ { "deviceName": "EXISTING_PERSISTENT_DISK_NAME", "existingDisk": "projects/PROJECT_ID/EXISTING_PERSISTENT_DISK_LOCATION/disks/EXISTING_PERSISTENT_DISK_NAME" }, { "newDisk": { "sizeGb": NEW_PERSISTENT_DISK_SIZE, "type": "NEW_PERSISTENT_DISK_TYPE" }, "deviceName": "NEW_PERSISTENT_DISK_NAME" } ] } } ], "location": { "allowedLocations": [ "EXISTING_PERSISTENT_DISK_LOCATION" ] } }, "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> /mnt/disks/NEW_PERSISTENT_DISK_NAME/output_task_${BATCH_TASK_INDEX}.txt" } } ], "volumes": [ { "deviceName": "NEW_PERSISTENT_DISK_NAME", "mountPath": "/mnt/disks/NEW_PERSISTENT_DISK_NAME", "mountOptions": "rw,async" }, { "deviceName": "EXISTING_PERSISTENT_DISK_NAME", "mountPath": "/mnt/disks/EXISTING_PERSISTENT_DISK_NAME" } ] }, "taskCount":3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Sostituisci quanto segue:
PROJECT_ID
: il valore ID progetto del tuo progetto.EXISTING_PERSISTENT_DISK_NAME
: il nome di un disco permanente esistente.EXISTING_PERSISTENT_DISK_LOCATION
: il valore di un disco permanente esistente. Per ogni ambiente di zona disco permanente, la località del job deve essere la zona del disco. della ogni disco permanente a livello di regione esistente, la località del job deve essere la regione del disco o, se si specificano zone, uno o sia delle zone specifiche in cui in cui viene localizzato. Se non specifichi nessun valore permanente esistente i dischi permanenti, puoi selezionare qualsiasi località. Scopri di più sulle CampoallowedLocations
:NEW_PERSISTENT_DISK_SIZE
: la dimensione del un nuovo disco permanente in GB. La dimensioni consentite dipendono dal tipo di disco permanente, ma il minimo è spesso 10 GB (10
) e il massimo è spesso 64 TB (64000
).NEW_PERSISTENT_DISK_TYPE
: il valore tipo di disco del nuovo disco permanente,pd-standard
,pd-balanced
,pd-ssd
opd-extreme
. Il tipo di disco predefinito per non di avvio dei dischi permanenti èpd-standard
.NEW_PERSISTENT_DISK_NAME
: il nome del nuovo disco permanente.
Se utilizzando un modello di istanza VM per questo job, creare un file JSON come mostrato in precedenza, ad eccezione della sostituzione del Campo
instances
con quanto segue:"instances": [ { "instanceTemplate": "INSTANCE_TEMPLATE_NAME" } ],
dove
INSTANCE_TEMPLATE_NAME
è il nome del modello di istanza per questo job. Per un job che utilizza dischi permanenti, questo modello di istanza deve definire e collegare dei dischi permanenti che vuoi utilizzare. Per questo esempio, il modello deve definire e collegare un nuovo disco permanente denominatoNEW_PERSISTENT_DISK_NAME
e e colleghi un disco permanente esistente denominatoEXISTING_PERSISTENT_DISK_NAME
.
Esegui questo comando:
gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Sostituisci quanto segue:
JOB_NAME
: il nome del job.LOCATION
: la località del lavoro.JSON_CONFIGURATION_FILE
: il percorso di un file JSON con i dettagli di configurazione del job.
API
Utilizzando l'API Batch, l'esempio seguente crea un job
che collega e monta un disco permanente esistente e un nuovo
disco. Il job prevede tre attività, ognuna delle quali esegue uno script per creare un file nella nuova
un disco permanente denominato
output_task_TASK_INDEX.txt
dove
TASK_INDEX è l'indice di ogni attività: 0, 1 e 2.
Per creare un job che utilizza dischi permanenti usando il comando
API Batch, utilizza
Metodo jobs.create
.
Nella richiesta, specifica i dischi permanenti nel
instances
e montare il disco permanente nel campo volumes
.
Se non utilizzi un modello di istanza per questo job, effettua quanto segue: richiesta:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME { "allocationPolicy": { "instances": [ { "policy": { "disks": [ { "deviceName": "EXISTING_PERSISTENT_DISK_NAME", "existingDisk": "projects/PROJECT_ID/EXISTING_PERSISTENT_DISK_LOCATION/disks/EXISTING_PERSISTENT_DISK_NAME" }, { "newDisk": { "sizeGb": NEW_PERSISTENT_DISK_SIZE, "type": "NEW_PERSISTENT_DISK_TYPE" }, "deviceName": "NEW_PERSISTENT_DISK_NAME" } ] } } ], "location": { "allowedLocations": [ "EXISTING_PERSISTENT_DISK_LOCATION" ] } }, "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> /mnt/disks/NEW_PERSISTENT_DISK_NAME/output_task_${BATCH_TASK_INDEX}.txt" } } ], "volumes": [ { "deviceName": "NEW_PERSISTENT_DISK_NAME", "mountPath": "/mnt/disks/NEW_PERSISTENT_DISK_NAME", "mountOptions": "rw,async" }, { "deviceName": "EXISTING_PERSISTENT_DISK_NAME", "mountPath": "/mnt/disks/EXISTING_PERSISTENT_DISK_NAME" } ] }, "taskCount":3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Sostituisci quanto segue:
PROJECT_ID
: il valore ID progetto del tuo progetto.LOCATION
: la località del lavoro.JOB_NAME
: il nome del job.EXISTING_PERSISTENT_DISK_NAME
: il nome di un disco permanente esistente.EXISTING_PERSISTENT_DISK_LOCATION
: il valore di un disco permanente esistente. Per ogni ambiente di zona disco permanente, la località del job deve essere la zona del disco. della ogni disco permanente a livello di regione esistente, la località del job deve essere la regione del disco o, se si specificano zone, uno o sia delle zone specifiche in cui in cui viene localizzato. Se non specifichi nessun valore permanente esistente i dischi permanenti, puoi selezionare qualsiasi località. Scopri di più sulle CampoallowedLocations
:NEW_PERSISTENT_DISK_SIZE
: la dimensione del un nuovo disco permanente in GB. La dimensioni consentite dipendono dal tipo di disco permanente, ma il minimo è spesso 10 GB (10
) e il massimo è spesso 64 TB (64000
).NEW_PERSISTENT_DISK_TYPE
: il valore tipo di disco del nuovo disco permanente,pd-standard
,pd-balanced
,pd-ssd
opd-extreme
. Il tipo di disco predefinito per non di avvio dei dischi permanenti èpd-standard
.NEW_PERSISTENT_DISK_NAME
: il nome del nuovo disco permanente.
Se utilizzando un modello di istanza VM per questo job, creare un file JSON come mostrato in precedenza, ad eccezione della sostituzione del Campo
instances
con quanto segue:"instances": [ { "instanceTemplate": "INSTANCE_TEMPLATE_NAME" } ], ...
Dove si chiama
INSTANCE_TEMPLATE_NAME
del modello di istanza per questo job. Per un job che utilizza dischi permanenti, questo modello di istanza deve definire e collegare dei dischi permanenti che vuoi utilizzare. Per questo esempio, il modello deve definire e collegare un nuovo disco permanente denominatoNEW_PERSISTENT_DISK_NAME
e e colleghi un disco permanente esistente denominatoEXISTING_PERSISTENT_DISK_NAME
.
Vai
Per creare un job batch che utilizza dati nuovi o esistenti
i dischi permanenti usando
Librerie client di Cloud per Go, utilizza il
Funzione CreateJob
e includere quanto segue:
- Per collegare i dischi permanenti alle VM per un job,
includi uno dei seguenti elementi:
- Se non utilizzi un modello di istanza VM per questo job,
includi il tipo
AllocationPolicy_AttachedDisk
. - Se utilizzi un modello di istanza VM per questo job,
includi il tipo
AllocationPolicy_InstancePolicyOrTemplate_InstanceTemplate
.
- Se non utilizzi un modello di istanza VM per questo job,
includi il tipo
- Per montare i dischi permanenti nel job, utilizza la classe
Tipo di
Volume
con il tipoVolume_DeviceName
eMountPath
. Per i nuovi dischi permanenti, utilizza ancheMountOptions
per abilitare la scrittura.
Per un esempio di codice per un caso d'uso simile, consulta Utilizza un bucket Cloud Storage.
Java
Per creare un job batch che utilizza dati nuovi o esistenti
i dischi permanenti usando
Librerie client di Cloud per Java, utilizza
CreateJobRequest
corso
e includere quanto segue:
- Per collegare i dischi permanenti alle VM per un job,
includi uno dei seguenti elementi:
- Se non utilizzi un modello di istanza VM per questo job,
includi il metodo
setDisks
. - Se utilizzi un modello di istanza VM per questo job,
includi il metodo
setInstanceTemplate
.
- Se non utilizzi un modello di istanza VM per questo job,
includi il metodo
- Per montare i dischi permanenti nel job, utilizza la classe
Volume
corso con il metodosetDeviceName
esetMountPath
. Per i nuovi dischi permanenti, utilizza anche MetodosetMountOptions
per consentire la scrittura.
Per un esempio di codice per un caso d'uso simile, consulta Utilizza un bucket Cloud Storage.
Node.js
Per creare un job batch che utilizza dati nuovi o esistenti
i dischi permanenti usando
Librerie client Cloud per Node.js, utilizza
Metodo createJob
e includere quanto segue:
- Per collegare i dischi permanenti alle VM per un job,
includi uno dei seguenti elementi:
- Se non utilizzi un modello di istanza VM per questo job,
includi il corso
AllocationPolicy.AttachedDisk
. - Se utilizzi un modello di istanza VM per questo job,
includi la proprietà
instanceTemplate
.
- Se non utilizzi un modello di istanza VM per questo job,
includi il corso
- Per montare i dischi permanenti nel job, utilizza la classe
Volume
corso con la proprietàdeviceName
emountPath
proprietà. Per i nuovi dischi permanenti, utilizza anche ProprietàmountOptions
per consentire la scrittura.
Per un esempio di codice per un caso d'uso simile, consulta Utilizza un bucket Cloud Storage.
Python
Per creare un job batch che utilizza dati nuovi o esistenti
i dischi permanenti usando
Librerie client Cloud per Python, utilizza
Funzione CreateJob
e includere quanto segue:
- Per collegare i dischi permanenti alle VM per un job,
includi uno dei seguenti elementi:
- Se non utilizzi un modello di istanza VM per questo job,
includi il corso
AttachedDisk
. - Se utilizzi un modello di istanza VM per questo job,
includi l'attributo
instance_template
.
- Se non utilizzi un modello di istanza VM per questo job,
includi il corso
- Per montare i dischi permanenti nel job, utilizza la classe
Volume
corso con l'attributodevice_name
emount_path
. Per i nuovi dischi permanenti, utilizza anche Attributomount_options
per consentire la scrittura.
Per un esempio di codice per un caso d'uso simile, consulta Utilizza un bucket Cloud Storage.
C++
Per creare un job batch che utilizza dati nuovi o esistenti
i dischi permanenti usando
Librerie client di Cloud per C++, utilizza
Funzione CreateJob
e includere quanto segue:
- Per collegare i dischi permanenti alle VM per un job,
includi uno dei seguenti elementi:
- Se non utilizzi un modello di istanza VM per questo job,
utilizza il metodo
set_remote_path
. - Se utilizzi un modello di istanza VM per questo job, utilizza
set_instance_template
.
- Se non utilizzi un modello di istanza VM per questo job,
utilizza il metodo
- Per montare i dischi permanenti nel job, utilizza il campo
volumes
con i campideviceName
emountPath
. Per i nuovi dischi permanenti, usa il campomountOptions
per abilitare la scrittura.
Per un esempio di codice per un caso d'uso simile, consulta Utilizza un bucket Cloud Storage.
Usa un SSD locale
Un job che utilizza SSD locali ha le seguenti restrizioni:
- Tutti gli SSD locali Esamina le limitazioni previste per tutti gli SSD locali.
- Modelli di istanza Se vuoi Specifica un modello di istanza VM durante la creazione di questo job, devi collegare eventuali disco permanente per questo job modello di istanza. Altrimenti, se non vuoi utilizzare un'istanza devi collegare i disco permanente direttamente nel la definizione del job.
Puoi creare un job che utilizza un SSD locale usando
gcloud CLI o API Batch.
L'esempio seguente descrive come creare un job che crea, allega e
monta un SSD locale. Il lavoro prevede anche tre attività
che eseguono uno script per creare un file nell'SSD locale denominato
output_task_TASK_INDEX.txt
dove
TASK_INDEX
è l'indice di ogni attività:
0
, 1
e 2
.
gcloud
Per creare un job che utilizza gli SSD locali utilizzando
gcloud CLI, utilizza
Comando gcloud batch jobs submit
.
Nel file di configurazione JSON del job, crea e collega gli SSD locali nella
instances
e montare le unità SSD locali nel campo volumes
.
Crea un file JSON.
Se non utilizzi un modello di istanza per questo job, crea un file JSON con i seguenti contenuti:
{ "allocationPolicy": { "instances": [ { "policy": { "machineType": MACHINE_TYPE, "disks": [ { "newDisk": { "sizeGb": LOCAL_SSD_SIZE, "type": "local-ssd" }, "deviceName": "LOCAL_SSD_NAME" } ] } } ] }, "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> /mnt/disks/LOCAL_SSD_NAME/output_task_${BATCH_TASK_INDEX}.txt" } } ], "volumes": [ { "deviceName": "LOCAL_SSD_NAME", "mountPath": "/mnt/disks/LOCAL_SSD_NAME", "mountOptions": "rw,async" } ] }, "taskCount":3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Sostituisci quanto segue:
MACHINE_TYPE
: il valore di un tipo di macchina, che può essere predefinita o personalizzato, delle VM del job. La numero consentito di SSD locali dipende dal tipo di macchina delle VM del job.LOCAL_SSD_NAME
: il nome di un SSD locale creato per questo job.LOCAL_SSD_SIZE
: la dimensione di tutti gli SSD locali in GB. Ogni SSD locale ha una dimensione di 375 GB, questo valore deve essere un multiplo di375
GB. Per Ad esempio, per 2 SSD locali, imposta questo valore su750
GB.
Se utilizzando un modello di istanza VM per questo job, creare un file JSON come mostrato in precedenza, ad eccezione della sostituzione del Campo
instances
con quanto segue:"instances": [ { "instanceTemplate": "INSTANCE_TEMPLATE_NAME" } ],
dove
INSTANCE_TEMPLATE_NAME
è il nome del modello di istanza per questo job. Per un job che utilizza SSD locali, questo modello di istanza deve definire e collegare gli SSD locali che vuoi utilizzare per il job. Per questo esempio, il modello deve definire e collegare un SSD locale denominatoLOCAL_SSD_NAME
.
Esegui questo comando:
gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Sostituisci quanto segue:
JOB_NAME
: il nome del job.LOCATION
: la località del lavoro.JSON_CONFIGURATION_FILE
: il percorso di un file JSON con i dettagli di configurazione del job.
API
Per creare un job che utilizza gli SSD locali utilizzando
API Batch, utilizza
Metodo jobs.create
.
Nella richiesta, crea e collega gli SSD locali
instances
e montare le unità SSD locali nel campo volumes
.
Se non utilizzi un modello di istanza per questo job, effettua quanto segue: richiesta:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME { "allocationPolicy": { "instances": [ { "policy": { "machineType": MACHINE_TYPE, "disks": [ { "newDisk": { "sizeGb": LOCAL_SSD_SIZE, "type": "local-ssd" }, "deviceName": "LOCAL_SSD_NAME" } ] } } ] }, "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> /mnt/disks/LOCAL_SSD_NAME/output_task_${BATCH_TASK_INDEX}.txt" } } ], "volumes": [ { "deviceName": "LOCAL_SSD_NAME", "mountPath": "/mnt/disks/LOCAL_SSD_NAME", "mountOptions": "rw,async" } ] }, "taskCount":3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Sostituisci quanto segue:
PROJECT_ID
: il valore ID progetto del tuo progetto.LOCATION
: la località del lavoro.JOB_NAME
: il nome del job.MACHINE_TYPE
: il valore di un tipo di macchina, che può essere predefinita o personalizzato, delle VM del job. La numero consentito di SSD locali dipende dal tipo di macchina delle VM del job.LOCAL_SSD_NAME
: il nome di un SSD locale creato per questo job.LOCAL_SSD_SIZE
: la dimensione di tutti gli SSD locali in GB. Ogni SSD locale ha una dimensione di 375 GB, questo valore deve essere un multiplo di375
GB. Per Ad esempio, per 2 SSD locali, imposta questo valore su750
GB.
Se utilizzando un modello di istanza VM per questo job, creare un file JSON come mostrato in precedenza, ad eccezione della sostituzione del Campo
instances
con quanto segue:"instances": [ { "instanceTemplate": "INSTANCE_TEMPLATE_NAME" } ], ...
Dove si chiama
INSTANCE_TEMPLATE_NAME
del modello di istanza per questo job. Per un job che utilizza SSD locali, questo modello di istanza deve definire e collegare gli SSD locali che vuoi utilizzare per il job. Per questo esempio, il modello deve definire e collegare un SSD locale denominatoLOCAL_SSD_NAME
.
usa un bucket Cloud Storage
Per creare un job che utilizza un bucket Cloud Storage esistente, seleziona uno dei seguenti metodi:
- Opzione consigliata: monta un bucket direttamente sulle VM del job specificando bucket nella definizione del job, come mostrato in questa sezione. Quando il job viene eseguito, il bucket viene montato automaticamente sulle VM per il job utilizzando FUSE Cloud Storage.
- Crea un lavoro con attività che accedono direttamente a un nel bucket Cloud Storage mediante gcloud CLI librerie client per l'API Cloud Storage. Per scoprire come accedere a un del bucket Cloud Storage direttamente da una VM, consulta documentazione di Compute Engine per Scrittura e lettura dei dati dai bucket Cloud Storage.
Prima di creare un job che utilizza un bucket, crea un bucket o identifica un bucket esistente. Per ulteriori informazioni, vedi Crea bucket e Elenca bucket.
Puoi creare un job che utilizza un bucket Cloud Storage utilizzando console Google Cloud, gcloud CLI, API Batch, Go, Java, Node.js, Python o C++.
L'esempio seguente descrive come creare un job che monta un
nel bucket Cloud Storage. Il job include anche 3 attività che vengono eseguite
uno script per creare un file nel bucket denominato
output_task_TASK_INDEX.txt
dove TASK_INDEX
è l'indice di ogni attività:
0
, 1
e 2
.
Console
Per creare un job che utilizza un bucket Cloud Storage mediante Nella console Google Cloud, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Elenco job.
Fai clic su
Crea. La Si apre la pagina Crea job batch. Nel riquadro a sinistra, La pagina Dettagli job è selezionata.Configura la pagina Dettagli job:
(Facoltativo) Nel campo Nome job, personalizza il nome del job.
Ad esempio, inserisci
example-bucket-job
.Configura la sezione Dettagli attività:
Nella finestra Nuovo eseguibile, aggiungi almeno uno script oppure container per l'esecuzione di questo job.
Ad esempio, procedi nel seguente modo:
Seleziona la casella di controllo Script. Viene visualizzata una casella di testo.
Nella casella di testo, inserisci il seguente script:
echo Hello world from task ${BATCH_TASK_INDEX}. >> MOUNT_PATH/output_task_${BATCH_TASK_INDEX}.txt
Sostituisci MOUNT_PATH con di montaggio usato dagli eseguibili di questo job per accedere a nel bucket Cloud Storage esistente. Il percorso deve iniziare con
/mnt/disks/
seguito da una directory o da un percorso che scegli. Ad esempio, se vuoi rappresentare questo bucket con una directory denominatamy-bucket
, imposta percorso di montaggio in/mnt/disks/my-bucket
.Fai clic su Fine.
Nel campo Conteggio attività, inserisci il numero di attività per per questo job.
Ad esempio, inserisci
3
.Nel campo Parallelismo, inserisci il numero di attività da contemporaneamente.
Ad esempio, inserisci
1
(valore predefinito).
Configura la pagina Configurazioni aggiuntive:
Nel riquadro a sinistra, fai clic su Configurazioni aggiuntive. Si apre la pagina Configurazioni aggiuntive.
Per ogni bucket Cloud Storage su cui vuoi montare questo lavoro:
Nella sezione Volume spazio di archiviazione, fai clic su Aggiungi nuovo volume. Viene visualizzata la finestra Nuovo volume.
Nella finestra Nuovo volume:
Nella sezione Tipo di volume, seleziona Bucket Cloud Storage.
Nel campo Nome bucket di archiviazione, inserisci il nome di un bucket esistente.
Ad esempio, inserisci il bucket specificato in il job è eseguibile.
Nel campo Percorso di montaggio, inserisci il percorso di montaggio del di archiviazione del bucket (MOUNT_PATH), che hai specificato nel file eseguibile.
Fai clic su Fine.
(Facoltativo) Configura il altri campi per questo job.
(Facoltativo) Per rivedere la configurazione del job, nel riquadro a sinistra fai clic su Anteprima.
Fai clic su Crea.
Nella pagina Dettagli job viene visualizzato il job creato.
gcloud
Per creare un job che utilizza un bucket Cloud Storage mediante
gcloud CLI, utilizza
Comando gcloud batch jobs submit
.
Nel file di configurazione JSON del job, monta il bucket
campo volumes
.
Ad esempio, per creare un job che restituisca file in Cloud Storage:
Crea un file JSON con il seguente contenuto:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> MOUNT_PATH/output_task_${BATCH_TASK_INDEX}.txt" } } ], "volumes": [ { "gcs": { "remotePath": "BUCKET_PATH" }, "mountPath": "MOUNT_PATH" } ] }, "taskCount": 3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Sostituisci quanto segue:
BUCKET_PATH
: il percorso della directory del bucket a cui vuoi accedere il job, che deve iniziare con il nome nel bucket. Ad esempio, per un bucket denominatoBUCKET_NAME
, il percorsoBUCKET_NAME
rappresenta la directory radice del bucket e il percorsoBUCKET_NAME/subdirectory
rappresenta la sottodirectorysubdirectory
.MOUNT_PATH
: il percorso di montaggio del job per accedere a questo bucket. Il percorso deve iniziare con/mnt/disks/
seguito da una directory o da un percorso a tua scelta. Per Ad esempio, se vuoi rappresentare questo bucket con una directory denominatamy-bucket
, imposta il percorso di montaggio su/mnt/disks/my-bucket
.
Esegui questo comando:
gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Sostituisci quanto segue:
JOB_NAME
: il nome del job.LOCATION
: la località del lavoro.JSON_CONFIGURATION_FILE
: il percorso di un file JSON con i dettagli di configurazione del job.
API
Per creare un job che utilizza un bucket Cloud Storage mediante
API Batch, utilizza
Metodo jobs.create
e montare il bucket nel campo volumes
.
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> MOUNT_PATH/output_task_${BATCH_TASK_INDEX}.txt"
}
}
],
"volumes": [
{
"gcs": {
"remotePath": "BUCKET_PATH"
},
"mountPath": "MOUNT_PATH"
}
]
},
"taskCount": 3
}
],
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Sostituisci quanto segue:
PROJECT_ID
: il valore ID progetto del tuo progetto.LOCATION
: la località del lavoro.JOB_NAME
: il nome del job.BUCKET_PATH
: il percorso della directory del bucket a cui vuoi accedere questo job, che deve iniziare con il nome del bucket. Ad esempio, per un bucket denominatoBUCKET_NAME
, il percorsoBUCKET_NAME
rappresenta la radice del bucket e il percorsoBUCKET_NAME/subdirectory
rappresenta la sottodirectorysubdirectory
.MOUNT_PATH
: il percorso di montaggio del job per accedere a questo bucket. Il percorso deve iniziare con/mnt/disks/
seguito da una directory o da un percorso a tua scelta. Ad esempio, se vuoi rappresentare questo bucket con una denominatamy-bucket
, imposta il percorso di montaggio su/mnt/disks/my-bucket
.
Vai
Go
Per ulteriori informazioni, consulta API Go Batch documentazione di riferimento.
Per eseguire l'autenticazione in modalità batch, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Java
Per ulteriori informazioni, consulta API Java Batch documentazione di riferimento.
Per eseguire l'autenticazione in modalità batch, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Node.js
Per ulteriori informazioni, consulta API Node.js Batch documentazione di riferimento.
Per eseguire l'autenticazione in modalità batch, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Python
Per ulteriori informazioni, consulta API Python Batch documentazione di riferimento.
Per eseguire l'autenticazione in modalità batch, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
C++
C++
Per ulteriori informazioni, consulta API C++ Batch documentazione di riferimento.
Per eseguire l'autenticazione in modalità batch, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Utilizza un file system di rete
Puoi creare un job che utilizza un file system di rete (NFS) esistente, ad esempio un Condivisione file Filestore, utilizzando la console Google Cloud, gcloud CLI API Batch.
Prima di creare un job che utilizza una NFS, assicurati che il firewall della rete è configurato correttamente per consentire il traffico tra e NFS del job. Per ulteriori informazioni, vedi Configurazione delle regole firewall per Filestore.
L'esempio seguente descrive come creare un job che specifichi e
monta un NFS. Il job ha anche 3
attività in cui ognuna esegue uno script per creare un file in NFS denominato
output_task_TASK_INDEX.txt
dove TASK_INDEX
è l'indice di ogni attività:
0
, 1
e 2
.
Console
Per creare un job che utilizza una NFS utilizzando la console Google Cloud, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Elenco job.
Fai clic su
Crea. La Si apre la pagina Crea job batch. Nel riquadro a sinistra, La pagina Dettagli job è selezionata.Configura la pagina Dettagli job:
(Facoltativo) Nel campo Nome job, personalizza il nome del job.
Ad esempio, inserisci
example-nfs-job
.Configura la sezione Dettagli attività:
Nella finestra Nuovo eseguibile, aggiungi almeno uno script oppure container per l'esecuzione di questo job.
Ad esempio, procedi nel seguente modo:
Seleziona la casella di controllo Script. Viene visualizzata una casella di testo.
Nella casella di testo, inserisci il seguente script:
echo Hello world from task ${BATCH_TASK_INDEX}. >> MOUNT_PATH/output_task_${BATCH_TASK_INDEX}.txt
Sostituisci MOUNT_PATH con percorso di montaggio utilizzato dal job eseguibile per accedere a questa NFS. Il percorso deve iniziare con
/mnt/disks/
seguito da un una directory o un percorso che scegli. Ad esempio, se vuoi rappresentare questo NFS con una directory denominatamy-nfs
, imposta il percorso di montaggio su/mnt/disks/my-nfs
.Fai clic su Fine.
Nel campo Conteggio attività, inserisci il numero di attività per per questo job.
Ad esempio, inserisci
3
.Nel campo Parallelismo, inserisci il numero di attività da contemporaneamente.
Ad esempio, inserisci
1
(valore predefinito).
Configura la pagina Configurazioni aggiuntive:
Nel riquadro a sinistra, fai clic su Configurazioni aggiuntive. Si apre la pagina Configurazioni aggiuntive.
Per ogni bucket Cloud Storage su cui vuoi montare questo lavoro:
Nella sezione Volume spazio di archiviazione, fai clic su Aggiungi nuovo volume. Viene visualizzata la finestra Nuovo volume.
Nella finestra Nuovo volume:
Nella sezione Tipo di volume, Seleziona File system di rete.
Nel campo File server, inserisci l'indirizzo IP del server in cui le NFS specificate nel job sono eseguibili in cui viene localizzato.
Ad esempio, se la tua NFS è un condivisione file Filestore, devi specificare l'indirizzo IP di Filestore un'istanza, che puoi ottenere descrivi l'istanza Filestore.
Nel campo Percorso remoto, inserisci un percorso a cui è possibile accedere alla funzione NFS specificata nel passaggio precedente.
Il percorso della directory NFS deve iniziare con
/
seguito dalla directory radice della NFS.Nel campo Percorso di montaggio, inserisci il percorso di montaggio su NFS (MOUNT_PATH), che hai specificato in al passaggio precedente.
Fai clic su Fine.
(Facoltativo) Configura il altri campi per questo job.
(Facoltativo) Per rivedere la configurazione del job, nel riquadro a sinistra fai clic su Anteprima.
Fai clic su Crea.
Nella pagina Dettagli job viene visualizzato il job creato.
gcloud
Per creare un job che utilizza una NFS utilizzando
gcloud CLI, utilizza
Comando gcloud batch jobs submit
.
Nel file di configurazione JSON del job, monta la NFS nella
campo volumes
.
Crea un file JSON con il seguente contenuto:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> MOUNT_PATH/output_task_${BATCH_TASK_INDEX}.txt" } } ], "volumes": [ { "nfs": { "server": "NFS_IP_ADDRESS", "remotePath": "NFS_PATH" }, "mountPath": "MOUNT_PATH" } ] }, "taskCount": 3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Sostituisci quanto segue:
NFS_IP_ADDRESS
: il valore Indirizzo IP della NFS. Ad esempio, se NFS è una condivisione file di Filestore, quindi specifica l'indirizzo IP del servizio Filestore un'istanza, che puoi ottenere descrivi l'istanza Filestore.NFS_PATH
: il percorso della directory NFS a cui vuoi accedere questo job, che deve iniziare con un/
seguito dalla directory radice della NFS. Ad esempio, per un Condivisione file Filestore denominataFILE_SHARE_NAME
, il percorso/FILE_SHARE_NAME
rappresenta la radice directory della condivisione file e il percorso/FILE_SHARE_NAME/subdirectory
rappresenta la sottodirectorysubdirectory
.MOUNT_PATH
: il percorso di montaggio del job i runnable usano per accedere a questa NFS. Il percorso deve iniziare con/mnt/disks/
seguito da una directory o da un percorso a tua scelta. Ad esempio, se vuoi rappresentare questo NFS con un denominatamy-nfs
, imposta il percorso di montaggio su/mnt/disks/my-nfs
.
Esegui questo comando:
gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Sostituisci quanto segue:
JOB_NAME
: il nome del job.LOCATION
: la località del lavoro.JSON_CONFIGURATION_FILE
: il percorso di un file JSON con i dettagli di configurazione del job.
API
Per creare un job che utilizza una NFS utilizzando
API Batch, utilizza
Metodo jobs.create
e montare la NFS nel campo volumes
.
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> MOUNT_PATH/output_task_${BATCH_TASK_INDEX}.txt"
}
}
],
"volumes": [
{
"nfs": {
"server": "NFS_IP_ADDRESS",
"remotePath": "NFS_PATH"
},
"mountPath": "MOUNT_PATH"
}
]
},
"taskCount": 3
}
],
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Sostituisci quanto segue:
PROJECT_ID
: il valore ID progetto del tuo progetto.LOCATION
: la località del lavoro.JOB_NAME
: il nome del job.NFS_IP_ADDRESS
: il valore Indirizzo IP del file system di rete. Ad esempio, se NFS è una condivisione file di Filestore, quindi specifica l'indirizzo IP del servizio Filestore un'istanza, che puoi ottenere descrivi l'istanza Filestore.NFS_PATH
: il percorso della directory NFS a cui vuoi accedere questo job, che deve iniziare con un/
seguito dalla directory radice della NFS. Ad esempio, per un Condivisione file Filestore denominataFILE_SHARE_NAME
, il percorso/FILE_SHARE_NAME
rappresenta la radice directory della condivisione file e il percorso/FILE_SHARE_NAME/subdirectory
rappresenta una sottodirectory.MOUNT_PATH
: il percorso di montaggio del job i runnable usano per accedere a questa NFS. Il percorso deve iniziare con/mnt/disks/
seguito da una directory o da un percorso a tua scelta. Ad esempio, se vuoi rappresentare questo NFS con un denominatamy-nfs
, imposta il percorso di montaggio su/mnt/disks/my-nfs
.
Passaggi successivi
- Se hai problemi durante la creazione o l'esecuzione di un job, consulta la sezione Risoluzione dei problemi.
- Visualizza lavori e attività.
- Scopri di più sulle opzioni per la creazione di offerte di lavoro.